#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;
len = strlen(homedir) + strlen(CONFIGFILE_LOC) + 1;
if (!(configfile = calloc(len, sizeof(char))))
goto out_noopen;
- strncpy(configfile, homedir, strlen(homedir));
- strncat(configfile, CONFIGFILE_LOC, strlen(CONFIGFILE_LOC));
-
- if (!(fp = fopen(configfile, "r")))
- goto out_noopen;
+ snprintf(configfile, len, "%s%s", homedir, CONFIGFILE_LOC);
+
+ 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))
/* 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;
}
int main() {
- OssoBrowser *obj;
+ OssoBrowser *obj_osso_browser, *obj_osso_browser_req;
GMainLoop *mainloop;
GError *error = NULL;
if (ctx.continuous_mode) {
struct sigaction act;
act.sa_flags = SA_RESTART;
+ sigemptyset(&(act.sa_mask));
act.sa_handler = waitforzombies;
if (sigaction(SIGCHLD, &act, NULL) == -1) {
dbus_request_osso_browser_name(&ctx);
- obj = g_object_new(OSSO_BROWSER_TYPE, NULL);
+ 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");