Mon May 14 04:48:27 2007

Asterisk developer's documentation


func_uri.c File Reference

URI encoding / decoding. More...

#include "asterisk.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include "asterisk/module.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/logger.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

 AST_MODULE_INFO_STANDARD (ASTERISK_GPL_KEY,"URI encode/decode dialplan functions")
static int load_module (void)
static int unload_module (void)
static int uridecode (struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
 uridecode: Decode URI according to RFC 2396
static int uriencode (struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
 uriencode: Encode URL according to RFC 2396

Variables

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

AST_MODULE_INFO_STANDARD ( ASTERISK_GPL_KEY  ,
"URI encode/decode dialplan functions"   
)

static int load_module ( void   )  [static]

Definition at line 96 of file func_uri.c.

References ast_custom_function_register(), urldecode_function, and urlencode_function.

static int unload_module ( void   )  [static]

Definition at line 90 of file func_uri.c.

References ast_custom_function_unregister(), urldecode_function, and urlencode_function.

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

uridecode: Decode URI according to RFC 2396

Definition at line 62 of file func_uri.c.

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

00064 {
00065    if (ast_strlen_zero(data)) {
00066       ast_log(LOG_WARNING, "Syntax: URIDECODE(<data>) - missing argument!\n");
00067       return -1;
00068    }
00069 
00070    ast_copy_string(buf, data, len);
00071    ast_uri_decode(buf);
00072 
00073    return 0;
00074 }

static int uriencode ( struct ast_channel chan,
char *  cmd,
char *  data,
char *  buf,
size_t  len 
) [static]

uriencode: Encode URL according to RFC 2396

Definition at line 48 of file func_uri.c.

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

00050 {
00051    if (ast_strlen_zero(data)) {
00052       ast_log(LOG_WARNING, "Syntax: URIENCODE(<data>) - missing argument!\n");
00053       return -1;
00054    }
00055 
00056    ast_uri_encode(data, buf, len, 1);
00057 
00058    return 0;
00059 }


Variable Documentation

struct ast_custom_function urldecode_function [static]

Definition at line 76 of file func_uri.c.

Referenced by load_module(), and unload_module().

struct ast_custom_function urlencode_function [static]

Definition at line 83 of file func_uri.c.

Referenced by load_module(), and unload_module().


Generated on Mon May 14 04:48:28 2007 for Asterisk - the Open Source PBX by  doxygen 1.5.1