ogs_socknode_new() interface changed

This commit is contained in:
Sukchan Lee 2019-06-05 22:07:37 +09:00
parent 8dc5211448
commit d41ce4d8b1
6 changed files with 54 additions and 24 deletions

View File

@ -84,16 +84,16 @@ gtp_node_t *gtp_node_add(ogs_list_t *list, gtp_f_teid_t *f_teid,
rv = ogs_filter_ip_version(&addr, no_ipv4, no_ipv6, prefer_ipv4);
ogs_assert(addr);
rv = ogs_socknode_fill_scope_id_in_local(addr);
ogs_assert(rv == OGS_OK);
node = gtp_node_new(addr);
ogs_assert(node);
ogs_list_add(list, node);
rv = gtp_f_teid_to_ip(f_teid, &node->ip);
ogs_assert(rv == OGS_OK);
rv = ogs_socknode_fill_scope_id_in_local(node->addr);
ogs_assert(rv == OGS_OK);
ogs_list_add(list, node);
return node;
}

@ -1 +1 @@
Subproject commit 2769b32a9e311b5aa1c1ae2897393314a9743897
Subproject commit 864034bb4686b29f798e3300c200c674bf619b57

View File

@ -1226,10 +1226,7 @@ int mme_context_parse_config()
family, hostname[i], port, 0);
ogs_assert(rv == OGS_OK);
}
vlr = mme_vlr_add(addr,
context_self()->config.parameter.no_ipv4,
context_self()->config.parameter.no_ipv6,
context_self()->config.parameter.prefer_ipv4);
vlr = mme_vlr_add(addr);
ogs_assert(vlr);
memcpy(&vlr->tai, &tai, sizeof tai);
@ -1576,8 +1573,7 @@ ogs_sockaddr_t *mme_pgw_addr_find_by_apn(
return NULL;
}
mme_vlr_t *mme_vlr_add(
ogs_sockaddr_t *addr, int no_ipv4, int no_ipv6, int prefer_ipv4)
mme_vlr_t *mme_vlr_add(ogs_sockaddr_t *addr)
{
mme_vlr_t *vlr = NULL;

View File

@ -530,8 +530,7 @@ void mme_pgw_remove_all();
ogs_sockaddr_t *mme_pgw_addr_find_by_apn(
ogs_list_t *list, int family, char *apn);
mme_vlr_t *mme_vlr_add(
ogs_sockaddr_t *addr, int no_ipv4, int no_ipv6, int prefer_ipv4);
mme_vlr_t *mme_vlr_add(ogs_sockaddr_t *addr);
void mme_vlr_remove(mme_vlr_t *vlr);
void mme_vlr_remove_all();

View File

@ -42,9 +42,13 @@ int testpacket_final()
ogs_socknode_t *testenb_s1ap_client(const char *ipstr)
{
int rv;
ogs_sockaddr_t *addr = NULL;
ogs_socknode_t *node = NULL;
node = ogs_socknode_new(AF_UNSPEC, ipstr, S1AP_SCTP_PORT, 0);
rv = ogs_getaddrinfo(&addr, AF_UNSPEC, ipstr, S1AP_SCTP_PORT, 0);
ogs_assert(rv == OGS_OK);
node = ogs_socknode_new(addr);
ogs_assert(node);
ogs_sctp_client(SOCK_STREAM, node);
@ -76,10 +80,14 @@ void testenb_s1ap_close(ogs_socknode_t *node)
ogs_socknode_t *testenb_gtpu_server(const char *ipstr)
{
int rv;
ogs_sockaddr_t *addr = NULL;
ogs_socknode_t *node = NULL;
ogs_sock_t *sock = NULL;
node = ogs_socknode_new(AF_UNSPEC, ipstr, GTPV1_U_UDP_PORT, 0);
rv = ogs_getaddrinfo(&addr, AF_UNSPEC, ipstr, GTPV1_U_UDP_PORT, 0);
ogs_assert(rv == OGS_OK);
node = ogs_socknode_new(addr);
ogs_assert(node);
sock = ogs_udp_server(node);

View File

@ -33,6 +33,7 @@
static void test1_func(abts_case *tc, void *data)
{
ogs_sock_t *sctp;
ogs_sockaddr_t *addr;
ogs_socknode_t *node;
int rv;
@ -40,13 +41,17 @@ static void test1_func(abts_case *tc, void *data)
ABTS_PTR_NOTNULL(tc, sctp);
ogs_sctp_destroy(sctp);
node = ogs_socknode_new(AF_INET, NULL, PORT, AI_PASSIVE);
rv = ogs_getaddrinfo(&addr, AF_INET, NULL, PORT, AI_PASSIVE);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_server(SOCK_STREAM, node);
ABTS_PTR_NOTNULL(tc, sctp);
ogs_socknode_free(node);
node = ogs_socknode_new(AF_UNSPEC, NULL, PORT, AI_PASSIVE);
rv = ogs_getaddrinfo(&addr, AF_UNSPEC, NULL, PORT, AI_PASSIVE);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_server(SOCK_SEQPACKET, node);
ABTS_PTR_NOTNULL(tc, sctp);
@ -63,10 +68,13 @@ static void test2_main(void *data)
ssize_t size;
uint32_t ppid;
ogs_sctp_info_t sinfo;
ogs_sockaddr_t *addr;
ogs_socknode_t *node;
ogs_sockaddr_t from;
node = ogs_socknode_new(AF_UNSPEC, NULL, PORT, 0);
rv = ogs_getaddrinfo(&addr, AF_UNSPEC, NULL, PORT, 0);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_client(SOCK_SEQPACKET, node);
ABTS_PTR_NOTNULL(tc, sctp);
@ -82,11 +90,15 @@ static void test2_main(void *data)
static void test2_func(abts_case *tc, void *data)
{
int rv;
ogs_sock_t *sctp, *sctp2;
ssize_t size;
ogs_sockaddr_t *addr;
ogs_socknode_t *node;
node = ogs_socknode_new(AF_INET6, NULL, PORT, AI_PASSIVE);
rv = ogs_getaddrinfo(&addr, AF_INET6, NULL, PORT, AI_PASSIVE);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_server(SOCK_STREAM, node);
ABTS_PTR_NOTNULL(tc, sctp);
@ -144,7 +156,9 @@ static void test3_func(abts_case *tc, void *data)
char buf[OGS_ADDRSTRLEN];
ogs_sctp_info_t sinfo;
node = ogs_socknode_new(AF_INET, NULL, PORT, AI_PASSIVE);
rv = ogs_getaddrinfo(&addr, AF_INET, NULL, PORT, AI_PASSIVE);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_server(SOCK_SEQPACKET, node);
ABTS_PTR_NOTNULL(tc, sctp);
@ -164,14 +178,18 @@ static void test3_func(abts_case *tc, void *data)
static ogs_thread_t *test4_thread;
static void test4_main(void *data)
{
int rv;
abts_case *tc = data;
ogs_sock_t *sctp;
ogs_sockaddr_t *addr;
ogs_socknode_t *node;
char str[STRLEN];
ssize_t size;
ogs_sctp_info_t sinfo;
node = ogs_socknode_new(AF_UNSPEC, NULL, PORT, 0);
rv = ogs_getaddrinfo(&addr, AF_UNSPEC, NULL, PORT, 0);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_client(SOCK_STREAM, node);
ABTS_PTR_NOTNULL(tc, sctp);
@ -190,6 +208,7 @@ static void test4_main(void *data)
static void test4_func(abts_case *tc, void *data)
{
int rv;
ogs_sock_t *sctp;
ssize_t size;
ogs_sockaddr_t from, *addr;
@ -202,7 +221,9 @@ static void test4_func(abts_case *tc, void *data)
ogs_msleep(10);
#endif
node = ogs_socknode_new(AF_INET6, NULL, PORT, AI_PASSIVE);
rv = ogs_getaddrinfo(&addr, AF_INET6, NULL, PORT, AI_PASSIVE);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_server(SOCK_SEQPACKET, node);
ABTS_PTR_NOTNULL(tc, sctp);
@ -235,7 +256,9 @@ static void test5_main(void *data)
ssize_t size;
char buf[OGS_ADDRSTRLEN];
node = ogs_socknode_new(AF_INET6, NULL, PORT2, AI_PASSIVE);
rv = ogs_getaddrinfo(&addr, AF_INET6, NULL, PORT2, AI_PASSIVE);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_server(SOCK_SEQPACKET, node);
ABTS_PTR_NOTNULL(tc, sctp);
@ -270,16 +293,20 @@ static void test5_main(void *data)
static void test5_func(abts_case *tc, void *data)
{
int rv;
ogs_sock_t *sctp;
ssize_t size;
ogs_sockaddr_t from;
ogs_sockaddr_t *addr;
ogs_socknode_t *node;
socklen_t addrlen;
char str[STRLEN];
ogs_sctp_info_t sinfo;
char buf[OGS_ADDRSTRLEN];
node = ogs_socknode_new(AF_INET6, NULL, PORT, AI_PASSIVE);
rv = ogs_getaddrinfo(&addr, AF_INET6, NULL, PORT, AI_PASSIVE);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
node = ogs_socknode_new(addr);
ABTS_PTR_NOTNULL(tc, node);
sctp = ogs_sctp_server(SOCK_SEQPACKET, node);
ABTS_PTR_NOTNULL(tc, sctp);