unix-socket: don't try to change permissions on BSD

On BSD using fchmod on a socket is not supported and will result
in EINVAL.
pull/2324/head
Victor Julien 9 years ago
parent 96c28b2995
commit f80ce51ddf

@ -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));

Loading…
Cancel
Save