REVERT??? s4 smb1 on top TODO
authorStefan Metzmacher <metze@samba.org>
Fri, 23 Sep 2011 06:35:17 +0000 (08:35 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 May 2012 16:47:08 +0000 (18:47 +0200)
source4/auth/ntlm/auth_server.c
source4/torture/basic/properties.c
source4/torture/basic/secleak.c
source4/torture/util_smb.c

index 9e1ceae0ca8217b78c4ef3c88b0e73c40c250082..12fff7801f6b91eea5a8f21f7a0c20a88954fd2a 100644 (file)
@@ -26,6 +26,7 @@
 #include "libcli/smb_composite/smb_composite.h"
 #include "param/param.h"
 #include "libcli/resolve/resolve.h"
+#include "../libcli/smb/smbXcli_base.h"
 
 _PUBLIC_ NTSTATUS auth4_server_init(void);
 
@@ -48,6 +49,7 @@ static NTSTATUS server_get_challenge(struct auth_method_context *ctx, TALLOC_CTX
        struct smbcli_options smb_options;
        const char **host_list;
        NTSTATUS status;
+       static const uint8_t zeros[8];
 
        /* Make a connection to the target server, found by 'password server' in smb.conf */
        
@@ -89,10 +91,12 @@ static NTSTATUS server_get_challenge(struct auth_method_context *ctx, TALLOC_CTX
                                       ctx->auth_ctx->event_ctx);
        NT_STATUS_NOT_OK_RETURN(status);
 
-       if (io.out.tree->session->transport->negotiate.secblob.length != 8) {
+       memcpy(chal,
+              smb1cli_conn_server_challenge(io.out.tree->session->transport->conn),
+              8);
+       if (memcmp(chal, zeros, 8) == 0) {
                return NT_STATUS_INTERNAL_ERROR;
        }
-       memcpy(chal, io.out.tree->session->transport->negotiate.secblob.data, 8);
        ctx->private_data = talloc_steal(ctx, io.out.tree->session);
        return NT_STATUS_OK;
 }
@@ -145,8 +149,8 @@ static NTSTATUS server_check_password(struct auth_method_context *ctx,
                break;
        }
 
-       session_setup.in.sesskey = session->transport->negotiate.sesskey;
-       session_setup.in.capabilities = session->transport->negotiate.capabilities;
+       session_setup.in.sesskey = smb1cli_conn_server_session_key(session->transport->conn);
+       session_setup.in.capabilities = smb1cli_conn_capabilities(session->transport->conn);
 
        session_setup.in.credentials = creds;
        session_setup.in.workgroup = ""; /* Only used with SPNEGO, which we are not doing */
index b63acc76cfa729ad49327fe649278dcccc830c02..af6f921c012d02d2da1c892061f352d55b7277e6 100644 (file)
@@ -23,6 +23,7 @@
 #include "libcli/libcli.h"
 #include "torture/util.h"
 #include "torture/basic/proto.h"
+#include "../libcli/smb/smbXcli_base.h"
 
 struct bitmapping {
        const char *name;
@@ -93,9 +94,10 @@ bool torture_test_properties(struct torture_context *torture,
        bool correct = true;
        union smb_fsinfo fs;
        NTSTATUS status;
-       
-       d_printf("Capabilities: 0x%08x\n", cli->transport->negotiate.capabilities);
-       show_bits(capability_bits, cli->transport->negotiate.capabilities);
+       uint32_t capabilities = smb1cli_conn_capabilities(cli->transport->conn);
+
+       d_printf("Capabilities: 0x%08x\n", capabilities);
+       show_bits(capability_bits, capabilities);
        d_printf("\n");
 
        fs.attribute_info.level = RAW_QFS_ATTRIBUTE_INFO;
index 9db9f54e8424b873cdda3153d3050028fe3ac050..2bac58f4a306afc825ed5691b645b9899a9b5ae6 100644 (file)
@@ -29,6 +29,7 @@
 #include "auth/credentials/credentials.h"
 #include "param/param.h"
 #include "torture/basic/proto.h"
+#include "../libcli/smb/smbXcli_base.h"
 
 static bool try_failed_login(struct torture_context *tctx, struct smbcli_state *cli)
 {
@@ -40,8 +41,8 @@ static bool try_failed_login(struct torture_context *tctx, struct smbcli_state *
        lpcfg_smbcli_session_options(tctx->lp_ctx, &options);
 
        session = smbcli_session_init(cli->transport, cli, false, options);
-       setup.in.sesskey = cli->transport->negotiate.sesskey;
-       setup.in.capabilities = cli->transport->negotiate.capabilities;
+       setup.in.sesskey = smb1cli_conn_server_session_key(cli->transport->conn);
+       setup.in.capabilities = smb1cli_conn_capabilities(cli->transport->conn);
        setup.in.workgroup = lpcfg_workgroup(tctx->lp_ctx);
        setup.in.credentials = cli_credentials_init(session);
        setup.in.gensec_settings = lpcfg_gensec_settings(tctx, tctx->lp_ctx);
index 9efa33437ccf4aa48ff5a576a4720f1aace8438f..d8e7456dbe65905914b41646a9ba768e268affcb 100644 (file)
@@ -35,7 +35,7 @@
 #include "libcli/security/security.h"
 #include "libcli/util/clilsa.h"
 #include "torture/util.h"
-
+#include "../libcli/smb/smbXcli_base.h"
 
 /**
   setup a directory ready for a test
@@ -319,7 +319,7 @@ bool wire_bad_flags(struct smb_wire_string *str, int flags,
        len = strlen(str->s);
        if (flags & STR_TERMINATE) len++;
 
-       server_unicode = (transport->negotiate.capabilities&CAP_UNICODE)?true:false;
+       server_unicode = (smb1cli_conn_capabilities(transport->conn)&CAP_UNICODE)?true:false;
        if (getenv("CLI_FORCE_ASCII") || !transport->options.unicode) {
                server_unicode = false;
        }