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:37:51 +0000 (13:37 -0800)
committerJeremy Allison <jra@samba.org>
Fri, 5 Dec 2008 21:37:51 +0000 (13:37 -0800)
source3/param/loadparm.c
source3/smbd/server.c

index 217957ab37da6343f3e8a05cb0a997905de727a5..c743b89680a2c71d1b9d5b156501a30b8c55f98c 100644 (file)
@@ -5063,7 +5063,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)
@@ -9468,3 +9467,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 fff05a3aac75a6ce38e785725138388f3fa8fabc..f7bdb58288916b3b9875f0b6d8d4d61f035d8c45 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