X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fnet.c;h=6acd2d02cb7027955562ea87a516b5553a72b8fb;hb=66c517d24618e2a9395879d424c2ccd8728af914;hp=1eeaff15742b70eb3c2135790137db77f5b33d6e;hpb=347d6d76f535256863bcf8a13b3b06a859bf27d2;p=doldaconnect.git diff --git a/daemon/net.c b/daemon/net.c index 1eeaff1..6acd2d0 100644 --- a/daemon/net.c +++ b/daemon/net.c @@ -574,6 +574,7 @@ struct socket *netcslisten(int type, struct sockaddr *name, socklen_t namelen, v struct socket *netcslistenlocal(int type, struct sockaddr *name, socklen_t namelen, void (*func)(struct socket *, struct socket *, void *), void *data) { struct socket *sk; + int intbuf; /* I don't know if this is actually correct (it probably isn't), * but since, at on least Linux systems, PF_* are specifically @@ -584,6 +585,11 @@ struct socket *netcslistenlocal(int type, struct sockaddr *name, socklen_t namel if((sk = mksock(name->sa_family, type)) == NULL) return(NULL); sk->state = SOCK_LST; + if(confgetint("net", "reuseaddr")) + { + intbuf = 1; + setsockopt(sk->fd, SOL_SOCKET, SO_REUSEADDR, &intbuf, sizeof(intbuf)); + } if(bind(sk->fd, name, namelen) < 0) { putsock(sk);