diff options
-rw-r--r-- | source4/lib/socket/socket.c | 4 | ||||
-rw-r--r-- | source4/lib/socket/socket.h | 2 | ||||
-rw-r--r-- | source4/param/loadparm.c | 3 |
3 files changed, 8 insertions, 1 deletions
diff --git a/source4/lib/socket/socket.c b/source4/lib/socket/socket.c index 0c3d032068..3be841311a 100644 --- a/source4/lib/socket/socket.c +++ b/source4/lib/socket/socket.c @@ -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; } diff --git a/source4/lib/socket/socket.h b/source4/lib/socket/socket.h index 4baa0cfbb1..ec3afe8f7f 100644 --- a/source4/lib/socket/socket.h +++ b/source4/lib/socket/socket.h @@ -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 */ diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c index b4098c840c..6494199fa4 100644 --- a/source4/param/loadparm.c +++ b/source4/param/loadparm.c @@ -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))); |