diff --git a/configs/open5gs/amf.yaml.in b/configs/open5gs/amf.yaml.in index 7b4240143..0579b12cd 100644 --- a/configs/open5gs/amf.yaml.in +++ b/configs/open5gs/amf.yaml.in @@ -290,6 +290,7 @@ pool: # # sockopt: # no_delay : true +# so_bindtodevice : true # sockopt: diff --git a/configs/open5gs/mme.yaml.in b/configs/open5gs/mme.yaml.in index ace42a7ef..f3c78f169 100644 --- a/configs/open5gs/mme.yaml.in +++ b/configs/open5gs/mme.yaml.in @@ -388,6 +388,7 @@ pool: # # sockopt: # no_delay : true +# so_bindtodevice : true # sockopt: diff --git a/configs/open5gs/sgwc.yaml.in b/configs/open5gs/sgwc.yaml.in index c53022361..96dd7dcd6 100644 --- a/configs/open5gs/sgwc.yaml.in +++ b/configs/open5gs/sgwc.yaml.in @@ -160,6 +160,12 @@ max: # pool: +# +# sockopt: +# so_bindtodevice : true +# +sockopt: + # # time: # diff --git a/configs/open5gs/sgwu.yaml.in b/configs/open5gs/sgwu.yaml.in index 8824c7288..1e9c6b6fd 100644 --- a/configs/open5gs/sgwu.yaml.in +++ b/configs/open5gs/sgwu.yaml.in @@ -149,6 +149,13 @@ max: # pool: +# +# sockopt: +# no_delay : true +# so_bindtodevice : true +# +sockopt: + # # time: # diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in index c462b8e51..8670a115b 100644 --- a/configs/open5gs/smf.yaml.in +++ b/configs/open5gs/smf.yaml.in @@ -498,6 +498,12 @@ max: # pool: +# +# sockopt: +# so_bindtodevice : true +# +sockopt: + # # time: # diff --git a/configs/open5gs/upf.yaml.in b/configs/open5gs/upf.yaml.in index 3dd71f5a6..7f0018a84 100644 --- a/configs/open5gs/upf.yaml.in +++ b/configs/open5gs/upf.yaml.in @@ -220,6 +220,12 @@ max: # pool: +# +# sockopt: +# so_bindtodevice : true +# +sockopt: + # # time: # diff --git a/lib/app/ogs-context.c b/lib/app/ogs-context.c index a76d02f28..69add1078 100644 --- a/lib/app/ogs-context.c +++ b/lib/app/ogs-context.c @@ -187,6 +187,7 @@ static void app_context_prepare(void) self.sctp.max_initial_timeout = 8000; /* 8 seconds */ self.sockopt.no_delay = true; + self.sockopt.so_bindtodevice = true; #define MAX_NUM_OF_UE 1024 /* Num of UE per AMF/MME */ #define MAX_NUM_OF_GNB 64 /* Num of gNB per AMF/MME */ @@ -376,6 +377,9 @@ int ogs_app_context_parse_config(void) const char *v = ogs_yaml_iter_value(&sockopt_iter); if (v) self.sockopt.l_linger = atoi(v); self.sockopt.l_onoff = true; + } else if (!strcmp(sockopt_key, "so_bindtodevice")) { + self.sockopt.so_bindtodevice = + ogs_yaml_iter_bool(&sockopt_iter); } else ogs_warn("unknown key `%s`", sockopt_key); } diff --git a/lib/app/ogs-context.h b/lib/app/ogs-context.h index 67bc75cf3..ec2eeaece 100644 --- a/lib/app/ogs-context.h +++ b/lib/app/ogs-context.h @@ -84,6 +84,7 @@ typedef struct ogs_app_context_s { int no_delay; int l_onoff; int l_linger; + int so_bindtodevice; } sockopt; struct { diff --git a/lib/core/ogs-socket.c b/lib/core/ogs-socket.c index 4477a1db2..7ecd45547 100644 --- a/lib/core/ogs-socket.c +++ b/lib/core/ogs-socket.c @@ -338,15 +338,19 @@ int ogs_bind_to_device(ogs_socket_t fd, const char *device) int rc; ogs_assert(fd != INVALID_SOCKET); + ogs_assert(device); rc = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device)+1); if (rc != OGS_OK) { ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno, - "setsockopt(SOL_SOCKET, SO_BINDTODEVICE, %s) failed", - device); + "setsockopt(SOL_SOCKET, SO_BINDTODEVICE, %s) failed", device); + ogs_error("You need to grant privileges to use SO_BINDTODEVICE."); + ogs_error("OR disable SO_BINDTODEVICE " + "in the configuration file as below."); + ogs_log_print(OGS_LOG_ERROR, "\nsockopt:\n"); + ogs_log_print(OGS_LOG_ERROR, " so_bindtodevice : false\n\n"); return OGS_ERROR; } - return OGS_OK; -#else - return OGS_ERROR; #endif + + return OGS_OK; } diff --git a/lib/core/ogs-socknode.c b/lib/core/ogs-socknode.c index 663fd81e0..cb566f77b 100644 --- a/lib/core/ogs-socknode.c +++ b/lib/core/ogs-socknode.c @@ -51,8 +51,8 @@ void ogs_socknode_free(ogs_socknode_t *node) ogs_assert(node); ogs_freeaddrinfo(node->addr); - if (node->bind_dev) - ogs_free(node->bind_dev); + if (node->dev) + ogs_free(node->dev); if (node->poll) ogs_pollset_remove(node->poll); if (node->sock) { @@ -103,8 +103,7 @@ void ogs_socknode_remove_all(ogs_list_t *list) } int ogs_socknode_probe( - ogs_list_t *list, ogs_list_t *list6, const char *dev, uint16_t port, - const char *bind_device) + ogs_list_t *list, ogs_list_t *list6, const char *dev, uint16_t port) { #if defined(HAVE_GETIFADDRS) ogs_socknode_t *node = NULL; @@ -167,8 +166,8 @@ int ogs_socknode_probe( node = ogs_calloc(1, sizeof(ogs_socknode_t)); node->addr = addr; - if (bind_device) - node->bind_dev = ogs_strdup(bind_device); + if (dev) + node->dev = ogs_strdup(dev); if (addr->ogs_sa_family == AF_INET) { ogs_assert(list); diff --git a/lib/core/ogs-socknode.h b/lib/core/ogs-socknode.h index 196a58929..2158e061b 100644 --- a/lib/core/ogs-socknode.h +++ b/lib/core/ogs-socknode.h @@ -35,11 +35,11 @@ typedef struct ogs_socknode_s { ogs_lnode_t node; ogs_sockaddr_t *addr; + char *dev; /* !NULL: used with SO_BINDTODEVICE */ ogs_sock_t *sock; void (*cleanup)(ogs_sock_t *sock); ogs_poll_t *poll; - char *bind_dev; /* !NULL: used with SO_BINDTODEVICE */ } ogs_socknode_t; ogs_socknode_t *ogs_socknode_new(ogs_sockaddr_t *addr); @@ -51,8 +51,7 @@ void ogs_socknode_remove(ogs_list_t *list, ogs_socknode_t *node); void ogs_socknode_remove_all(ogs_list_t *list); int ogs_socknode_probe( - ogs_list_t *list, ogs_list_t *list6, const char *dev, uint16_t port, - const char *bind_device); + ogs_list_t *list, ogs_list_t *list6, const char *dev, uint16_t port); int ogs_socknode_fill_scope_id_in_local(ogs_sockaddr_t *sa_list); void ogs_socknode_set_cleanup( diff --git a/lib/core/ogs-udp.c b/lib/core/ogs-udp.c index 1f645ee25..6f640d1c6 100644 --- a/lib/core/ogs-udp.c +++ b/lib/core/ogs-udp.c @@ -33,7 +33,7 @@ ogs_sock_t *ogs_udp_socket(int family, ogs_socknode_t *node) return sock; } -ogs_sock_t *ogs_udp_server(ogs_socknode_t *node) +ogs_sock_t *ogs_udp_server(ogs_socknode_t *node, bool so_bindtodevice) { ogs_sock_t *new = NULL; ogs_sockaddr_t *addr; @@ -54,16 +54,15 @@ ogs_sock_t *ogs_udp_server(ogs_socknode_t *node) addr = addr->next; continue; } - ogs_debug("udp_server() [%s]:%d", - OGS_ADDR(addr, buf), OGS_PORT(addr)); - if(node->bind_dev) { - if (ogs_bind_to_device(new->fd, node->bind_dev) != OGS_OK) { + ogs_debug("udp_server() [%s]:%d", OGS_ADDR(addr, buf), OGS_PORT(addr)); + if (so_bindtodevice == true && node->dev) { + if (ogs_bind_to_device(new->fd, node->dev) != OGS_OK) { ogs_sock_destroy(new); addr = addr->next; continue; } ogs_debug("udp_server() [%s]:%d bound to device %s", - OGS_ADDR(addr, buf), OGS_PORT(addr), node->bind_dev); + OGS_ADDR(addr, buf), OGS_PORT(addr), node->dev); } break; } diff --git a/lib/core/ogs-udp.h b/lib/core/ogs-udp.h index c850a8d4e..239de8113 100644 --- a/lib/core/ogs-udp.h +++ b/lib/core/ogs-udp.h @@ -29,7 +29,7 @@ extern "C" { #endif ogs_sock_t *ogs_udp_socket(int family, ogs_socknode_t *node); -ogs_sock_t *ogs_udp_server(ogs_socknode_t *node); +ogs_sock_t *ogs_udp_server(ogs_socknode_t *node, bool so_bindtodevice); ogs_sock_t *ogs_udp_client(ogs_socknode_t *node); int ogs_udp_connect(ogs_sock_t *sock, ogs_sockaddr_t *sa_list); diff --git a/lib/gtp/context.c b/lib/gtp/context.c index 1a25ef4ea..a90c255dd 100644 --- a/lib/gtp/context.c +++ b/lib/gtp/context.c @@ -103,9 +103,7 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) const char *hostname[OGS_MAX_NUM_OF_HOSTNAME]; uint16_t port = self.gtpc_port; const char *dev = NULL; - const char *bind_dev = NULL; ogs_sockaddr_t *addr = NULL; - ogs_socknode_t *node = NULL, *node6 = NULL; if (ogs_yaml_iter_type(>pc_array) == YAML_MAPPING_NODE) { @@ -163,8 +161,6 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) if (v) port = atoi(v); } else if (!strcmp(gtpc_key, "dev")) { dev = ogs_yaml_iter_value(>pc_iter); - } else if (!strcmp(gtpc_key, "bind_dev")) { - bind_dev = ogs_yaml_iter_value(>pc_iter); } else ogs_warn("unknown key `%s`", gtpc_key); } @@ -178,17 +174,11 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) if (addr) { if (ogs_app()->parameter.no_ipv4 == 0) - node = ogs_socknode_add( + ogs_socknode_add( &self.gtpc_list, AF_INET, addr); if (ogs_app()->parameter.no_ipv6 == 0) - node6 = ogs_socknode_add( + ogs_socknode_add( &self.gtpc_list6, AF_INET6, addr); - if (bind_dev) { - if (node) - node->bind_dev = ogs_strdup(bind_dev); - if (node6) - node6->bind_dev = ogs_strdup(bind_dev); - } ogs_freeaddrinfo(addr); } @@ -198,7 +188,7 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) NULL : &self.gtpc_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.gtpc_list6, - dev, port, bind_dev); + dev, port); ogs_assert(rv == OGS_OK); } @@ -212,7 +202,7 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) NULL : &self.gtpc_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.gtpc_list6, - NULL, self.gtpc_port, NULL); + NULL, self.gtpc_port); ogs_assert(rv == OGS_OK); } } else if (!strcmp(local_key, "gtpu")) { @@ -238,7 +228,6 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) const char *teid_range = NULL; const char *network_instance = NULL; const char *source_interface = NULL; - const char *bind_dev = NULL; if (ogs_yaml_iter_type(>pu_array) == YAML_MAPPING_NODE) { @@ -328,8 +317,6 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) if (v) port = atoi(v); } else if (!strcmp(gtpu_key, "dev")) { dev = ogs_yaml_iter_value(>pu_iter); - } else if (!strcmp(gtpu_key, "bind_dev")) { - bind_dev = ogs_yaml_iter_value(>pu_iter); } else if (!strcmp(gtpu_key, "teid_range_indication")) { teid_range_indication = @@ -361,15 +348,9 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) if (addr) { if (ogs_app()->parameter.no_ipv4 == 0) - node = ogs_socknode_add(&list, AF_INET, addr); + ogs_socknode_add(&list, AF_INET, addr); if (ogs_app()->parameter.no_ipv6 == 0) - node6 = ogs_socknode_add(&list6, AF_INET6, addr); - if (bind_dev) { - if (node) - node->bind_dev = ogs_strdup(bind_dev); - if (node6) - node6->bind_dev = ogs_strdup(bind_dev); - } + ogs_socknode_add(&list6, AF_INET6, addr); ogs_freeaddrinfo(addr); } @@ -377,7 +358,7 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) rv = ogs_socknode_probe( ogs_app()->parameter.no_ipv4 ? NULL : &list, ogs_app()->parameter.no_ipv6 ? NULL : &list6, - dev, port, bind_dev); + dev, port); ogs_assert(rv == OGS_OK); } @@ -473,7 +454,7 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote) rv = ogs_socknode_probe( ogs_app()->parameter.no_ipv4 ? NULL : &list, ogs_app()->parameter.no_ipv6 ? NULL : &list6, - NULL, self.gtpu_port, NULL); + NULL, self.gtpu_port); ogs_assert(rv == OGS_OK); /* diff --git a/lib/gtp/path.c b/lib/gtp/path.c index 4e01f4401..0d7af6adf 100644 --- a/lib/gtp/path.c +++ b/lib/gtp/path.c @@ -25,7 +25,7 @@ ogs_sock_t *ogs_gtp_server(ogs_socknode_t *node) ogs_sock_t *gtp; ogs_assert(node); - gtp = ogs_udp_server(node); + gtp = ogs_udp_server(node, ogs_app()->sockopt.so_bindtodevice); if (gtp) { ogs_info("gtp_server() [%s]:%d", OGS_ADDR(node->addr, buf), OGS_PORT(node->addr)); diff --git a/lib/pfcp/context.c b/lib/pfcp/context.c index c3e59604c..9fbc6ab4f 100644 --- a/lib/pfcp/context.c +++ b/lib/pfcp/context.c @@ -274,7 +274,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote) NULL : &self.pfcp_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.pfcp_list6, - dev, self.pfcp_port, NULL); + dev, self.pfcp_port); ogs_assert(rv == OGS_OK); } @@ -288,7 +288,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote) NULL : &self.pfcp_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.pfcp_list6, - NULL, self.pfcp_port, NULL); + NULL, self.pfcp_port); ogs_assert(rv == OGS_OK); } } else if (!strcmp(local_key, "subnet")) { diff --git a/lib/pfcp/path.c b/lib/pfcp/path.c index 5822f75fd..4cdd2dbf8 100644 --- a/lib/pfcp/path.c +++ b/lib/pfcp/path.c @@ -25,7 +25,7 @@ ogs_sock_t *ogs_pfcp_server(ogs_socknode_t *node) ogs_sock_t *pfcp; ogs_assert(node); - pfcp = ogs_udp_server(node); + pfcp = ogs_udp_server(node, ogs_app()->sockopt.so_bindtodevice); if (pfcp) { ogs_info("pfcp_server() [%s]:%d", OGS_ADDR(node->addr, buf), OGS_PORT(node->addr)); diff --git a/lib/sbi/context.c b/lib/sbi/context.c index 0959b7634..16d20d0ea 100644 --- a/lib/sbi/context.c +++ b/lib/sbi/context.c @@ -280,7 +280,7 @@ int ogs_sbi_context_parse_config(const char *local, const char *remote) rv = ogs_socknode_probe( ogs_app()->parameter.no_ipv4 ? NULL : &list, ogs_app()->parameter.no_ipv6 ? NULL : &list6, - dev, port, NULL); + dev, port); ogs_assert(rv == OGS_OK); } @@ -334,7 +334,7 @@ int ogs_sbi_context_parse_config(const char *local, const char *remote) rv = ogs_socknode_probe( ogs_app()->parameter.no_ipv4 ? NULL : &list, ogs_app()->parameter.no_ipv6 ? NULL : &list6, - NULL, self.sbi_port, NULL); + NULL, self.sbi_port); ogs_assert(rv == OGS_OK); node = ogs_list_first(&list); diff --git a/src/amf/context.c b/src/amf/context.c index 280df1b73..a4f982c3d 100644 --- a/src/amf/context.c +++ b/src/amf/context.c @@ -296,7 +296,7 @@ int amf_context_parse_config(void) NULL : &self.ngap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.ngap_list6, - dev, port, NULL); + dev, port); ogs_assert(rv == OGS_OK); } @@ -310,7 +310,7 @@ int amf_context_parse_config(void) NULL : &self.ngap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.ngap_list6, - NULL, self.ngap_port, NULL); + NULL, self.ngap_port); ogs_assert(rv == OGS_OK); } } else if (!strcmp(amf_key, "guami")) { diff --git a/src/mme/mme-context.c b/src/mme/mme-context.c index 0de3075a1..6be71cd24 100644 --- a/src/mme/mme-context.c +++ b/src/mme/mme-context.c @@ -506,7 +506,7 @@ int mme_context_parse_config() NULL : &self.s1ap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.s1ap_list6, - dev, port, NULL); + dev, port); ogs_assert(rv == OGS_OK); } @@ -520,7 +520,7 @@ int mme_context_parse_config() NULL : &self.s1ap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.s1ap_list6, - NULL, self.s1ap_port, NULL); + NULL, self.s1ap_port); ogs_assert(rv == OGS_OK); } } else if (!strcmp(mme_key, "gtpc")) { diff --git a/src/nssf/context.c b/src/nssf/context.c index 8c7658275..7dac31af9 100644 --- a/src/nssf/context.c +++ b/src/nssf/context.c @@ -233,7 +233,7 @@ int nssf_context_parse_config(void) rv = ogs_socknode_probe( ogs_app()->parameter.no_ipv4 ? NULL : &list, ogs_app()->parameter.no_ipv6 ? NULL : &list6, - dev, port, NULL); + dev, port); ogs_assert(rv == OGS_OK); } diff --git a/tests/common/context.c b/tests/common/context.c index 9178f94ce..3fe9aab13 100644 --- a/tests/common/context.c +++ b/tests/common/context.c @@ -244,7 +244,7 @@ int test_context_parse_config(void) NULL : &self.ngap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.ngap_list6, - dev, port, NULL); + dev, port); ogs_assert(rv == OGS_OK); } @@ -258,7 +258,7 @@ int test_context_parse_config(void) NULL : &self.ngap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.ngap_list6, - NULL, self.ngap_port, NULL); + NULL, self.ngap_port); ogs_assert(rv == OGS_OK); } } if (!strcmp(amf_key, "tai")) { @@ -628,7 +628,7 @@ int test_context_parse_config(void) NULL : &self.s1ap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.s1ap_list6, - dev, port, NULL); + dev, port); ogs_assert(rv == OGS_OK); } @@ -642,7 +642,7 @@ int test_context_parse_config(void) NULL : &self.s1ap_list, ogs_app()->parameter.no_ipv6 ? NULL : &self.s1ap_list6, - NULL, self.s1ap_port, NULL); + NULL, self.s1ap_port); ogs_assert(rv == OGS_OK); } } else if (!strcmp(mme_key, "tai")) { diff --git a/tests/common/gtpu.c b/tests/common/gtpu.c index 5dd1412e7..304a7289b 100644 --- a/tests/common/gtpu.c +++ b/tests/common/gtpu.c @@ -47,7 +47,7 @@ ogs_socknode_t *test_gtpu_server(int index, int family) node = ogs_socknode_new(addr); ogs_assert(node); - sock = ogs_udp_server(node); + sock = ogs_udp_server(node, false); ogs_assert(sock); return node; diff --git a/tests/core/poll-test.c b/tests/core/poll-test.c index 97be85ab6..e97c0fcb1 100644 --- a/tests/core/poll-test.c +++ b/tests/core/poll-test.c @@ -62,7 +62,7 @@ static void test1_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); server[i] = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, server[i]); - ogs_udp_server(server[i]); + ogs_udp_server(server[i], false, false); ABTS_PTR_NOTNULL(tc, server[i]->sock); rv = ogs_getaddrinfo(&addr, AF_INET, "127.0.0.1", PORT+i, AI_PASSIVE); ABTS_INT_EQUAL(tc, OGS_OK, rv); @@ -293,7 +293,7 @@ static void test4_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); poll = ogs_pollset_add(pollset, OGS_POLLIN, udp->fd, test4_handler, tc); diff --git a/tests/core/socket-test.c b/tests/core/socket-test.c index 10ea7a0b8..d19739e02 100644 --- a/tests/core/socket-test.c +++ b/tests/core/socket-test.c @@ -40,7 +40,7 @@ static void test1_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); ogs_socknode_free(node); @@ -48,7 +48,7 @@ static void test1_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); ogs_socknode_free(node); @@ -56,7 +56,7 @@ static void test1_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); ogs_socknode_free(node); } @@ -154,7 +154,7 @@ static void test3_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); test3_thread = ogs_thread_create(test3_main, tc); @@ -211,7 +211,7 @@ static void test4_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); test4_thread = ogs_thread_create(test4_main, tc); @@ -244,7 +244,7 @@ static void test5_main(void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); rv = ogs_getaddrinfo(&addr, AF_INET6, NULL, PORT, 0); @@ -277,7 +277,7 @@ static void test5_func(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, OGS_OK, rv); node = ogs_socknode_new(addr); ABTS_PTR_NOTNULL(tc, node); - udp = ogs_udp_server(node); + udp = ogs_udp_server(node, false); ABTS_PTR_NOTNULL(tc, udp); rv = ogs_getaddrinfo(&addr, AF_INET6, NULL, PORT2, 0); @@ -396,7 +396,7 @@ static void test7_func(abts_case *tc, void *data) ogs_socknode_remove_all(&list); - rv = ogs_socknode_probe(&list, &list6, NULL, PORT, NULL); + rv = ogs_socknode_probe(&list, &list6, NULL, PORT); ABTS_INT_EQUAL(tc, OGS_OK, rv); ogs_socknode_remove_all(&list); diff --git a/tests/non3gpp/gtp-path.c b/tests/non3gpp/gtp-path.c index d6e8a4693..45f06dc81 100644 --- a/tests/non3gpp/gtp-path.c +++ b/tests/non3gpp/gtp-path.c @@ -38,7 +38,7 @@ ogs_socknode_t *test_epdg_server(uint16_t port) node = ogs_socknode_new(addr); ogs_assert(node); - sock = ogs_udp_server(node); + sock = ogs_udp_server(node, false); ogs_assert(sock); return node;