committing 5924 with minor white space changes
[asterisk/asterisk.git] / funcs / func_base64.c
1 /*\r
2  * Asterisk -- An open source telephony toolkit.\r
3  *\r
4  * Copyright (C) 2005, Digium, Inc.\r
5  * Copyright (C) 2005, Claude Patry\r
6  *\r
7  * See http://www.asterisk.org for more information about\r
8  * the Asterisk project. Please do not directly contact\r
9  * any of the maintainers of this project for assistance;\r
10  * the project provides a web site, mailing lists and IRC\r
11  * channels for your use.\r
12  *\r
13  * This program is free software, distributed under the terms of\r
14  * the GNU General Public License Version 2. See the LICENSE file\r
15  * at the top of the source tree.\r
16  */\r
17 \r
18 /*! \file\r
19  *\r
20  * \brief Use the base64 as functions\r
21  * \r
22  */\r
23 \r
24 #include <stdlib.h>\r
25 #include <string.h>\r
26 #include <sys/types.h>\r
27 \r
28 #include "asterisk.h"\r
29 \r
30 /* ASTERISK_FILE_VERSION(__FILE__, "Revision: 7221 ") */\r
31 \r
32 #include "asterisk/channel.h"\r
33 #include "asterisk/pbx.h"\r
34 #include "asterisk/logger.h"\r
35 #include "asterisk/utils.h"\r
36 #include "asterisk/app.h"\r
37 \r
38 static char *builtin_function_base64_encode(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) \r
39 {\r
40         int res = 0;\r
41 \r
42         if (ast_strlen_zero(data) ) {\r
43                 ast_log(LOG_WARNING, "Syntax: BASE64_ENCODE(<data>) - missing argument!\n");\r
44                 return NULL;\r
45         }\r
46 \r
47         ast_log(LOG_DEBUG, "data=%s\n",data);\r
48         res = ast_base64encode(buf, data, strlen(data), len);\r
49         ast_log(LOG_DEBUG, "res=%d\n", res);\r
50         return buf;\r
51 }\r
52 \r
53 static char *builtin_function_base64_decode(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) \r
54 {\r
55         if (ast_strlen_zero(data) ) {\r
56                 ast_log(LOG_WARNING, "Syntax: BASE64_DECODE(<base_64 string>) - missing argument!\n");\r
57                 return NULL;\r
58         }\r
59 \r
60         ast_log(LOG_DEBUG, "data=%s\n", data);\r
61         ast_base64decode(buf, data, len);\r
62         return buf;\r
63 }\r
64 \r
65 #ifndef BUILTIN_FUNC\r
66 static\r
67 #endif\r
68 struct ast_custom_function base64_encode_function = {\r
69         .name = "BASE64_ENCODE",\r
70         .synopsis = "Encode a string in base64",\r
71         .desc = "Returns the base64 string\n",\r
72         .syntax = "BASE64_ENCODE(<string>)",\r
73         .read = builtin_function_base64_encode,\r
74 };\r
75 \r
76 #ifndef BUILTIN_FUNC\r
77 static\r
78 #endif\r
79 struct ast_custom_function base64_decode_function = {\r
80         .name = "BASE64_DECODE",\r
81         .synopsis = "Decode a base64 string",\r
82         .desc = "Returns the plain text string\n",\r
83         .syntax = "BASE64_DECODE(<base64_string>)",\r
84         .read = builtin_function_base64_decode,\r
85 };\r