Fix bug #5944 - nmbd does not boot if socket adress = "" is defined in smb.conf
authorYasuma Takeda <yasuma@osstech.co.jp>
Fri, 5 Dec 2008 21:38:06 +0000 (13:38 -0800)
committerMichael Adam <obnox@samba.org>
Tue, 16 Dec 2008 15:14:01 +0000 (16:14 +0100)
source/param/loadparm.c
source/smbd/server.c

index 8325511307d10cf37bbf7de7203339bed9afcc4c..6955eb8834d0dfa3480410b13ddcd555a3a5826c 100644 (file)
@@ -4978,7 +4978,6 @@ FN_GLOBAL_STRING(lp_remote_announce, &Globals.szRemoteAnnounce)
 FN_GLOBAL_STRING(lp_remote_browse_sync, &Globals.szRemoteBrowseSync)
 FN_GLOBAL_LIST(lp_wins_server_list, &Globals.szWINSservers)
 FN_GLOBAL_LIST(lp_interfaces, &Globals.szInterfaces)
-FN_GLOBAL_STRING(lp_socket_address, &Globals.szSocketAddress)
 FN_GLOBAL_STRING(lp_nis_home_map_name, &Globals.szNISHomeMapName)
 static FN_GLOBAL_STRING(lp_announce_version, &Globals.szAnnounceVersion)
 FN_GLOBAL_LIST(lp_netbios_aliases, &Globals.szNetbiosAliases)
@@ -9463,3 +9462,18 @@ int lp_min_receive_file_size(void)
        }
        return MIN(Globals.iminreceivefile, BUFFER_SIZE);
 }
+
+/*******************************************************************
+ If socket address is an empty character string, it is necessary to 
+ define it as "0.0.0.0". 
+********************************************************************/
+
+const char *lp_socket_address(void)
+{
+       char *sock_addr = Globals.szSocketAddress;
+       
+       if (sock_addr[0] == '\0'){
+               string_set(&Globals.szSocketAddress, "0.0.0.0");
+       }
+       return  Globals.szSocketAddress;
+}
index 53116f3d98ea016173d0b28c8e49d2fef3df5e33..c14b0263810601044decf379f3435a5e538d2f8e 100644 (file)
@@ -469,9 +469,8 @@ static bool open_sockets_smbd(bool is_daemon, bool interactive, const char *smb_
                char *sock_tok;
                const char *sock_ptr;
 
-               if (sock_addr[0] == '\0' ||
-                               strequal(sock_addr, "0.0.0.0") ||
-                               strequal(sock_addr, "::")) {
+               if (strequal(sock_addr, "0.0.0.0") ||
+                   strequal(sock_addr, "::")) {
 #if HAVE_IPV6
                        sock_addr = "::,0.0.0.0";
 #else