From 3e227d8544a020d1aea24c38c9ca45a75d14c3f1 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 7 Sep 2011 20:35:51 +0200 Subject: s3:libsmb: pass CLI_FULL_CONNECTION_* flags via cli_connect_nb() metze Autobuild-User: Stefan Metzmacher Autobuild-Date: Thu Sep 8 10:21:50 CEST 2011 on sn-devel-104 --- source3/libsmb/libsmb_server.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'source3/libsmb/libsmb_server.c') diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c index 6446252022..005f2cdf8e 100644 --- a/source3/libsmb/libsmb_server.c +++ b/source3/libsmb/libsmb_server.c @@ -253,6 +253,7 @@ SMBC_server_internal(TALLOC_CTX *ctx, const char *username_used; NTSTATUS status; char *newserver, *newshare; + int flags = 0; ZERO_STRUCT(c); *in_cache = false; @@ -401,13 +402,25 @@ SMBC_server_internal(TALLOC_CTX *ctx, status = NT_STATUS_UNSUCCESSFUL; + if (smbc_getOptionUseKerberos(context)) { + flags |= CLI_FULL_CONNECTION_USE_KERBEROS; + } + + if (smbc_getOptionFallbackAfterKerberos(context)) { + flags |= CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS; + } + + if (smbc_getOptionUseCCache(context)) { + flags |= CLI_FULL_CONNECTION_USE_CCACHE; + } + if (share == NULL || *share == '\0' || is_ipc) { /* * Try 139 first for IPC$ */ status = cli_connect_nb(server_n, NULL, 139, 0x20, smbc_getNetbiosName(context), - Undefined, &c); + Undefined, flags, &c); } if (!NT_STATUS_IS_OK(status)) { @@ -416,7 +429,7 @@ SMBC_server_internal(TALLOC_CTX *ctx, */ status = cli_connect_nb(server_n, NULL, 0, 0x20, smbc_getNetbiosName(context), - Undefined, &c); + Undefined, flags, &c); } if (!NT_STATUS_IS_OK(status)) { @@ -424,18 +437,6 @@ SMBC_server_internal(TALLOC_CTX *ctx, return NULL; } - if (smbc_getOptionUseKerberos(context)) { - c->use_kerberos = True; - } - - if (smbc_getOptionFallbackAfterKerberos(context)) { - c->fallback_after_kerberos = True; - } - - if (smbc_getOptionUseCCache(context)) { - c->use_ccache = True; - } - cli_set_timeout(c, smbc_getTimeout(context)); status = cli_negprot(c); -- cgit