[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