ubusd: remove systemd socket activation support
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
parent
964adfdd39
commit
96ab0b3032
5 changed files with 7 additions and 71 deletions
|
@ -5,7 +5,6 @@ ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations)
|
|||
|
||||
OPTION(BUILD_LUA "build Lua plugin" ON)
|
||||
OPTION(BUILD_EXAMPLES "build examples" ON)
|
||||
OPTION(ENABLE_SYSTEMD "systemd support" OFF)
|
||||
|
||||
SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
|
||||
SET(UBUS_UNIX_SOCKET "/var/run/ubus.sock")
|
||||
|
@ -53,20 +52,3 @@ INSTALL(TARGETS ubusd
|
|||
)
|
||||
|
||||
INSTALL(FILES ubusmsg.h ubus_common.h libubus.h DESTINATION include)
|
||||
|
||||
# FIXME: this works but certainly can be done better:
|
||||
SET(UBUSD_BINARY "${CMAKE_INSTALL_PREFIX}/sbin/ubusd")
|
||||
|
||||
# do this after the installs so we have the proper paths
|
||||
IF(ENABLE_SYSTEMD)
|
||||
INCLUDE(FindPkgConfig)
|
||||
PKG_CHECK_MODULES(SYSTEMD libsystemd REQUIRED)
|
||||
|
||||
SET_PROPERTY(TARGET ubusd APPEND PROPERTY COMPILE_FLAGS "${SYSTEMD_CFLAGS}")
|
||||
SET_PROPERTY(TARGET ubusd APPEND PROPERTY LINK_FLAGS "${SYSTEMD_LDFLAGS}")
|
||||
SET_PROPERTY(TARGET ubusd APPEND PROPERTY INCLUDE_DIRECTORIES ${SYSTEMD_INCLUDE_DIRS})
|
||||
TARGET_LINK_LIBRARIES(ubusd ${SYSTEMD_LIBRARIES})
|
||||
ADD_DEFINITIONS( -DENABLE_SYSTEMD)
|
||||
|
||||
ADD_SUBDIRECTORY(systemd)
|
||||
ENDIF()
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
CONFIGURE_FILE(ubus.socket.in ubus.socket)
|
||||
CONFIGURE_FILE(ubus.service.in ubus.service)
|
||||
|
||||
# Cmakes pkgconfig support is very limited, so for now just hardcode
|
||||
SET(SYSTEMD_SYSUNIT_DIR "${SYSTEMD_PREFIX}/lib/systemd/system")
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/systemd/ubus.socket ${CMAKE_BINARY_DIR}/systemd/ubus.service
|
||||
DESTINATION ${SYSTEMD_SYSUNIT_DIR})
|
|
@ -1,6 +0,0 @@
|
|||
[Unit]
|
||||
Description=OpenWrt micro bus
|
||||
Requires=ubus.socket
|
||||
|
||||
[Service]
|
||||
ExecStart=@UBUSD_BINARY@
|
|
@ -1,8 +0,0 @@
|
|||
[Unit]
|
||||
Description=OpenWrt micro bus socket
|
||||
|
||||
[Socket]
|
||||
ListenStream=@UBUS_UNIX_SOCKET@
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
39
ubusd.c
39
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();
|
||||
|
|
Loading…
Add table
Reference in a new issue