baa40e28 |
1 | /* |
2 | * Copyright (c) 2014 Ian Sutton <ian@kremlin.cc> |
3 | * |
4 | * Permission to use, copy, modify, and distribute this software for any |
5 | * purpose with or without fee is hereby granted, provided that the above |
6 | * copyright notice and this permission notice appear in all copies. |
7 | * |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
15 | */ |
16 | |
387173cb |
17 | #include <gio/gio.h> |
c3b84b0a |
18 | #include <glib.h> |
19 | #include <glib/gprintf.h> |
20 | #include <glib/gstdio.h> |
828caf9a |
21 | |
1c38000a |
22 | #include "config.c" |
828caf9a |
23 | |
b7f8df44 |
24 | #include "interfaces/hostnamed/hostnamed.c" |
828caf9a |
25 | #include "interfaces/localed/localed.c" |
26 | #include "interfaces/timedated/timedated.c" |
27 | #include "interfaces/logind/logind.c" |
496f5d66 |
28 | |
c3b84b0a |
29 | gboolean systemd_utils_init() { |
c09a09bf |
30 | |
31 | if(!config_init()) { |
94dc7ef0 |
32 | gchar *tmp; |
33 | tmp = "/etc/systemd_compat.conf"; |
34 | |
828caf9a |
35 | g_printf("FAILED to open config %s! did you `make install`?\n", tmp); |
94dc7ef0 |
36 | return FALSE; |
37 | } |
94dc7ef0 |
38 | return TRUE; |
c3b84b0a |
39 | } |
08e17ea2 |
40 | |
c3b84b0a |
41 | int main() { |
08e17ea2 |
42 | |
c09a09bf |
43 | GMainLoop *mloop; |
44 | mloop = g_main_loop_new(NULL, TRUE); |
42c0d206 |
45 | |
46 | if(!systemd_utils_init()) { |
47 | g_printf("failed to init, are you root?\n"); |
48 | return 1; /* TODO errno properly. grep for all "return 1;"s, not TODO'ing each one */ |
49 | } |
c09a09bf |
50 | |
42c0d206 |
51 | gboolean hostnamed_init_ok, localed_init_ok; |
52 | GPid *hostnamed_pid, *localed_pid; |
53 | gchar *hostnamed_argv[0], *localed_argv[0]; |
54 | GSource *hostnamed_source, *localed_source, *timedated_source, *logind_source; |
c09a09bf |
55 | |
42c0d206 |
56 | hostnamed_argv[0] = "/usr/local/libexec/systemd-hostnamed-handler"; |
57 | localed_argv[0] = "/usr/local/libexec/systemd-localed-handler"; |
c09a09bf |
58 | |
42c0d206 |
59 | /*hostnamed_init_ok = g_spawn_async(NULL, hostnamed_argv, NULL, G_SPAWN_DEFAULT, NULL, NULL, hostnamed_pid, NULL); |
60 | localed_init_ok = g_spawn_async(NULL, localed_argv, NULL, G_SPAWN_DEFAULT, NULL, NULL, localed_pid, NULL); |
c09a09bf |
61 | |
42c0d206 |
62 | hostnamed_source = g_child_watch_source_new(*hostnamed_pid); |
63 | localed_source = g_child_watch_source_new(*localed_pid); */ |
c09a09bf |
64 | |
42c0d206 |
65 | /*g_source_attach(hostnamed_source, NULL); |
66 | g_source_attach(localed_source, NULL);*/ |
c3b84b0a |
67 | |
c09a09bf |
68 | g_main_loop_run(mloop); |
69 | g_main_loop_unref(mloop); |
e8c57a5d |
70 | |
c09a09bf |
71 | return 0; |
ea207ed3 |
72 | } |