Thu Apr 28 2011 16:57:10

Asterisk developer's documentation


func_uri.c File Reference

URI encoding / decoding. More...

#include "asterisk.h"
#include "asterisk/module.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/utils.h"
#include "asterisk/app.h"
Include dependency graph for func_uri.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 unload_module (void)
static int uridecode (struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 uridecode: Decode URI according to RFC 2396
static int uriencode (struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 uriencode: Encode URL according to RFC 2396

Variables

static struct ast_module_info
__MODULE_INFO_SECTION 
__mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "URI encode/decode dialplan functions" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, }
static struct ast_module_infoast_module_info = &__mod_info
static struct ast_custom_function urldecode_function
static struct ast_custom_function urlencode_function

Detailed Description

URI encoding / decoding.

Author:
Olle E. Johansson <oej@edvina.net>
Note:
For now this code only supports 8 bit characters, not unicode, which we ultimately will need to support.

Definition in file func_uri.c.


Function Documentation

static void __reg_module ( void  ) [static]

Definition at line 121 of file func_uri.c.

static void __unreg_module ( void  ) [static]

Definition at line 121 of file func_uri.c.

static int load_module ( void  ) [static]
static int unload_module ( void  ) [static]
static int uridecode ( struct ast_channel chan,
const char *  cmd,
char *  data,
char *  buf,
size_t  len 
) [static]

uridecode: Decode URI according to RFC 2396

Definition at line 85 of file func_uri.c.

References ast_copy_string(), ast_log(), ast_strlen_zero(), ast_uri_decode(), and LOG_WARNING.

{
   if (ast_strlen_zero(data)) {
      ast_log(LOG_WARNING, "Syntax: URIDECODE(<data>) - missing argument!\n");
      return -1;
   }

   ast_copy_string(buf, data, len);
   ast_uri_decode(buf);

   return 0;
}
static int uriencode ( struct ast_channel chan,
const char *  cmd,
char *  data,
char *  buf,
size_t  len 
) [static]

uriencode: Encode URL according to RFC 2396

Definition at line 71 of file func_uri.c.

References ast_log(), ast_strlen_zero(), ast_uri_encode(), and LOG_WARNING.

{
   if (ast_strlen_zero(data)) {
      ast_log(LOG_WARNING, "Syntax: URIENCODE(<data>) - missing argument!\n");
      return -1;
   }

   ast_uri_encode(data, buf, len, 1);

   return 0;
}

Variable Documentation

struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "URI encode/decode dialplan functions" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static]

Definition at line 121 of file func_uri.c.

Definition at line 121 of file func_uri.c.

Initial value:
 {
   .name = "URIDECODE",
   .read = uridecode,
}

Definition at line 99 of file func_uri.c.

Initial value:
 {
   .name = "URIENCODE",
   .read = uriencode,
}

Definition at line 104 of file func_uri.c.