Thu Apr 28 2011 17:13:38

Asterisk developer's documentation


app_readfile.c File Reference

ReadFile application -- Reads in a File for you. More...

#include "asterisk.h"
#include "asterisk/file.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/app.h"
#include "asterisk/module.h"
Include dependency graph for app_readfile.c:

Go to the source code of this file.

Functions

static void __reg_module (void)
static void __unreg_module (void)
static int load_module (void)
static int readfile_exec (struct ast_channel *chan, void *data)
static int unload_module (void)

Variables

static struct ast_module_info
__MODULE_INFO_SECTION 
__mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Stores output of file into a variable" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, }
static char * app_readfile = "ReadFile"
static struct ast_module_infoast_module_info = &__mod_info

Detailed Description

ReadFile application -- Reads in a File for you.

Author:
Matt O'Gorman <mogorman@digium.com>

Definition in file app_readfile.c.


Function Documentation

static void __reg_module ( void  ) [static]

Definition at line 128 of file app_readfile.c.

static void __unreg_module ( void  ) [static]

Definition at line 128 of file app_readfile.c.

static int load_module ( void  ) [static]
static int readfile_exec ( struct ast_channel chan,
void *  data 
) [static]

Definition at line 70 of file app_readfile.c.

References ast_free, ast_log(), ast_read_textfile(), ast_strdupa, ast_strlen_zero(), len(), LOG_ERROR, LOG_WARNING, pbx_builtin_setvar_helper(), s, and strsep().

Referenced by load_module().

{
   int res=0;
   char *s, *varname=NULL, *file=NULL, *length=NULL, *returnvar=NULL;
   int len=0;
   static int deprecation_warning = 0;

   if (ast_strlen_zero(data)) {
      ast_log(LOG_WARNING, "ReadFile require an argument!\n");
      return -1;
   }

   s = ast_strdupa(data);

   varname = strsep(&s, "=");
   file = strsep(&s, ",");
   length = s;

   if (deprecation_warning++ % 10 == 0)
      ast_log(LOG_WARNING, "ReadFile has been deprecated in favor of Set(%s=${FILE(%s,0,%s)})\n", varname, file, length);

   if (!varname || !file) {
      ast_log(LOG_ERROR, "No file or variable specified!\n");
      return -1;
   }

   if (length) {
      if ((sscanf(length, "%30d", &len) != 1) || (len < 0)) {
         ast_log(LOG_WARNING, "%s is not a positive number, defaulting length to max\n", length);
         len = 0;
      }
   }

   if ((returnvar = ast_read_textfile(file))) {
      if (len > 0) {
         if (len < strlen(returnvar))
            returnvar[len]='\0';
         else
            ast_log(LOG_WARNING, "%s is longer than %d, and %d \n", file, len, (int)strlen(returnvar));
      }
      pbx_builtin_setvar_helper(chan, varname, returnvar);
      ast_free(returnvar);
   }

   return res;
}
static int unload_module ( void  ) [static]

Definition at line 118 of file app_readfile.c.

References ast_unregister_application().


Variable Documentation

struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Stores output of file into a variable" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static]

Definition at line 128 of file app_readfile.c.

char* app_readfile = "ReadFile" [static]

Definition at line 68 of file app_readfile.c.

Definition at line 128 of file app_readfile.c.