diff --git a/src/unix-manager.c b/src/unix-manager.c index fb88c30efe..d1959684c5 100644 --- a/src/unix-manager.c +++ b/src/unix-manager.c @@ -167,9 +167,10 @@ int UnixNew(UnixCommand * this) } this->select_max = this->socket + 1; +#if !(defined OS_FREEBSD || defined __OpenBSD__) /* Set file mode: will not fully work on most system, the group - * permission is not changed on some Linux and *BSD won't do the - * chmod. */ + * permission is not changed on some Linux. *BSD won't do the + * chmod: it returns EINVAL when calling fchmod on sockets. */ ret = fchmod(this->socket, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP); if (ret == -1) { int err = errno; @@ -178,6 +179,7 @@ int UnixNew(UnixCommand * this) strerror(err), err); } +#endif /* set reuse option */ ret = setsockopt(this->socket, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(on));