forked from acouzens/open5gs
Add socknode_add() [#367]
This commit is contained in:
parent
bf751dcee7
commit
1e56141d1e
|
@ -65,23 +65,18 @@ void ogs_socknode_free(ogs_socknode_t *node)
|
|||
ogs_socknode_t *ogs_socknode_add(
|
||||
ogs_list_t *list, int family, ogs_sockaddr_t *addr)
|
||||
{
|
||||
int rv;
|
||||
ogs_socknode_t *node = NULL;
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
|
||||
ogs_assert(list);
|
||||
ogs_assert(addr);
|
||||
|
||||
if (family != AF_UNSPEC) {
|
||||
rv = ogs_filteraddrinfo(&addr, family);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
|
||||
if (addr) {
|
||||
node = ogs_calloc(1, sizeof(ogs_socknode_t));
|
||||
ogs_assert(node);
|
||||
|
||||
node->addr = addr;
|
||||
ogs_copyaddrinfo(&dup, addr);
|
||||
if (family != AF_UNSPEC)
|
||||
ogs_filteraddrinfo(&dup, family);
|
||||
|
||||
if (dup) {
|
||||
node = ogs_socknode_new(dup);
|
||||
ogs_list_add(list, node);
|
||||
}
|
||||
|
||||
|
|
|
@ -522,22 +522,12 @@ int mme_context_parse_config()
|
|||
}
|
||||
|
||||
if (addr) {
|
||||
if (ogs_config()->parameter.no_ipv4 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
if (ogs_config()->parameter.no_ipv4 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.s1ap_list, AF_INET, dup);
|
||||
}
|
||||
|
||||
if (ogs_config()->parameter.no_ipv6 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
&self.s1ap_list, AF_INET, addr);
|
||||
if (ogs_config()->parameter.no_ipv6 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.s1ap_list6, AF_INET6, dup);
|
||||
}
|
||||
|
||||
&self.s1ap_list6, AF_INET6, addr);
|
||||
ogs_freeaddrinfo(addr);
|
||||
}
|
||||
|
||||
|
@ -645,22 +635,12 @@ int mme_context_parse_config()
|
|||
}
|
||||
|
||||
if (addr) {
|
||||
if (ogs_config()->parameter.no_ipv4 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
if (ogs_config()->parameter.no_ipv4 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpc_list, AF_INET, dup);
|
||||
}
|
||||
|
||||
if (ogs_config()->parameter.no_ipv6 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
&self.gtpc_list, AF_INET, addr);
|
||||
if (ogs_config()->parameter.no_ipv6 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpc_list6, AF_INET6, dup);
|
||||
}
|
||||
|
||||
&self.gtpc_list6, AF_INET6, addr);
|
||||
ogs_freeaddrinfo(addr);
|
||||
}
|
||||
|
||||
|
|
|
@ -406,22 +406,12 @@ int pgw_context_parse_config(void)
|
|||
}
|
||||
|
||||
if (addr) {
|
||||
if (ogs_config()->parameter.no_ipv4 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
if (ogs_config()->parameter.no_ipv4 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpc_list, AF_INET, dup);
|
||||
}
|
||||
|
||||
if (ogs_config()->parameter.no_ipv6 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
&self.gtpc_list, AF_INET, addr);
|
||||
if (ogs_config()->parameter.no_ipv6 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpc_list6, AF_INET6, dup);
|
||||
}
|
||||
|
||||
&self.gtpc_list6, AF_INET6, addr);
|
||||
ogs_freeaddrinfo(addr);
|
||||
}
|
||||
|
||||
|
@ -528,22 +518,12 @@ int pgw_context_parse_config(void)
|
|||
}
|
||||
|
||||
if (addr) {
|
||||
if (ogs_config()->parameter.no_ipv4 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
if (ogs_config()->parameter.no_ipv4 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpu_list, AF_INET, dup);
|
||||
}
|
||||
|
||||
if (ogs_config()->parameter.no_ipv6 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
&self.gtpu_list, AF_INET, addr);
|
||||
if (ogs_config()->parameter.no_ipv6 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpu_list6, AF_INET6, dup);
|
||||
}
|
||||
|
||||
&self.gtpu_list6, AF_INET6, addr);
|
||||
ogs_freeaddrinfo(addr);
|
||||
}
|
||||
|
||||
|
|
|
@ -184,7 +184,8 @@ int sgw_context_parse_config(void)
|
|||
if (v) family = atoi(v);
|
||||
if (family != AF_UNSPEC &&
|
||||
family != AF_INET && family != AF_INET6) {
|
||||
ogs_warn("Ignore family(%d) : AF_UNSPEC(%d), "
|
||||
ogs_warn("Ignore family(%d) : "
|
||||
"AF_UNSPEC(%d), "
|
||||
"AF_INET(%d), AF_INET6(%d) ",
|
||||
family, AF_UNSPEC, AF_INET, AF_INET6);
|
||||
family = AF_UNSPEC;
|
||||
|
@ -230,22 +231,12 @@ int sgw_context_parse_config(void)
|
|||
}
|
||||
|
||||
if (addr) {
|
||||
if (ogs_config()->parameter.no_ipv4 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
if (ogs_config()->parameter.no_ipv4 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpc_list, AF_INET, dup);
|
||||
}
|
||||
|
||||
if (ogs_config()->parameter.no_ipv6 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
&self.gtpc_list, AF_INET, addr);
|
||||
if (ogs_config()->parameter.no_ipv6 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpc_list6, AF_INET6, dup);
|
||||
}
|
||||
|
||||
&self.gtpc_list6, AF_INET6, addr);
|
||||
ogs_freeaddrinfo(addr);
|
||||
}
|
||||
|
||||
|
@ -373,27 +364,6 @@ int sgw_context_parse_config(void)
|
|||
ogs_warn("unknown key `%s`", gtpu_key);
|
||||
}
|
||||
|
||||
adv_addr = NULL;
|
||||
for (i = 0; i < adv_num; i++) {
|
||||
rv = ogs_addaddrinfo(&adv_addr,
|
||||
family, adv_hostname[i], port, 0);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
if (adv_addr) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, adv_addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
if (ogs_config()->parameter.no_ipv4 == 0) {
|
||||
ogs_socknode_add(
|
||||
&self.adv_gtpu_list, AF_INET, dup);
|
||||
}
|
||||
|
||||
if (ogs_config()->parameter.no_ipv6 == 0) {
|
||||
ogs_socknode_add(
|
||||
&self.adv_gtpu_list6, AF_INET6, dup);
|
||||
}
|
||||
}
|
||||
|
||||
addr = NULL;
|
||||
for (i = 0; i < num; i++) {
|
||||
rv = ogs_addaddrinfo(&addr,
|
||||
|
@ -401,22 +371,12 @@ int sgw_context_parse_config(void)
|
|||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
if (addr) {
|
||||
if (ogs_config()->parameter.no_ipv4 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
if (ogs_config()->parameter.no_ipv4 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpu_list, AF_INET, dup);
|
||||
}
|
||||
|
||||
if (ogs_config()->parameter.no_ipv6 == 0) {
|
||||
ogs_sockaddr_t *dup = NULL;
|
||||
rv = ogs_copyaddrinfo(&dup, addr);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
&self.gtpu_list, AF_INET, addr);
|
||||
if (ogs_config()->parameter.no_ipv6 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.gtpu_list6, AF_INET6, dup);
|
||||
}
|
||||
|
||||
&self.gtpu_list6, AF_INET6, addr);
|
||||
ogs_freeaddrinfo(addr);
|
||||
}
|
||||
|
||||
|
@ -430,8 +390,22 @@ int sgw_context_parse_config(void)
|
|||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
|
||||
adv_addr = NULL;
|
||||
for (i = 0; i < adv_num; i++) {
|
||||
rv = ogs_addaddrinfo(&adv_addr,
|
||||
family, adv_hostname[i], port, 0);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
if (adv_addr) {
|
||||
ogs_socknode_t *node = NULL;
|
||||
|
||||
if (ogs_config()->parameter.no_ipv4 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.adv_gtpu_list, AF_INET, adv_addr);
|
||||
if (ogs_config()->parameter.no_ipv6 == 0)
|
||||
ogs_socknode_add(
|
||||
&self.adv_gtpu_list6, AF_INET6, adv_addr);
|
||||
|
||||
ogs_list_for_each(&self.gtpu_list, node) {
|
||||
ogs_socknode_t *adv_node =
|
||||
ogs_list_first(&self.adv_gtpu_list);
|
||||
|
@ -470,8 +444,8 @@ int sgw_context_parse_config(void)
|
|||
NULL, self.gtpu_port);
|
||||
ogs_assert(rv == OGS_OK);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
} else
|
||||
ogs_warn("unknown key `%s`", sgw_key);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue