diff --git a/src/log.c b/src/log.c index bfbe0ac..653720d 100644 --- a/src/log.c +++ b/src/log.c @@ -120,7 +120,7 @@ void log_tcp_listen(void) { } if (setsockopt(debug_listen_fd, SOL_SOCKET, SO_REUSEADDR, &on , sizeof(on)) < 0) { - ERROR("socket returned error [%i:%s]",errno, strerror(errno)); + ERROR("setsockopt returned error [%i:%s]",errno, strerror(errno)); return; } diff --git a/src/sock.c b/src/sock.c index 2a2baea..85359ef 100644 --- a/src/sock.c +++ b/src/sock.c @@ -193,7 +193,7 @@ int sipsock_send(struct in_addr addr, int port, int protocol, */ int sockbind(struct in_addr ipaddr, int localport, int errflg) { struct sockaddr_in my_addr; - int sts; + int sts, on=1; int sock; int flags; @@ -205,10 +205,15 @@ int sockbind(struct in_addr ipaddr, int localport, int errflg) { sock=socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (sock < 0) { - ERROR("socket() call failed: %s",strerror(errno)); + ERROR("socket call failed: %s",strerror(errno)); return 0; } + if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on , sizeof(on)) < 0) { + ERROR("setsockopt returned error [%i:%s]",errno, strerror(errno)); + return; + } + sts=bind(sock, (struct sockaddr *)&my_addr, sizeof(my_addr)); if (sts != 0) { if (errflg) ERROR("bind failed: %s",strerror(errno));