aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 53c6609d..734c3548 100644
--- a/src/main.c
+++ b/src/main.c
@@ -160,7 +160,10 @@ int main(int argc, char *argv[])
parse_cmd_opt(argc, argv);
+ sock_init();
+
/* check and create unix domain socket for remote operation */
+#ifdef G_OS_UNIX
lock_socket = prohibit_duplicate_launch();
if (lock_socket < 0) return 0;
@@ -169,6 +172,7 @@ int main(int argc, char *argv[])
lock_socket_remove();
return 0;
}
+#endif
gtk_set_locale();
gtk_init(&argc, &argv);
@@ -318,10 +322,12 @@ int main(int argc, char *argv[])
folderview = mainwin->folderview;
/* register the callback of unix domain socket input */
+#ifdef G_OS_UNIX
lock_socket_tag = gdk_input_add(lock_socket,
GDK_INPUT_READ | GDK_INPUT_EXCEPTION,
lock_socket_input_cb,
mainwin);
+#endif
account_read_config_all();
@@ -542,6 +548,8 @@ void app_will_exit(GtkWidget *widget, gpointer data)
ssl_done();
#endif
+ sock_cleanup();
+
gtk_main_quit();
}
@@ -562,7 +570,11 @@ static gchar *get_socket_name(void)
if (filename == NULL) {
filename = g_strdup_printf("%s%csylpheed-%d",
g_get_tmp_dir(), G_DIR_SEPARATOR,
+#if HAVE_GETUID
getuid());
+#else
+ 0);
+#endif
}
return filename;
@@ -653,6 +665,7 @@ static gint prohibit_duplicate_launch(void)
static gint lock_socket_remove(void)
{
+#ifdef G_OS_UNIX
gchar *filename;
if (lock_socket < 0) return -1;
@@ -662,6 +675,7 @@ static gint lock_socket_remove(void)
fd_close(lock_socket);
filename = get_socket_name();
unlink(filename);
+#endif
return 0;
}