Be more consistent with debug printf()s for the launcher functions
[browser-switch] / main.c
diff --git a/main.c b/main.c
index 5403b70..9adacbe 100644 (file)
--- a/main.c
+++ b/main.c
@@ -36,6 +36,7 @@
 
 #define DEFAULT_HOMEDIR "/home/user"
 #define CONFIGFILE_LOC "/.config/browser-switchboard"
+#define CONFIGFILE_LOC_OLD "/.config/browser-proxy"
 #define MAXLINE 1024
 
 struct swb_context ctx;
@@ -66,6 +67,7 @@ static void read_config(int signalnum) {
 
        set_config_defaults(&ctx);
 
+       /* Put together the path to the config file */
        if (!(homedir = getenv("HOME")))
                homedir = DEFAULT_HOMEDIR;
        len = strlen(homedir) + strlen(CONFIGFILE_LOC) + 1;
@@ -73,8 +75,15 @@ static void read_config(int signalnum) {
                goto out_noopen;
        snprintf(configfile, len, "%s%s", homedir, CONFIGFILE_LOC);
 
-       if (!(fp = fopen(configfile, "r")))
-               goto out_noopen;
+       /* Try to open the config file */
+       if (!(fp = fopen(configfile, "r"))) {
+               /* Try the legacy config file location before giving up
+                  XXX we assume here that CONFIGFILE_LOC_OLD is shorter
+                  than CONFIGFILE_LOC! */
+               snprintf(configfile, len, "%s%s", homedir, CONFIGFILE_LOC_OLD);
+               if (!(fp = fopen(configfile, "r")))
+                       goto out_noopen;
+       }
 
        /* compile regex matching blank lines or comments */
        if (regcomp(&re_ignore, "^[[:space:]]*(#|$)", REG_EXTENDED|REG_NOSUB))
@@ -100,7 +109,6 @@ static void read_config(int signalnum) {
        /* Read in the config file one line at a time and parse it
           XXX doesn't deal with lines longer than MAXLINE */
        while (fgets(buf, MAXLINE, fp)) {
-               printf("%s", buf);
                /* skip blank lines and comments */
                if (!regexec(&re_ignore, buf, 0, NULL, 0))
                        continue;
@@ -161,22 +169,26 @@ out_noopen:
 }
 
 int main() {
-       OssoBrowser *obj;
+       OssoBrowser *obj_osso_browser, *obj_osso_browser_req;
        GMainLoop *mainloop;
        GError *error = NULL;
 
        read_config(0);
 
        if (ctx.continuous_mode) {
+               /* Install signal handlers */
                struct sigaction act;
                act.sa_flags = SA_RESTART;
+               sigemptyset(&(act.sa_mask));
 
+               /* SIGCHLD -- clean up after zombies */
                act.sa_handler = waitforzombies;
                if (sigaction(SIGCHLD, &act, NULL) == -1) {
                        printf("Installing signal handler failed\n");
                        return 1;
                }
 
+               /* SIGHUP -- reread config file */
                act.sa_handler = read_config;
                if (sigaction(SIGHUP, &act, NULL) == -1) {
                        printf("Installing signal handler failed\n");
@@ -189,6 +201,7 @@ int main() {
        dbus_g_object_type_install_info(OSSO_BROWSER_TYPE,
                        &dbus_glib_osso_browser_object_info);
 
+       /* Get a connection to the D-Bus session bus */
        ctx.session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
        if (!ctx.session_bus) {
                printf("Couldn't get a D-Bus bus connection\n");
@@ -204,11 +217,14 @@ int main() {
 
        dbus_request_osso_browser_name(&ctx);
 
-       obj = g_object_new(OSSO_BROWSER_TYPE, NULL);
+       /* 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);
        dbus_g_connection_register_g_object(ctx.session_bus,
-                       "/com/nokia/osso_browser", G_OBJECT(obj));
+                       "/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));
+                       "/com/nokia/osso_browser/request",
+                       G_OBJECT(obj_osso_browser_req));
 
        mainloop = g_main_loop_new(NULL, FALSE);
        printf("Starting main loop\n");