projects
/
connman
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix missing call to trigger service list resorting
[connman]
/
src
/
main.c
diff --git
a/src/main.c
b/src/main.c
index
5da7c86
..
56537e1
100644
(file)
--- a/
src/main.c
+++ b/
src/main.c
@@
-43,6
+43,11
@@
static void sig_term(int sig)
g_main_loop_quit(main_loop);
}
g_main_loop_quit(main_loop);
}
+static void sig_debug(int sig)
+{
+ __connman_toggle_debug();
+}
+
static void disconnect_callback(DBusConnection *conn, void *user_data)
{
DBG("D-Bus disconnect");
static void disconnect_callback(DBusConnection *conn, void *user_data)
{
DBG("D-Bus disconnect");
@@
-52,6
+57,8
@@
static void disconnect_callback(DBusConnection *conn, void *user_data)
static gchar *option_device = NULL;
static gchar *option_plugin = NULL;
static gchar *option_device = NULL;
static gchar *option_plugin = NULL;
+static gchar *option_nodevice = NULL;
+static gchar *option_noplugin = NULL;
static gboolean option_detach = TRUE;
static gboolean option_compat = FALSE;
static gboolean option_debug = FALSE;
static gboolean option_detach = TRUE;
static gboolean option_compat = FALSE;
static gboolean option_debug = FALSE;
@@
-60,9
+67,13
@@
static gboolean option_version = FALSE;
static GOptionEntry options[] = {
{ "device", 'i', 0, G_OPTION_ARG_STRING, &option_device,
static GOptionEntry options[] = {
{ "device", 'i', 0, G_OPTION_ARG_STRING, &option_device,
- "Specify network device/interface", "DEV" },
+ "Specify networking device or interface", "DEV" },
+ { "nodevice", 'I', 0, G_OPTION_ARG_STRING, &option_nodevice,
+ "Specify networking interface to ignore", "DEV" },
{ "plugin", 'p', 0, G_OPTION_ARG_STRING, &option_plugin,
"Specify plugins to load", "NAME" },
{ "plugin", 'p', 0, G_OPTION_ARG_STRING, &option_plugin,
"Specify plugins to load", "NAME" },
+ { "noplugin", 'P', 0, G_OPTION_ARG_STRING, &option_noplugin,
+ "Specify plugins not to load", "NAME" },
{ "nodaemon", 'n', G_OPTION_FLAG_REVERSE,
G_OPTION_ARG_NONE, &option_detach,
"Don't fork daemon to background" },
{ "nodaemon", 'n', G_OPTION_FLAG_REVERSE,
G_OPTION_ARG_NONE, &option_detach,
"Don't fork daemon to background" },
@@
-116,11
+127,17
@@
int main(int argc, char *argv[])
}
}
}
}
- mkdir(STATEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
- S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
+ if (mkdir(STATEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
+ S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) {
+ if (errno != EEXIST)
+ perror("Failed to create state directory");
+ }
- mkdir(STORAGEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
- S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
+ if (mkdir(STORAGEDIR, S_IRUSR | S_IWUSR | S_IXUSR |
+ S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) {
+ if (errno != EEXIST)
+ perror("Failed to create storage directory");
+ }
main_loop = g_main_loop_new(NULL, FALSE);
main_loop = g_main_loop_new(NULL, FALSE);
@@
-164,7
+181,7
@@
int main(int argc, char *argv[])
__connman_dbus_init(conn);
__connman_storage_init();
__connman_dbus_init(conn);
__connman_storage_init();
- __connman_element_init(conn, option_device);
+ __connman_element_init(conn, option_device, option_nodevice);
__connman_agent_init(conn);
__connman_manager_init(conn, option_compat);
__connman_agent_init(conn);
__connman_manager_init(conn, option_compat);
@@
-174,18
+191,23
@@
int main(int argc, char *argv[])
__connman_rtnl_init();
__connman_udev_init();
__connman_rtnl_init();
__connman_udev_init();
- __connman_plugin_init(option_plugin);
+ __connman_plugin_init(option_plugin, option_noplugin);
__connman_element_start();
g_free(option_device);
g_free(option_plugin);
__connman_element_start();
g_free(option_device);
g_free(option_plugin);
+ g_free(option_nodevice);
+ g_free(option_noplugin);
memset(&sa, 0, sizeof(sa));
sa.sa_handler = sig_term;
sigaction(SIGINT, &sa, NULL);
sigaction(SIGTERM, &sa, NULL);
memset(&sa, 0, sizeof(sa));
sa.sa_handler = sig_term;
sigaction(SIGINT, &sa, NULL);
sigaction(SIGTERM, &sa, NULL);
+ sa.sa_handler = sig_debug;
+ sigaction(SIGUSR2, &sa, NULL);
+
g_main_loop_run(main_loop);
__connman_element_stop();
g_main_loop_run(main_loop);
__connman_element_stop();