Cosmetic: network_start() split.
authorshort <>
Sat, 5 Jun 2004 07:42:46 +0000 (07:42 +0000)
committershort <>
Sat, 5 Jun 2004 07:42:46 +0000 (07:42 +0000)
src/network.c

index c902ce1..3e22557 100644 (file)
@@ -549,20 +549,14 @@ size_t packet_length;
        return TRUE;
 }
 
-gboolean network_start(gint port)
+static gboolean master_start(gint port)
 {
-pid_t daemon_pid;
 struct sockaddr_in sockaddr_in;
 
        g_return_val_if_fail(port>=0,FALSE);
-
-       if ((pid_t)-1!=(daemon_pid=is_daemon_running())) {
-               g_warning(_("Cannot start network daemon: Daemon is already running on PID %d"),(int)daemon_pid);
-               return FALSE;
-               }
+       g_return_val_if_fail(master==NULL,FALSE);
 
        /* Setup 'master': */
-       g_assert(master==NULL);
        if (!(master=client_new()))
                return FALSE;
        UDPGATE_MEMZERO(&sockaddr_in);
@@ -571,17 +565,42 @@ struct sockaddr_in sockaddr_in;
        sockaddr_in.sin_addr.s_addr=htonl(INADDR_ANY);
        if (bind(master->gpollfd.fd,(struct sockaddr *)&sockaddr_in,sizeof(sockaddr_in))) {
                g_warning("bind(sock,{AF_INET,INADDR_ANY:%d}): %m",(int)port);
-err_sock_gsource_destroy:
-               sock_gsource_destroy();
                return FALSE;
                }
+       return TRUE;
+}
+
+static gboolean probe_start(gint port)
+{
+       g_return_val_if_fail(port>=0,FALSE);
+       g_return_val_if_fail(probe==NULL,FALSE);
 
        /* Setup 'probe': */
        if (!(probe=client_new()))
-               goto err_sock_gsource_destroy;
+               return FALSE;
        probe_send(probe,port);
        client_touch(probe);    /* timeout */
+       return TRUE;
+}
 
+gboolean network_start(gint port)
+{
+pid_t daemon_pid;
+
+       g_return_val_if_fail(port>=0,FALSE);
+
+       if ((pid_t)-1!=(daemon_pid=is_daemon_running())) {
+               g_warning(_("Cannot start network daemon: Daemon is already running on PID %d"),(int)daemon_pid);
+               return FALSE;
+               }
+       if (!master_start(port)) {
+               sock_gsource_destroy();
+               return FALSE;
+               }
+       if (!probe_start(port)) {
+               sock_gsource_destroy();
+               return FALSE;
+               }
        write_daemon_running(getpid()); /* errors ignored */
        if (network_notify_hostip)
                (*network_notify_hostip)(0);