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));
94 ast_test_status_update(
test,
"On '%s' expected %d but got %d\n", test_vals[x].address, test_vals[x].expected_result, parse_result);
102 memset(&tmp_addr, 0,
sizeof(tmp_addr));
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);
#define AST_MODULE_INFO_STANDARD(keystr, desc)
Asterisk main include file. File version handling, generic pbx functions.
int ast_sockaddr_parse(struct ast_sockaddr *addr, const char *str, int flags)
Parse an IPv4 or IPv6 address string.
#define AST_TEST_REGISTER(cb)
Socket address structure.
int ast_sockaddr_cmp_addr(const struct ast_sockaddr *a, const struct ast_sockaddr *b)
Compares the addresses of two ast_sockaddr structures.
#define TEST_SPLIT_HOSTPORT(str, flags, expected_host, expected_port, expected_result)
Configuration File Parser.
#define ast_test_status_update(a, b, c...)
static int load_module(void)
#define AST_TEST_UNREGISTER(cb)
static char * ast_sockaddr_stringify(const struct ast_sockaddr *addr)
Wrapper around ast_sockaddr_stringify_fmt() with default format.
Support for logging to various files, console and syslog Configuration in file logger.conf.
static void parsing(int size, unsigned char *buf, struct unistimsession *pte, struct sockaddr_in *addr_from)
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
#define ASTERISK_GPL_KEY
The text the key() function should return.
Asterisk module definitions.
static int unload_module(void)