X-Git-Url: http://git.maemo.org/git/?p=browser-switch;a=blobdiff_plain;f=main.c;h=545f9f2c25fd14d33379e3a78e53bac35a5dfb1f;hp=cd7fdb523f461a191e89f06d487ed970518560cf;hb=846e68b8ffa979d30ed331c43020212ffdee2bf2;hpb=acd7680b31f4fee62fe05395dc10f57ae1db03d1 diff --git a/main.c b/main.c index cd7fdb5..545f9f2 100644 --- a/main.c +++ b/main.c @@ -53,7 +53,7 @@ static void read_config(int signalnum) { FILE *fp; int continuous_mode_seen = 0; struct swb_config_line line; - char *default_browser = NULL; + char *default_browser = NULL, *logger_name = NULL; set_config_defaults(&ctx); @@ -78,6 +78,9 @@ static void read_config(int signalnum) { } else if (!strcmp(line.key, "other_browser_cmd")) { if (!ctx.other_browser_cmd) ctx.other_browser_cmd = line.value; + } else if (!strcmp(line.key, "logging")) { + if (!logger_name) + logger_name = line.value; } else { /* Don't need this line's contents */ free(line.value); @@ -87,22 +90,27 @@ static void read_config(int signalnum) { } parse_config_file_end(); +out: + fclose(fp); +out_noopen: + log_config(logger_name); + update_default_browser(&ctx, default_browser); + log_msg("continuous_mode: %d\n", ctx.continuous_mode); log_msg("default_browser: '%s'\n", default_browser?default_browser:"NULL"); log_msg("other_browser_cmd: '%s'\n", ctx.other_browser_cmd?ctx.other_browser_cmd:"NULL"); + log_msg("logging: '%s'\n", + logger_name?logger_name:"NULL"); -out: - fclose(fp); -out_noopen: - update_default_browser(&ctx, default_browser); + free(logger_name); free(default_browser); return; } int main() { - OssoBrowser *obj_osso_browser, *obj_osso_browser_req; + OssoBrowser *obj_osso_browser, *obj_osso_browser_req, *obj_switchboard; GMainLoop *mainloop; GError *error = NULL; int reqname_result; @@ -149,14 +157,14 @@ int main() { return 1; } - /* Get the org.maemo.garage.browser-switchboard name from D-Bus, as + /* Get the org.maemo.garage.browser_switchboard name from D-Bus, as a form of locking to ensure that not more than one browser-switchboard process is active at any time. With DBUS_NAME_FLAG_DO_NOT_QUEUE set and DBUS_NAME_FLAG_REPLACE_EXISTING not set, getting the name succeeds if and only if no other process owns the name. */ if (!dbus_g_proxy_call(ctx.dbus_proxy, "RequestName", &error, - G_TYPE_STRING, "org.maemo.garage.browser-switchboard", + G_TYPE_STRING, "org.maemo.garage.browser_switchboard", G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE, G_TYPE_INVALID, G_TYPE_UINT, &reqname_result, @@ -175,11 +183,15 @@ int main() { /* Register ourselves to handle the osso_browser D-Bus methods */ obj_osso_browser = g_object_new(OSSO_BROWSER_TYPE, NULL); obj_osso_browser_req = g_object_new(OSSO_BROWSER_TYPE, NULL); + obj_switchboard = g_object_new(OSSO_BROWSER_TYPE, NULL); dbus_g_connection_register_g_object(ctx.session_bus, "/com/nokia/osso_browser", G_OBJECT(obj_osso_browser)); dbus_g_connection_register_g_object(ctx.session_bus, "/com/nokia/osso_browser/request", G_OBJECT(obj_osso_browser_req)); + dbus_g_connection_register_g_object(ctx.session_bus, + "/org/maemo/garage/browser_switchboard", + G_OBJECT(obj_switchboard)); mainloop = g_main_loop_new(NULL, FALSE); log_msg("Starting main loop\n");