- if (ioctl(sock, FIONBIO, (unsigned char *)(&on)) < 0)
- {
- close(sock);
- unlink(socket_name);
- fhuse--;
- sock = -1;
- PERROR("Failed to set socket \"%s\" into non-blocking mode. (errno=%d)\n", sock_address.sun_path, errno);
- return(-1);
+ memset(&admin_fd, 0, sizeof(admin_fd));
+ admin_fd.fd = sock;
+ register_fd(&admin_fd, LCR_FD_READ | LCR_FD_EXCEPT, admin_handle, NULL, 0);
+ if (chmod(socket_name, options.socketrights) < 0) {
+ PERROR("Failed to change socket rights to %d. (errno=%d)\n", options.socketrights, errno);
+ }
+ if (chown(socket_name, options.socketuser, options.socketgroup) < 0) {
+ PERROR("Failed to change socket user/group to %d/%d. (errno=%d)\n", options.socketuser, options.socketgroup, errno);