X-Git-Url: https://uglyman.kremlin.cc/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain.c;h=87f2198d85827aabf8cbf097e61563398a9f0380;hb=bb3e93ce1b7a16d9cdd11ed4e8fb6b9a9164f541;hp=daa815732df9253fbffff0b81282643eb7bb8da8;hpb=a35a69c56004944df534779ed806d2a889904ba5;p=systembsd.git diff --git a/src/main.c b/src/main.c index daa8157..87f2198 100644 --- a/src/main.c +++ b/src/main.c @@ -1,43 +1,67 @@ -/* debugging */ -//#define INSTALL 1 -//#define NO_BUILTIN_XML 1 -/* end debugging */ +/* + * Copyright (c) 2014 Ian Sutton + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ #include -#include -#include "interfaces/hostnamed/hostnamed.c" -//#include "main.h" +#include +#include +#include -#ifdef INSTALL -static gboolean install_conf() { - +#include "config.c" + +gboolean systemd_utils_init() { + + if(!config_init()) { + gchar *tmp; + tmp = "/etc/systemd_compat.conf"; + + g_printf("FAILED to open config %s! did you `make install`?\n", tmp); + return FALSE; + } + return TRUE; } -#endif int main() { - //TODO cleanup - #ifdef INSTALL - if(!install_conf()) { - g_printf("%s\n", "FAILED to install configs in /etc/!"); - exit(1); - } - #endif - - //TODO cleanup - #if (defined NO_BUILTIN_XML && defined INSTALL) - if(!install_conf()) { - g_printf("%s\n", "FAILED to install xml configs!"); - exit(1); - } - #else - #endif - - GMainLoop *mloop = NULL; - - mloop = g_main_loop_new(NULL, FALSE); - hostnamed_init(); + + GMainLoop *mloop; + mloop = g_main_loop_new(NULL, TRUE); + + if(!systemd_utils_init()) { + g_printf("failed to init, are you root?\n"); + return 1; /* TODO errno properly. grep for all "return 1;"s, not TODO'ing each one */ + } + + gboolean hostnamed_init_ok, localed_init_ok; + GPid *hostnamed_pid, *localed_pid; + gchar *hostnamed_argv[0], *localed_argv[0]; + GSource *hostnamed_source, *localed_source, *timedated_source, *logind_source; + + hostnamed_argv[0] = "/usr/local/libexec/systemd-hostnamed-handler"; + localed_argv[0] = "/usr/local/libexec/systemd-localed-handler"; + + /*hostnamed_init_ok = g_spawn_async(NULL, hostnamed_argv, NULL, G_SPAWN_DEFAULT, NULL, NULL, hostnamed_pid, NULL); + localed_init_ok = g_spawn_async(NULL, localed_argv, NULL, G_SPAWN_DEFAULT, NULL, NULL, localed_pid, NULL); + + hostnamed_source = g_child_watch_source_new(*hostnamed_pid); + localed_source = g_child_watch_source_new(*localed_pid); */ + + /*g_source_attach(hostnamed_source, NULL); + g_source_attach(localed_source, NULL);*/ + g_main_loop_run(mloop); + g_main_loop_unref(mloop); return 0; } -