}
#endif
if (serveropt.startserver) {
+ /* Change the file mode mask */
+ umask(0);
+
if (MMSoundMgrFocusSocketInit(&socket_fd)) {
debug_error("focus_server [%d] terminating, due to the error of socket init.", getpid());
return 0;
if (socket_fd < 0) {
strerror_r(errno, str_error, sizeof(str_error));
debug_error("failed to socket(), err: %s", str_error);
- return MM_ERROR_SOUND_INTERNAL;
+ goto LEAVE;
}
debug_log("focus server socket fd [%d]", socket_fd);
if (bind(socket_fd, (struct sockaddr *)&addr_un, sizeof(addr_un))) {
strerror_r(errno, str_error, sizeof(str_error));
debug_error("failed to bind() again, err: %s", str_error);
- close(socket_fd);
- return MM_ERROR_SOUND_INTERNAL;
+ goto LEAVE;
}
} else {
- close(socket_fd);
- return MM_ERROR_SOUND_INTERNAL;
+ goto LEAVE;
}
}
debug_leave();
return MM_ERROR_NONE;
+
+LEAVE:
+ if (socket_fd >= 0)
+ close(socket_fd);
+
+ return MM_ERROR_SOUND_INTERNAL;
}
void MMSoundMgrFocusSocketFini(int fd)