[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-1349-g5604e8d

Stefan Metzmacher metze at samba.org
Fri May 1 14:03:13 GMT 2009


The branch, master has been updated
       via  5604e8d614c938876b0a8cbc6f8c38262588f961 (commit)
       via  b97a591e2cb57d0a9cbe7d3aa6fdaa5de689a39d (commit)
      from  bcb89826de933ab67589daecb64ff0abf5af8920 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 5604e8d614c938876b0a8cbc6f8c38262588f961
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri May 1 15:03:33 2009 +0200

    s4:libcli: remember operating system and lan manager strings from session setup
    
    metze

commit b97a591e2cb57d0a9cbe7d3aa6fdaa5de689a39d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Apr 30 17:24:58 2009 +0200

    s4:libcli/raw: write can return STATUS_BUFFER_OVERFLOW as a real error
    
    We should not try to parse the result if the status is not NT_STATUS_OK.
    
    metze

-----------------------------------------------------------------------

Summary of changes:
 source4/libcli/raw/libcliraw.h           |    3 +++
 source4/libcli/raw/rawreadwrite.c        |    2 +-
 source4/libcli/smb_composite/sesssetup.c |   21 +++++++++++++++++++++
 3 files changed, 25 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/libcli/raw/libcliraw.h b/source4/libcli/raw/libcliraw.h
index a9fcdab..37e158a 100644
--- a/source4/libcli/raw/libcliraw.h
+++ b/source4/libcli/raw/libcliraw.h
@@ -196,6 +196,9 @@ struct smbcli_session {
 		uint_t ntlmv2_auth:1;
 		uint_t plaintext_auth:1;
 	} options;
+
+	const char *os;
+	const char *lanman;
 };
 
 /* 
diff --git a/source4/libcli/raw/rawreadwrite.c b/source4/libcli/raw/rawreadwrite.c
index a8c7996..2056583 100644
--- a/source4/libcli/raw/rawreadwrite.c
+++ b/source4/libcli/raw/rawreadwrite.c
@@ -305,7 +305,7 @@ _PUBLIC_ struct smbcli_request *smb_raw_write_send(struct smbcli_tree *tree, uni
 NTSTATUS smb_raw_write_recv(struct smbcli_request *req, union smb_write *parms)
 {
 	if (!smbcli_request_receive(req) ||
-	    smbcli_request_is_error(req)) {
+	    !NT_STATUS_IS_OK(req->status)) {
 		goto failed;
 	}
 
diff --git a/source4/libcli/smb_composite/sesssetup.c b/source4/libcli/smb_composite/sesssetup.c
index 83d15e9..e1159a4 100644
--- a/source4/libcli/smb_composite/sesssetup.c
+++ b/source4/libcli/smb_composite/sesssetup.c
@@ -87,6 +87,8 @@ static void request_handler(struct smbcli_request *req)
 	DATA_BLOB null_data_blob = data_blob(NULL, 0);
 	NTSTATUS session_key_err, nt_status;
 	struct smbcli_request *check_req = NULL;
+	const char *os = NULL;
+	const char *lanman = NULL;
 
 	if (req->sign_caller_checks) {
 		req->do_not_free = true;
@@ -126,6 +128,8 @@ static void request_handler(struct smbcli_request *req)
 				}
 			}
 		}
+		os = state->setup.old.out.os;
+		lanman = state->setup.old.out.lanman;
 		break;
 
 	case RAW_SESSSETUP_NT1:
@@ -145,6 +149,8 @@ static void request_handler(struct smbcli_request *req)
 				}
 			}
 		}
+		os = state->setup.nt1.out.os;
+		lanman = state->setup.nt1.out.lanman;
 		break;
 
 	case RAW_SESSSETUP_SPNEGO:
@@ -216,6 +222,8 @@ static void request_handler(struct smbcli_request *req)
 			composite_continue_smb(c, state->req, request_handler, c);
 			return;
 		}
+		os = state->setup.spnego.out.os;
+		lanman = state->setup.spnego.out.lanman;
 		break;
 
 	case RAW_SESSSETUP_SMB2:
@@ -246,6 +254,19 @@ static void request_handler(struct smbcli_request *req)
 		return;
 	}
 
+	if (os) {
+		session->os = talloc_strdup(session, os);
+		if (composite_nomem(session->os, c)) return;
+	} else {
+		session->os = NULL;
+	}
+	if (lanman) {
+		session->lanman = talloc_strdup(session, lanman);
+		if (composite_nomem(session->lanman, c)) return;
+	} else {
+		session->lanman = NULL;
+	}
+
 	composite_done(c);
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list