From 059b6a9f597419adc331ca7e1e2b40b090d907a1 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 2 Apr 2016 14:44:27 +0200 Subject: add test for SIP with DNS --- src/net.c | 103 +++++++++++++++++++++++++++++++++++++++++--------------------- src/ua.c | 4 +-- 2 files changed, 71 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/net.c b/src/net.c index 4829a5a..216ddf9 100644 --- a/src/net.c +++ b/src/net.c @@ -8,6 +8,9 @@ #include "core.h" +#define MAX_NS 8 + + static struct { struct config_net cfg; struct sa laddr; @@ -18,7 +21,7 @@ static struct { #endif struct tmr tmr; struct dnsc *dnsc; - struct sa nsv[4]; /**< Configured name servers */ + struct sa nsv[MAX_NS];/**< Configured name servers */ uint32_t nsn; /**< Number of configured name servers */ uint32_t interval; int af; /**< Preferred address family */ @@ -28,24 +31,64 @@ static struct { } net; +static int net_dns_srv_get(struct sa *srvv, uint32_t *n, bool *from_sys) +{ + struct sa nsv[MAX_NS]; + uint32_t i, nsn = ARRAY_SIZE(nsv); + int err; + + err = dns_srv_get(net.domain, sizeof(net.domain), nsv, &nsn); + if (err) { + nsn = 0; + } + + if (net.nsn) { + + if (net.nsn > *n) + return E2BIG; + + /* Use any configured nameservers */ + for (i=0; i *n) + return E2BIG; + + for (i=0; iuuid)) { + if (uag.cfg && str_isset(uag.cfg->uuid)) { if (re_snprintf(params, sizeof(params), ";+sip.instance=\"\"", uag.cfg->uuid) < 0) @@ -610,7 +610,7 @@ int ua_alloc(struct ua **uap, const char *aor) } /* Register clients */ - if (str_isset(uag.cfg->uuid)) + if (uag.cfg && str_isset(uag.cfg->uuid)) add_extension(ua, "gruu"); if (0 == str_casecmp(ua->acc->sipnat, "outbound")) { -- cgit v1.2.3 From 9e16ab5a1a79c1ee43cd3c07faa54be83d83e38b Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sun, 3 Apr 2016 18:19:20 +0200 Subject: fix warning --- src/net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/net.c b/src/net.c index 216ddf9..02b9cda 100644 --- a/src/net.c +++ b/src/net.c @@ -375,7 +375,7 @@ static int dns_debug(struct re_printf *pf, void *unused) { struct sa nsv[MAX_NS]; uint32_t i, nsn = ARRAY_SIZE(nsv); - bool from_sys; + bool from_sys = false; int err; (void)unused; -- cgit v1.2.3