[SCM] Samba Shared Repository - branch master updated - ed27d91068ca45a2f2924cb2d53c3fdf856c5c47

Volker Lendecke vlendec at samba.org
Sun Nov 23 21:42:37 GMT 2008


The branch, master has been updated
       via  ed27d91068ca45a2f2924cb2d53c3fdf856c5c47 (commit)
      from  526c609d5f4d892e534fa3db42d5e2cf103b08f3 (commit)

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


- Log -----------------------------------------------------------------
commit ed27d91068ca45a2f2924cb2d53c3fdf856c5c47
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Nov 23 22:21:26 2008 +0100

    Add auth_serversupplied_info to create_conn_struct
    
    srvsvc needs it, as will printing

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

Summary of changes:
 source3/include/proto.h            |    3 ++-
 source3/rpc_server/srv_srvsvc_nt.c |   10 ++++------
 source3/smbd/msdfs.c               |   19 +++++++++++++++----
 3 files changed, 21 insertions(+), 11 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index 2cf1a96..a024d68 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -7957,7 +7957,8 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx,
 				connection_struct **pconn,
 				int snum,
 				const char *path,
-			    char **poldcwd);
+				struct auth_serversupplied_info *server_info,
+				char **poldcwd);
 
 /* The following definitions come from smbd/negprot.c  */
 
diff --git a/source3/rpc_server/srv_srvsvc_nt.c b/source3/rpc_server/srv_srvsvc_nt.c
index 9d9e9af..274deab 100644
--- a/source3/rpc_server/srv_srvsvc_nt.c
+++ b/source3/rpc_server/srv_srvsvc_nt.c
@@ -2050,7 +2050,8 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p,
 	}
 
 	nt_status = create_conn_struct(talloc_tos(), &conn, snum,
-				       lp_pathname(snum), &oldcwd);
+				       lp_pathname(snum), p->server_info,
+				       &oldcwd);
 	if (!NT_STATUS_IS_OK(nt_status)) {
 		DEBUG(10, ("create_conn_struct failed: %s\n",
 			   nt_errstr(nt_status)));
@@ -2058,8 +2059,6 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p,
 		goto error_exit;
 	}
 
-	conn->server_info = p->server_info;
-
 	nt_status = create_file(
 		conn,					/* conn */
 		NULL,					/* req */
@@ -2165,7 +2164,8 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p,
 	}
 
 	nt_status = create_conn_struct(talloc_tos(), &conn, snum,
-				       lp_pathname(snum), &oldcwd);
+				       lp_pathname(snum), p->server_info,
+				       &oldcwd);
 	if (!NT_STATUS_IS_OK(nt_status)) {
 		DEBUG(10, ("create_conn_struct failed: %s\n",
 			   nt_errstr(nt_status)));
@@ -2173,8 +2173,6 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p,
 		goto error_exit;
 	}
 
-	conn->server_info = p->server_info;
-
 	nt_status = create_file(
 		conn,					/* conn */
 		NULL,					/* req */
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 1504b19..d46be64 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -219,6 +219,7 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx,
 				connection_struct **pconn,
 				int snum,
 				const char *path,
+				struct auth_serversupplied_info *server_info,
 				char **poldcwd)
 {
 	connection_struct *conn;
@@ -254,6 +255,15 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx,
 
 	conn->params->service = snum;
 
+	if (server_info != NULL) {
+		conn->server_info = copy_serverinfo(conn, server_info);
+		if (conn->server_info == NULL) {
+			DEBUG(0, ("copy_serverinfo failed\n"));
+			TALLOC_FREE(conn);
+			return NT_STATUS_NO_MEMORY;
+		}
+	}
+
 	set_conn_connectpath(conn, connpath);
 
 	if (!smbd_vfs_init(conn)) {
@@ -881,7 +891,7 @@ NTSTATUS get_referred_path(TALLOC_CTX *ctx,
 	}
 
 	status = create_conn_struct(ctx, &conn, snum, lp_pathname(snum),
-				    &oldpath);
+				    NULL, &oldpath);
 	if (!NT_STATUS_IS_OK(status)) {
 		TALLOC_FREE(pdp);
 		return status;
@@ -1321,7 +1331,7 @@ static bool junction_to_local_path(const struct junction_map *jucn,
 		return False;
 	}
 	status = create_conn_struct(talloc_tos(), conn_out, snum,
-				    lp_pathname(snum), oldpath);
+				    lp_pathname(snum), NULL, oldpath);
 	if (!NT_STATUS_IS_OK(status)) {
 		return False;
 	}
@@ -1455,7 +1465,7 @@ static int count_dfs_links(TALLOC_CTX *ctx, int snum)
 	 */
 
 	status = create_conn_struct(talloc_tos(), &conn, snum, connect_path,
-				    &cwd);
+				    NULL, &cwd);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(3, ("create_conn_struct failed: %s\n",
 			  nt_errstr(status)));
@@ -1523,7 +1533,8 @@ static int form_junctions(TALLOC_CTX *ctx,
 	 * Fake up a connection struct for the VFS layer.
 	 */
 
-	status = create_conn_struct(ctx, &conn, snum, connect_path, &cwd);
+	status = create_conn_struct(ctx, &conn, snum, connect_path, NULL,
+				    &cwd);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(3, ("create_conn_struct failed: %s\n",
 			  nt_errstr(status)));


-- 
Samba Shared Repository


More information about the samba-cvs mailing list