49 {
"10.255.255.254", 1 },
56 {
"1.2.3.4:5060", 1 },
57 {
"::ffff:5.6.7.8", 1 },
58 {
"fdf8:f53b:82e4::53", 1 },
59 {
"fe80::200:5aee:feaa:20a2", 1 },
61 {
"2001:0000:4136:e378:8000:63bf:3fff:fdd2", 1 },
62 {
"2001:0002:6c::430", 1 },
63 {
"2001:10:240:ab::a", 1 },
64 {
"2002:cb0a:3cdd:1::1", 1 },
65 {
"2001:db8:8:4::2", 1 },
66 {
"ff01:0:0:0:0:0:0:2", 1 },
67 {
"[fdf8:f53b:82e4::53]", 1 },
68 {
"[fe80::200:5aee:feaa:20a2]", 1 },
70 {
"[2001:0000:4136:e378:8000:63bf:3fff:fdd2]:5060", 1 },
71 {
"2001:0000:4136:e378:8000:63bf:3fff:fdd2:5060", 0 },
72 {
"fe80::200::abcd", 0 },
81 info->name =
"parsing";
82 info->category =
"/main/netsock2/";
83 info->summary =
"netsock2 parsing unit test";
85 "Test parsing of IPv4 and IPv6 network addresses";
91 for (x = 0; x <
ARRAY_LEN(test_vals); x++) {
92 memset(&addr, 0,
sizeof(addr));
102 memset(&tmp_addr, 0,
sizeof(tmp_addr));
119 char *host, *port,
buf[128];
123 info->name =
"split_hostport";
124 info->category =
"/main/netsock2/";
125 info->summary =
"netsock2 ast_sockaddr_split_hostport() unit test";
127 "Test splitting of IPv4 and IPv6 host:port strings";
134#define TEST_SPLIT_HOSTPORT(str, flags, expected_host, expected_port, expected_result) { \
136 ast_copy_string(buf, str, sizeof(buf)); \
137 if ((__res = ast_sockaddr_split_hostport(buf, &host, &port, flags)) != expected_result || ( \
138 expected_result && ( \
139 strcmp(host, expected_host) || ( \
140 ast_strlen_zero(expected_port) ? !ast_strlen_zero(port) : (!ast_strlen_zero(port) && strcmp(port, expected_port)) \
145 res = AST_TEST_FAIL; \
146 if (__res != expected_result) { \
147 ast_test_status_update(test, "Expected %d, got %d\n", expected_result, __res); \
149 ast_test_status_update(test, "Failed parsing '%s' into expected host '%s' (got '%s') and port '%s' (got '%s')\n", \
150 str, S_OR(expected_host, ""), host, expected_port, S_OR(port, "")); \
163 TEST_SPLIT_HOSTPORT(
"[fe80::200:5aee:feaa:20a2]:5060", 0,
"fe80::200:5aee:feaa:20a2",
"5060", 1);
Asterisk main include file. File version handling, generic pbx functions.
static void parsing(int size, unsigned char *buf, struct unistimsession *pte, struct sockaddr_in *addr_from)
Configuration File Parser.
Support for logging to various files, console and syslog Configuration in file logger....
Asterisk module definitions.
#define AST_MODULE_INFO_STANDARD(keystr, desc)
#define ASTERISK_GPL_KEY
The text the key() function should return.
@ AST_MODULE_LOAD_SUCCESS
static char * ast_sockaddr_stringify(const struct ast_sockaddr *addr)
Wrapper around ast_sockaddr_stringify_fmt() with default format.
int ast_sockaddr_cmp_addr(const struct ast_sockaddr *a, const struct ast_sockaddr *b)
Compares the addresses of two ast_sockaddr structures.
int ast_sockaddr_parse(struct ast_sockaddr *addr, const char *str, int flags)
Parse an IPv4 or IPv6 address string.
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
Socket address structure.
#define AST_TEST_REGISTER(cb)
#define ast_test_status_update(a, b, c...)
#define AST_TEST_UNREGISTER(cb)
#define TEST_SPLIT_HOSTPORT(str, flags, expected_host, expected_port, expected_result)
static int load_module(void)
static int unload_module(void)