From 35e3ca39894ead43c9839dd523233ff72d5bec7b Mon Sep 17 00:00:00 2001 From: Philipp Schmidt Date: Sun, 14 Jul 2013 11:39:25 +0200 Subject: Initial daemon code, alter gdbus-codegen call, add interface --- daemon/Makefile.am | 7 +- daemon/dbus-interface.xml | 334 +++++++++++++++++++++++++++++++++++++++++++++- daemon/mtpd.c | 57 +++++++- 3 files changed, 390 insertions(+), 8 deletions(-) diff --git a/daemon/Makefile.am b/daemon/Makefile.am index bfc2a8f..6ba6108 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -17,8 +17,11 @@ BUILT_SOURCES = $(dbus_built_sources) $(dbus_built_sources) : Makefile.am dbus-interface.xml $(AM_V_GEN) gdbus-codegen \ - --interface-prefix org.libmtp. \ - --c-namespace MTP \ + --interface-prefix org.libmtp.mtpd. \ + --c-namespace MTPD \ + --c-generate-object-manager \ + --generate-c-code mtp-dbus \ + --generate-docbook generated-docs \ --generate-c-code mtp-dbus \ $(srcdir)/dbus-interface.xml \ $(NULL) diff --git a/daemon/dbus-interface.xml b/daemon/dbus-interface.xml index dc5badb..6d0cd6d 100644 --- a/daemon/dbus-interface.xml +++ b/daemon/dbus-interface.xml @@ -4,8 +4,9 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/daemon/mtpd.c b/daemon/mtpd.c index 7ff54e2..e9e2fd3 100644 --- a/daemon/mtpd.c +++ b/daemon/mtpd.c @@ -20,8 +20,59 @@ */ +#include +#include +#include + +void +signal_handler(int sig) { + + switch(sig) { + case SIGHUP: + // We can safely ignore this as we are a daemon + break; + + case SIGTERM: + case SIGQUIT: + // Graceful shutdown + + //TODO + + break; + + default: + // Don't react on any other signals + break; + } +} + int -main (int argc, char *argv[]) -{ - return 0; +main(int argc, char **argv) { + + // Set up signal handlers + signal(SIGHUP, signal_handler); + signal(SIGTERM, signal_handler); + signal(SIGINT, signal_handler); + signal(SIGQUIT, signal_handler); + + openlog( "LIBMTP_daemon", + LOG_PID | LOG_CONS | LOG_NDELAY, LOG_DAEMON ); + + syslog(LOG_INFO, "Daemoninsing"); + + int daemon_err = daemon(0, 0); + + if (daemon_err < 0) + syslog(LOG_ERR, "Error daemonising"); + + /* + * Set up the actual stuff. E.g. dbus service, udev service, init connected devices (if any) + */ + + pause(); + + closelog(); + + return 0; } + -- cgit v1.2.1