summaryrefslogtreecommitdiff
path: root/netlib.c
diff options
context:
space:
mode:
authorRemco Treffkorn <remco@rvt.com>2002-10-17 23:58:36 +0000
committerRemco Treffkorn <remco@rvt.com>2002-10-17 23:58:36 +0000
commiteef574ce3b5ff48779efe3e3135cd05d6cdc06ec (patch)
tree7187e4b61051f7d977be173110f4706f773f22a1 /netlib.c
parent2033e52aae19d3838d3626168675d76f82ca02b2 (diff)
downloadgpsd-eef574ce3b5ff48779efe3e3135cd05d6cdc06ec.tar.gz
Added SO_REUSEADDR to socket options
Diffstat (limited to 'netlib.c')
-rw-r--r--netlib.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/netlib.c b/netlib.c
index 08e7e14f..6bfdf1ae 100644
--- a/netlib.c
+++ b/netlib.c
@@ -33,6 +33,7 @@ int passivesock(char *service, char *protocol, int qlen)
struct protoent *ppe;
struct sockaddr_in sin;
int s, type;
+ int one = 1;
bzero((char *) &sin, sizeof(sin));
sin.sin_family = AF_INET;
@@ -57,6 +58,10 @@ int passivesock(char *service, char *protocol, int qlen)
if (s < 0)
errexit("Can't create socket:");
+ if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one)) == -1) {
+ sprintf(mbuf, "%s", "Error: SETSOCKOPT SO_REUSEADDR");
+ errexit(mbuf);
+ }
if (bind(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
sprintf(mbuf, "Can't bind to port %s", service);
errexit(mbuf);