Asterisk - The Open Source Telephony Project GIT-master-27fb039
Loading...
Searching...
No Matches
Functions | Variables
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)
 
struct ast_moduleAST_MODULE_SELF_SYM (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 __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "URI encode/decode dialplan functions" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_DEFAULT, .support_level = AST_MODULE_SUPPORT_CORE, }
 
static const 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@e.nosp@m.dvin.nosp@m.a.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

◆ __reg_module()

static void __reg_module ( void  )
static

Definition at line 129 of file func_uri.c.

◆ __unreg_module()

static void __unreg_module ( void  )
static

Definition at line 129 of file func_uri.c.

◆ AST_MODULE_SELF_SYM()

struct ast_module * AST_MODULE_SELF_SYM ( void  )

Definition at line 129 of file func_uri.c.

◆ load_module()

static int load_module ( void  )
static

Definition at line 123 of file func_uri.c.

124{
127}
static struct ast_custom_function urldecode_function
Definition func_uri.c:107
static struct ast_custom_function urlencode_function
Definition func_uri.c:112
#define ast_custom_function_register(acf)
Register a custom function.
Definition pbx.h:1562

References ast_custom_function_register, urldecode_function, and urlencode_function.

◆ unload_module()

static int unload_module ( void  )
static

Definition at line 117 of file func_uri.c.

118{
121}
int ast_custom_function_unregister(struct ast_custom_function *acf)
Unregister a custom function.

References ast_custom_function_unregister(), urldecode_function, and urlencode_function.

◆ uridecode()

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 93 of file func_uri.c.

95{
96 if (ast_strlen_zero(data)) {
97 buf[0] = '\0';
98 return 0;
99 }
100
101 ast_copy_string(buf, data, len);
103
104 return 0;
105}
char buf[BUFSIZE]
Definition eagi_proxy.c:66
static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t buflen)
static force_inline int attribute_pure ast_strlen_zero(const char *s)
Definition strings.h:65
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
Definition strings.h:425
const struct ast_flags ast_uri_http
Definition utils.c:719
void ast_uri_decode(char *s, struct ast_flags spec)
Decode URI, URN, URL (overwrite string)
Definition utils.c:762

References ast_copy_string(), ast_strlen_zero(), ast_uri_decode(), ast_uri_http, buf, and len().

◆ uriencode()

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 79 of file func_uri.c.

81{
82 if (ast_strlen_zero(data)) {
83 buf[0] = '\0';
84 return 0;
85 }
86
88
89 return 0;
90}
char * ast_uri_encode(const char *string, char *outbuf, int buflen, struct ast_flags spec)
Turn text string to URI-encoded XX version.
Definition utils.c:723

References ast_strlen_zero(), ast_uri_encode(), ast_uri_http, buf, and len().

Variable Documentation

◆ __mod_info

struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "URI encode/decode dialplan functions" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_DEFAULT, .support_level = AST_MODULE_SUPPORT_CORE, }
static

Definition at line 129 of file func_uri.c.

◆ ast_module_info

const struct ast_module_info* ast_module_info = &__mod_info
static

Definition at line 129 of file func_uri.c.

◆ urldecode_function

struct ast_custom_function urldecode_function
static
Initial value:
= {
.name = "URIDECODE",
.read = uridecode,
}
static int uridecode(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
uridecode: Decode URI according to RFC 2396
Definition func_uri.c:93

Definition at line 107 of file func_uri.c.

107 {
108 .name = "URIDECODE",
109 .read = uridecode,
110};

Referenced by load_module(), and unload_module().

◆ urlencode_function

struct ast_custom_function urlencode_function
static
Initial value:
= {
.name = "URIENCODE",
.read = uriencode,
}
static int uriencode(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
uriencode: Encode URL according to RFC 2396
Definition func_uri.c:79

Definition at line 112 of file func_uri.c.

112 {
113 .name = "URIENCODE",
114 .read = uriencode,
115};

Referenced by load_module(), and unload_module().