From 26bc2e65503ce21a8bd140d012d077d679f73996 Mon Sep 17 00:00:00 2001 From: short <> Date: Sat, 5 Jun 2004 07:42:46 +0000 Subject: [PATCH] Cosmetic: network_start() split. --- src/network.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/src/network.c b/src/network.c index c902ce1..3e22557 100644 --- a/src/network.c +++ b/src/network.c @@ -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); -- 1.8.3.1