[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-2250-g944d736

Volker Lendecke vlendec at samba.org
Fri Apr 25 14:42:17 GMT 2008


The branch, v3-2-test has been updated
       via  944d736a0fa47dc92e2f4660e7a3e01d252b3e01 (commit)
       via  23666dc6ef39134cd1c402c5ff8184511eb5ced9 (commit)
      from  6b2b45002449140b06eaea2e5132e03029555d01 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 944d736a0fa47dc92e2f4660e7a3e01d252b3e01
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Apr 25 16:42:27 2008 +0200

    Revert "Remove some write-only fstrings"
    
    This reverts commit aacb07b1b0f674b8cb92347ef4b4dd1e7808dde8.

commit 23666dc6ef39134cd1c402c5ff8184511eb5ced9
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Apr 25 16:42:15 2008 +0200

    Revert "Remove namedpipe_transact fn pointer from smb_np_struct"
    
    This reverts commit d1f82b7e67a791e19d08c682b607d82ae649feb4.

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

Summary of changes:
 source/include/ntdomain.h    |   18 ++++++++++++++++++
 source/rpc_server/srv_pipe.c |   15 ++++++++++++---
 2 files changed, 30 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/ntdomain.h b/source/include/ntdomain.h
index 7bd5afe..b89b0fe 100644
--- a/source/include/ntdomain.h
+++ b/source/include/ntdomain.h
@@ -233,6 +233,13 @@ typedef struct pipes_struct {
 	struct dcinfo *dc; /* Keeps the creds data from netlogon. */
 
 	/*
+	 * Windows user info.
+	 */
+	fstring user_name;
+	fstring domain;
+	fstring wks;
+
+	/*
 	 * Unix user name and credentials used when a pipe is authenticated.
 	 */
 
@@ -325,6 +332,17 @@ typedef struct smb_np_struct {
 	void *   (*namedpipe_create)(const char *pipe_name, 
 					  connection_struct *conn, uint16 vuid);
 
+	/* call to perform a write / read namedpipe transaction.
+	 * TransactNamedPipe is weird: it returns whether there
+	 * is more data outstanding to be read, and the
+	 * caller is expected to take note and follow up with
+	 * read requests.
+	 */
+	ssize_t  (*namedpipe_transact)(void *np_state,
+	                               char *data, int len,
+	                               char *rdata, int rlen,
+	                               bool *pipe_outstanding);
+
 	/* call to perform a write namedpipe operation
 	 */
 	ssize_t  (*namedpipe_write)(void * np_state,
diff --git a/source/rpc_server/srv_pipe.c b/source/rpc_server/srv_pipe.c
index 52e4fdf..2f9e3e5 100644
--- a/source/rpc_server/srv_pipe.c
+++ b/source/rpc_server/srv_pipe.c
@@ -614,6 +614,11 @@ static bool pipe_ntlmssp_verify_final(pipes_struct *p, DATA_BLOB *p_resp_blob)
 
 	ZERO_STRUCT(reply);
 
+	memset(p->user_name, '\0', sizeof(p->user_name));
+	memset(p->pipe_user_name, '\0', sizeof(p->pipe_user_name));
+	memset(p->domain, '\0', sizeof(p->domain));
+	memset(p->wks, '\0', sizeof(p->wks));
+
 	/* Set up for non-authenticated user. */
 	TALLOC_FREE(p->pipe_user.nt_user_token);
 	p->pipe_user.ut.ngroups = 0;
@@ -651,10 +656,14 @@ static bool pipe_ntlmssp_verify_final(pipes_struct *p, DATA_BLOB *p_resp_blob)
 			return False;
 		}
 	}
+	
+	fstrcpy(p->user_name, a->ntlmssp_state->user);
+	fstrcpy(p->pipe_user_name, a->server_info->unix_name);
+	fstrcpy(p->domain, a->ntlmssp_state->domain);
+	fstrcpy(p->wks, a->ntlmssp_state->workstation);
 
-	DEBUG(5, ("pipe_ntlmssp_verify_final: OK: user: %s domain: %s "
-		  "workstation: %s\n", a->ntlmssp_state->user,
-		  a->ntlmssp_state->domain, a->ntlmssp_state->workstation));
+	DEBUG(5,("pipe_ntlmssp_verify_final: OK: user: %s domain: %s workstation: %s\n",
+		p->user_name, p->domain, p->wks));
 
 	/*
 	 * Store the UNIX credential data (uid/gid pair) in the pipe structure.


-- 
Samba Shared Repository


More information about the samba-cvs mailing list