summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2018-05-04 16:50:45 +0200
committerOlivier CrĂȘte <olivier.crete@collabora.com>2018-05-04 16:50:45 +0200
commit34d60446ddfcdb98f2543611151ef8fbc5be4805 (patch)
tree4d60bf18a360e896e3408ee3dd390219efdb878b
parent3a9d92818b4c2f083e26fe164a1be82212bd4061 (diff)
downloadlibnice-34d60446ddfcdb98f2543611151ef8fbc5be4805.tar.gz
stund: Pass sockaddr_storage size for both families
-rw-r--r--stun/tools/stund.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/stun/tools/stund.c b/stun/tools/stund.c
index c148e51..00a0881 100644
--- a/stun/tools/stund.c
+++ b/stun/tools/stund.c
@@ -100,15 +100,12 @@ int listen_socket (int fam, int type, int proto, unsigned int port)
struct sockaddr_in6 in6;
struct sockaddr_storage storage;
} addr;
- int len;
if (fd == -1)
{
perror ("Error opening IP port");
return -1;
}
- if (fd < 3)
- goto error;
memset (&addr, 0, sizeof (addr));
addr.storage.ss_family = fam;
@@ -120,7 +117,6 @@ int listen_socket (int fam, int type, int proto, unsigned int port)
{
case AF_INET:
addr.in.sin_port = htons (port);
- len = sizeof (struct sockaddr_in);
break;
case AF_INET6:
@@ -128,14 +124,13 @@ int listen_socket (int fam, int type, int proto, unsigned int port)
setsockopt (fd, SOL_IPV6, IPV6_V6ONLY, &yes, sizeof (yes));
#endif
addr.in6.sin6_port = htons (port);
- len = sizeof (struct sockaddr_in6);
break;
default:
assert (0); /* should never be reached */
}
- if (bind (fd, &addr.addr, len))
+ if (bind (fd, &addr.addr, sizeof (struct sockaddr_storage)))
{
perror ("Error opening IP port");
goto error;
@@ -192,7 +187,7 @@ static int dgram_process (int sock, StunAgent *oldagent, StunAgent *newagent)
StunValidationStatus validation;
StunAgent *agent = NULL;
- addr_len = sizeof (struct sockaddr_in);
+ addr_len = sizeof (struct sockaddr_storage);
len = recvfrom (sock, buf, sizeof(buf), 0, &addr.addr, &addr_len);
if (len == (size_t)-1)
return -1;