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

index 0f35f191166090cb8d17488646fc36a0b5bc0911..81a308e873636b5b1a7a35634f2eb6f820b20eb0 100644 (file)
@@ -4987,7 +4987,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)
@@ -9473,3 +9472,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 176cd5f973c84b6bdd9824e531b4dcf9e5044cca..d4435b5f31286381c86794cb66ab90dcd96eb109 100644 (file)
@@ -465,9 +465,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