Source1001: sdbd_device.service
Source1002: sdbd_emulator.service
Source1003: %{name}.manifest
-Source1004: sdbd_tcp.socket
+Source1004: sdbd_tcp.service
Source1005: sdbd_device_tv.service
Source1006: sdbd_emulator_tv.service
Source1007: sdbd.socket
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(libsystemd)
Requires: dbus
Provides: %{name}-profile_common = %{version}-%{release}
Provides: %{name}-profile_mobile = %{version}-%{release}
install -m 0644 %SOURCE1005 %{buildroot}%{_unitdir}/sdbd.service.tv
install -m 0644 %SOURCE1001 %{buildroot}%{_unitdir}/sdbd.service
-install -m 0644 %SOURCE1004 %{buildroot}%{_unitdir}/sdbd_tcp.socket
-
-install -m 0755 -d %{buildroot}%{_unitdir}/sockets.target.wants/
-ln -s ../sdbd_tcp.socket %{buildroot}%{_unitdir}/sockets.target.wants/
+install -m 0644 %SOURCE1004 %{buildroot}%{_unitdir}/sdbd_tcp.service
mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
install -m 644 rules/99-sdbd.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
%attr(0755, root, root) %{_sysconfdir}/init.d/sdbd
%{_unitdir}/sdbd.service
%{_unitdir}/sdbd.socket
-%{_unitdir}/sdbd_tcp.socket
-%{_unitdir}/sockets.target.wants/sdbd_tcp.socket
+%{_unitdir}/sdbd_tcp.service
%{_prefix}/lib/udev/rules.d/99-sdbd.rules
%{TZ_SYS_BIN}/profile_command
%{_sysconfdir}/sdbd/descs
--- /dev/null
+[Unit]
+Description=sdbd
+After=default.target
+
+[Service]
+User=sdk
+Group=sdk
+Type=simple
+#If necessary, Put Environment variable settings in a file like below
+#ExecStartPre=/bin/bash -c "/bin/echo 'SDB_TRACE=all SDBD_LOG_PATH=/tmp' >> /tmp/.sdbdlog.conf"
+PIDFile=/tmp/.sdbd.pid
+RemainAfterExit=yes
+SmackProcessLabel=System
+Capabilities=cap_dac_override,cap_setgid,cap_setuid,cap_sys_admin=i
+SecureBits=keep-caps
+ExecStart=/usr/sbin/sdbd --listen-port=26101
+++ /dev/null
-[Unit]
-Description=sdbd: TCP socket
-
-[Socket]
-ListenStream=26101
-SmackLabelIPIn=*
-SmackLabelIPOut=@
-Service=sdbd.service
-
-[Install]
-WantedBy=sockets.target
#include "commandline_sdbd.h"
#include "sdb.h"
-#include "sdb_systemd.h"
#include <stdio.h>
#include <string.h>
if (sscanf(optarg, "%d", &sdbd_args->sdbd_port) < 1) {
return SDBD_COMMANDLINE_FAILURE;
}
- if (sdb_port_get_tcp_listenfd() != -1)
- printf("warning: sdb port was provided by systemd but overriden from command line\n");
print_sdbd_command(stdout, sdbd_args);
break;
case ARG_S_HELP:
sdbd_args->sdb.host = strdup(QEMU_FORWARD_IP);
sdbd_args->sdb.port = DEFAULT_SDB_PORT;
- // by default don't listen on local transport (unless systemd passed it)
- sdbd_args->sdbd_port = sdb_port_try_automatic();
+ // by default don't listen on local transport
+ sdbd_args->sdbd_port = -1;
}
+++ /dev/null
-#ifndef SDB_SYSTEMD_H
-#define SDB_SYSTEMD_H
-
-#ifndef _WIN32
-
-#include <systemd/sd-daemon.h>
-#include <arpa/inet.h>
-#include "sysdeps.h"
-
-
-static int sdb_port_get_tcp_listenfd(void)
-{
- int fd = -1;
- int maxfd = sd_listen_fds(0) + SD_LISTEN_FDS_START;
-
- for (fd = SD_LISTEN_FDS_START; fd < maxfd; fd++) {
- if (sd_is_socket_inet(fd, AF_INET, SOCK_STREAM, 1, 0) > 0
- || sd_is_socket_inet(fd, AF_INET6, SOCK_STREAM, 1, 0) > 0) {
- close_on_exec(fd);
- return fd;
- }
- }
-
- return -1;
-}
-
-static __inline__ int sdb_port_try_automatic(void)
-{
- return sd_listen_fds(0) > 0 ? 0 : -1;
-}
-
-#else
-
-static __inline__ int sdb_port_get_tcp_listenfd(void)
-{
- return -1;
-}
-
-static __inline__ int sdb_port_try_automatic(void)
-{
- return -1;
-}
-#endif /* _WIN32 */
-
-#endif /* SDB_SYSTEMD_H */
#include <netdb.h>
#include "sysdeps.h"
-#include "sdb_systemd.h"
-
#include <sys/types.h>
#ifndef HAVE_WIN32_IPC
int port = (intptr_t)arg;
D("transport: server_socket_thread() starting\n");
- serverfd = sdb_port_get_tcp_listenfd();
+ serverfd = -1;
for(;;) {
if(serverfd == -1) {
// socket_inaddr_any_server returns -1 if there is any error