diff --git a/src/network.c b/src/network.c
index 21b969406907787230f173b2f2faeba5a3b6e20a..a659189f3e7960d312d0d608f9f8af55d1e3c5bb 100644 (file)
--- a/src/network.c
+++ b/src/network.c
static int network_bind_socket (const sockent_t *se, const struct addrinfo *ai)
{
int loop = 0;
+ int yes = 1;
+
+ /* allow multiple sockets to use the same PORT number */
+ if (setsockopt(se->fd, SOL_SOCKET, SO_REUSEADDR,
+ &yes, sizeof(yes)) == -1) {
+ char errbuf[1024];
+ ERROR ("setsockopt: %s",
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ return (-1);
+ }
DEBUG ("fd = %i; calling `bind'", se->fd);