Use a separate global for nonblocking socket testing rather than global_loadparm.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 2 Nov 2008 00:15:42 +0000 (01:15 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Sun, 2 Nov 2008 00:15:42 +0000 (01:15 +0100)
source4/lib/socket/socket.c
source4/lib/socket/socket.h
source4/param/loadparm.c

index 0c3d0320685da9cf151bd27db6d27fc9e3d618c2..3be841311afe6bbe1ea441af840aed9c8c16b70b 100644 (file)
@@ -25,6 +25,8 @@
 #include "system/network.h"
 #include "param/param.h"
 
+bool testnonblock = false;
+
 /*
   auto-close sockets on free
 */
@@ -70,7 +72,7 @@ _PUBLIC_ NTSTATUS socket_create_with_ops(TALLOC_CTX *mem_ctx, const struct socke
 
        if (!(flags & SOCKET_FLAG_BLOCK) &&
            type == SOCKET_TYPE_STREAM &&
-           lp_parm_bool(global_loadparm, NULL, "socket", "testnonblock", false)) {
+           testnonblock) {
                (*new_sock)->flags |= SOCKET_FLAG_TESTNONBLOCK;
        }
 
index 4baa0cfbb1101e1ea75247f31cbd1b462b3798b4..ec3afe8f7fc978512e283ef82904d3f59b484cba 100644 (file)
@@ -208,4 +208,6 @@ NTSTATUS socket_connect_multi(TALLOC_CTX *mem_ctx, const char *server_address,
 void set_socket_options(int fd, const char *options);
 void socket_set_flags(struct socket_context *socket, unsigned flags);
 
+extern bool testnonblock;
+
 #endif /* _SAMBA_SOCKET_H */
index b4098c840cdf50e27b015d74188db493e3ab41e3..6494199fa41d49aeb728922f8e064844c95279b0 100644 (file)
@@ -65,6 +65,7 @@
 #include "param/loadparm.h"
 #include "libcli/raw/libcliraw.h"
 #include "rpc_server/common/common.h"
+#include "lib/socket/socket.h"
 
 #define standard_sub_basic talloc_strdup
 
@@ -2475,6 +2476,8 @@ bool lp_load(struct loadparm_context *lp_ctx, const char *filename)
 
        reload_charcnv(lp_ctx);
 
+       testnonblock = lp_parm_bool(lp_ctx, NULL, "socket", "testnonblock", false);
+
        /* FIXME: Check locale in environment for this: */
        if (strcmp(lp_display_charset(lp_ctx), lp_unix_charset(lp_ctx)) != 0)
                d_set_iconv(smb_iconv_open(lp_display_charset(lp_ctx), lp_unix_charset(lp_ctx)));