summaryrefslogtreecommitdiff
path: root/ubusd.c
diff options
context:
space:
mode:
Diffstat (limited to 'ubusd.c')
-rw-r--r--ubusd.c39
1 files changed, 7 insertions, 32 deletions
diff --git a/ubusd.c b/ubusd.c
index 5b1d52c..7279a70 100644
--- a/ubusd.c
+++ b/ubusd.c
@@ -22,9 +22,6 @@
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
-#ifdef ENABLE_SYSTEMD
-#include <systemd/sd-daemon.h>
-#endif
#include <libubox/blob.h>
#include <libubox/uloop.h>
@@ -383,12 +380,8 @@ static void sighup_handler(int sig)
int main(int argc, char **argv)
{
const char *ubus_socket = UBUS_UNIX_SOCKET;
- bool remove_socket = true;
int ret = 0;
int ch;
-#ifdef ENABLE_SYSTEMD
- int n_fds;
-#endif
signal(SIGPIPE, SIG_IGN);
signal(SIGHUP, sighup_handler);
@@ -409,37 +402,19 @@ int main(int argc, char **argv)
}
}
-#ifdef ENABLE_SYSTEMD
- n_fds = sd_listen_fds(1);
- if (n_fds > 1) {
- fprintf(stderr, "Too many file descriptors received.\n");
- ret = -1;
+ unlink(ubus_socket);
+ umask(0111);
+ server_fd.fd = usock(USOCK_UNIX | USOCK_SERVER | USOCK_NONBLOCK, ubus_socket, NULL);
+ if (server_fd.fd < 0) {
+ perror("usock");
+ ret = -1;
goto out;
- } else if (n_fds == 1) {
- server_fd.fd = SD_LISTEN_FDS_START + 0;
- fcntl(server_fd.fd, F_SETFD, fcntl(server_fd.fd, F_GETFD) | FD_CLOEXEC);
- fcntl(server_fd.fd, F_SETFL, fcntl(server_fd.fd, F_GETFL) | O_NONBLOCK);
-
- remove_socket = false;
- } else
-#endif
- {
- unlink(ubus_socket);
- umask(0111);
- server_fd.fd = usock(USOCK_UNIX | USOCK_SERVER | USOCK_NONBLOCK, ubus_socket, NULL);
- if (server_fd.fd < 0) {
- perror("usock");
- ret = -1;
- goto out;
- }
}
uloop_fd_add(&server_fd, ULOOP_READ | ULOOP_EDGE_TRIGGER);
ubusd_acl_load();
uloop_run();
-
- if (remove_socket)
- unlink(ubus_socket);
+ unlink(ubus_socket);
out:
uloop_done();