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

Günther Deschner gd at samba.org
Wed Mar 19 01:21:28 GMT 2008


The branch, v3-2-test has been updated
       via  fcdc09674571b8e81233acc9e8dc8651b66cd21d (commit)
       via  6c6700ed7148b73b2ce52fc00020c7e253a577d3 (commit)
      from  e9c56250eb7a2dc4e69962c5b48875834941ccfc (commit)

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


- Log -----------------------------------------------------------------
commit fcdc09674571b8e81233acc9e8dc8651b66cd21d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 19 01:31:09 2008 +0100

    Remove unused marshalling for SRV_NET_FILE_ENUM.
    
    Guenther

commit 6c6700ed7148b73b2ce52fc00020c7e253a577d3
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 19 01:25:59 2008 +0100

    Use pidl for _srvsvc_NetFileEnum.
    
    Guenther

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

Summary of changes:
 source/include/rpc_srvsvc.h       |   39 -----
 source/rpc_parse/parse_srv.c      |  289 -------------------------------------
 source/rpc_server/srv_srvsvc_nt.c |  169 +++++++++-------------
 3 files changed, 71 insertions(+), 426 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/rpc_srvsvc.h b/source/include/rpc_srvsvc.h
index 4d840d0..0d24ec5 100644
--- a/source/include/rpc_srvsvc.h
+++ b/source/include/rpc_srvsvc.h
@@ -217,43 +217,4 @@ typedef struct r_net_conn_enum_info
 
 /***************************/
 
-typedef struct {
-	uint32 id;            /* file index */
-	uint32 perms;         /* file permissions. don't know what format */
-	uint32 num_locks;     /* file locks */
-	UNISTR2 *path;        /* file name */
-	UNISTR2 *user;        /* file owner */
-} FILE_INFO_3;
-
-typedef struct {
-	uint32 level;                /* switch value */
-	uint32 ptr_file_info;        /* pointer to file info union */
-
-	uint32 num_entries;
-	uint32 ptr_entries;
-	uint32 num_entries2;
-	union {
-		FILE_INFO_3 *info3;
-	} file;
-
-} SRV_FILE_INFO_CTR;
-
-typedef struct {
-	UNISTR2 *servername;
-	UNISTR2 *qualifier;
-	UNISTR2 *username;
-	uint32 level;
-	SRV_FILE_INFO_CTR ctr;
-	uint32 preferred_len;     /* preferred maximum length (0xffff ffff) */
-	ENUM_HND enum_hnd;
-} SRV_Q_NET_FILE_ENUM;
-
-typedef struct {
-	uint32 level;   
-	SRV_FILE_INFO_CTR ctr;
-	uint32 total_entries;
-	ENUM_HND enum_hnd;
-	WERROR status;      
-} SRV_R_NET_FILE_ENUM;
-
 #endif /* _RPC_SRVSVC_H */
diff --git a/source/rpc_parse/parse_srv.c b/source/rpc_parse/parse_srv.c
index b184848..9755254 100644
--- a/source/rpc_parse/parse_srv.c
+++ b/source/rpc_parse/parse_srv.c
@@ -698,292 +698,3 @@ bool srv_io_r_net_conn_enum(const char *desc,  SRV_R_NET_CONN_ENUM *r_n, prs_str
 
 	return True;
 }
-
-/*******************************************************************
- Reads or writes a structure.
-********************************************************************/
-
-static bool srv_io_file_info3_str(const char *desc, FILE_INFO_3 *sh1, prs_struct *ps, int depth)
-{
-	if (sh1 == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "srv_io_file_info3_str");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if ( sh1->path ) {
-		if(!smb_io_unistr2("", sh1->path, True, ps, depth))
-			return False;
-	}
-
-	if ( sh1->user ) {
-		if(!smb_io_unistr2("", sh1->user, True, ps, depth))
-			return False;
-	}
-
-	return True;
-}
-
-/*******************************************************************
- Inits a FILE_INFO_3 structure
-********************************************************************/
-
-void init_srv_file_info3( FILE_INFO_3 *fl3, uint32 id, uint32 perms, uint32 num_locks,
-                          const char *user_name, const char *path_name )
-{
-	fl3->id        = id;	
-	fl3->perms     = perms;
-	fl3->num_locks = num_locks;
-
-        if ( path_name ) {
-                if ( (fl3->path = TALLOC_P( talloc_tos(), UNISTR2 )) == NULL )
-                        return;
-                init_unistr2(fl3->path, path_name, UNI_STR_TERMINATE);
-        }
-
-        if ( user_name ) {
-                if ( (fl3->user = TALLOC_P( talloc_tos(), UNISTR2 )) == NULL )
-                        return;
-                init_unistr2(fl3->user, user_name, UNI_STR_TERMINATE);
-        }
-
-	return;
-}
-
-/*******************************************************************
- Reads or writes a structure.
-********************************************************************/
-
-static bool srv_io_file_info3(const char *desc, FILE_INFO_3 *fl3, prs_struct *ps, int depth)
-{
-	uint32 uni_p;
-
-	if (fl3 == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "srv_io_file_info3");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_uint32("id           ", ps, depth, &fl3->id))
-		return False;
-	if(!prs_uint32("perms        ", ps, depth, &fl3->perms))
-		return False;
-	if(!prs_uint32("num_locks    ", ps, depth, &fl3->num_locks))
-		return False;
-
-	uni_p = fl3->path ? 1 : 0;
-	if(!prs_uint32("ptr", ps, depth, &uni_p))
-		return False;
-	if (UNMARSHALLING(ps)) {
-		if ( (fl3->path = PRS_ALLOC_MEM( ps, UNISTR2, 1)) == NULL ) {
-			return False;
-		}
-	}
-
-	uni_p = fl3->user ? 1 : 0;
-	if(!prs_uint32("ptr", ps, depth, &uni_p))
-		return False;
-	if (UNMARSHALLING(ps)) {
-		if ( (fl3->user = PRS_ALLOC_MEM( ps, UNISTR2, 1)) == NULL ) {
-			return False;
-		}
-	}
-
-	return True;
-}
-
-/*******************************************************************
- Reads or writes a structure.
-********************************************************************/
-
-static bool srv_io_srv_file_ctr(const char *desc, SRV_FILE_INFO_CTR *ctr, prs_struct *ps, int depth)
-{
-	if (ctr == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "srv_io_srv_file_ctr");
-	depth++;
-
-	if (UNMARSHALLING(ps)) {
-		ZERO_STRUCTP(ctr);
-	}
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_uint32("level", ps, depth, &ctr->level))
-		return False;
-
-	if(!prs_uint32("ptr_file_info", ps, depth, &ctr->ptr_file_info))
-		return False;
-	if(!prs_uint32("num_entries", ps, depth, &ctr->num_entries))
-		return False;
-	if(!prs_uint32("ptr_entries", ps, depth, &ctr->ptr_entries))
-		return False;
-
-	if (ctr->ptr_entries == 0)
-		return True;
-
-	if(!prs_uint32("num_entries2", ps, depth, &ctr->num_entries2))
-		return False;
-
-	switch (ctr->level) {
-	case 3: {
-		FILE_INFO_3 *info3 = ctr->file.info3;
-		int num_entries = ctr->num_entries;
-		int i;
-
-		if (UNMARSHALLING(ps) && num_entries) {
-			if (!(info3 = PRS_ALLOC_MEM(ps, FILE_INFO_3, num_entries)))
-				return False;
-			ctr->file.info3 = info3;
-		}
-
-		for (i = 0; i < num_entries; i++) {
-			if(!srv_io_file_info3("", &ctr->file.info3[i], ps, depth)) 
-				return False;
-		}
-
-		for (i = 0; i < num_entries; i++) {
-			if(!srv_io_file_info3_str("", &ctr->file.info3[i], ps, depth))
-				return False;
-		}
-		break;
-	}
-	default:
-		DEBUG(5,("%s no file info at switch_value %d\n", tab_depth(5,depth), ctr->level));
-		break;
-	}
-			
-	return True;
-}
-
-/*******************************************************************
- Inits a SRV_Q_NET_FILE_ENUM structure.
-********************************************************************/
-
-void init_srv_q_net_file_enum(SRV_Q_NET_FILE_ENUM *q_n, 
-			      const char *srv_name, const char *qual_name, 
-			      const char *user_name,
-			      uint32 file_level, SRV_FILE_INFO_CTR *ctr,
-			      uint32 preferred_len,
-			      ENUM_HND *hnd)
-{
-	uint32 ptr;
-
-	if ( srv_name ) {
-		if ( (q_n->servername = TALLOC_P( talloc_tos(), UNISTR2 )) == NULL )
-			return;
-		init_buf_unistr2(q_n->servername, &ptr, srv_name);
-	}
-
-	if ( qual_name ) {
-		if ( (q_n->qualifier = TALLOC_P( talloc_tos(), UNISTR2 )) == NULL )
-			return;
-		init_buf_unistr2(q_n->qualifier,  &ptr, qual_name);
-	}
-
-	if ( user_name ) {
-		if ( (q_n->username = TALLOC_P( talloc_tos(), UNISTR2 )) == NULL )
-			return;
-		init_buf_unistr2(q_n->username,   &ptr, user_name);
-	}
-
-	q_n->level = q_n->ctr.level = file_level;
-
-	q_n->preferred_len = preferred_len;
-	q_n->ctr.ptr_file_info = 1;
-	q_n->ctr.num_entries = 0;
-	q_n->ctr.num_entries2 = 0;
-
-	memcpy(&q_n->enum_hnd, hnd, sizeof(*hnd));
-}
-
-/*******************************************************************
- Reads or writes a structure.
-********************************************************************/
-
-bool srv_io_q_net_file_enum(const char *desc, SRV_Q_NET_FILE_ENUM *q_u, prs_struct *ps, int depth)
-{
-	if (q_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "srv_io_q_net_file_enum");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_pointer("servername", ps, depth, (void*)&q_u->servername,
-			sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2))
-		return False;
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_pointer("qualifier", ps, depth, (void*)&q_u->qualifier,
-			sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2))
-		return False;
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_pointer("username", ps, depth, (void*)&q_u->username,
-			sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2))
-		return False;
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_uint32("level", ps, depth, &q_u->level))
-		return False;
-
-	if (q_u->level != (uint32)-1) {
-		if(!srv_io_srv_file_ctr("file_ctr", &q_u->ctr, ps, depth))
-			return False;
-	}
-
-	if(!prs_uint32("preferred_len", ps, depth, &q_u->preferred_len))
-		return False;
-
-	if(!smb_io_enum_hnd("enum_hnd", &q_u->enum_hnd, ps, depth))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
- Reads or writes a structure.
-********************************************************************/
-
-bool srv_io_r_net_file_enum(const char *desc, SRV_R_NET_FILE_ENUM *r_n, prs_struct *ps, int depth)
-{
-	if (r_n == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "srv_io_r_net_file_enum");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_uint32("level", ps, depth, &r_n->level))
-		return False;
-
-	if (r_n->level != 0) {
-		if(!srv_io_srv_file_ctr("file_ctr", &r_n->ctr, ps, depth))
-			return False;
-	}
-
-	if(!prs_uint32("total_entries", ps, depth, &r_n->total_entries))
-		return False;
-	if(!smb_io_enum_hnd("enum_hnd", &r_n->enum_hnd, ps, depth))
-		return False;
-	if(!prs_werror("status", ps, depth, &r_n->status))
-		return False;
-
-	return True;
-}
diff --git a/source/rpc_server/srv_srvsvc_nt.c b/source/rpc_server/srv_srvsvc_nt.c
index 56d3159..053f57e 100644
--- a/source/rpc_server/srv_srvsvc_nt.c
+++ b/source/rpc_server/srv_srvsvc_nt.c
@@ -34,8 +34,7 @@ extern const struct generic_mapping file_generic_mapping;
 struct file_enum_count {
 	TALLOC_CTX *ctx;
 	const char *username;
-	int count;
-	FILE_INFO_3 *info;
+	struct srvsvc_NetFileCtr3 *ctr3;
 };
 
 struct sess_file_count {
@@ -52,8 +51,8 @@ static int pipe_enum_fn( struct db_record *rec, void *p)
 {
 	struct pipe_open_rec prec;
 	struct file_enum_count *fenum = (struct file_enum_count *)p;
-	FILE_INFO_3 *f;
-	int i = fenum->count;
+	struct srvsvc_NetFileInfo3 *f;
+	int i = fenum->ctr3->count;
 	char *fullpath = NULL;
 	const char *username;
 
@@ -78,21 +77,22 @@ static int pipe_enum_fn( struct db_record *rec, void *p)
 		return 1;
 	}
 
-	f = TALLOC_REALLOC_ARRAY( fenum->ctx, fenum->info, FILE_INFO_3, i+1 );
+	f = TALLOC_REALLOC_ARRAY(fenum->ctx, fenum->ctr3->array,
+				 struct srvsvc_NetFileInfo3, i+1);
 	if ( !f ) {
 		DEBUG(0,("conn_enum_fn: realloc failed for %d items\n", i+1));
 		return 1;
 	}
-	fenum->info = f;
+	fenum->ctr3->array = f;
 
-	init_srv_file_info3(
-		&fenum->info[i],
-		(uint32)((procid_to_pid(&prec.pid)<<16) & prec.pnum),
-		(FILE_READ_DATA|FILE_WRITE_DATA),
-		0, username, fullpath);
+	init_srvsvc_NetFileInfo3(&fenum->ctr3->array[i],
+				 (uint32_t)((procid_to_pid(&prec.pid)<<16) & prec.pnum),
+				 (FILE_READ_DATA|FILE_WRITE_DATA),
+				 0,
+				 fullpath,
+				 username);
 
-	TALLOC_FREE(fullpath);
-	fenum->count++;
+	fenum->ctr3->count++;
 
 	return 0;
 }
@@ -100,16 +100,16 @@ static int pipe_enum_fn( struct db_record *rec, void *p)
 /*******************************************************************
 ********************************************************************/
 
-static WERROR net_enum_pipes( TALLOC_CTX *ctx, const char *username,
-			      FILE_INFO_3 **info,
-                              uint32 *count, uint32 resume )
+static WERROR net_enum_pipes(TALLOC_CTX *ctx,
+			     const char *username,
+			     struct srvsvc_NetFileCtr3 **ctr3,
+			     uint32_t resume )
 {
 	struct file_enum_count fenum;
 
 	fenum.ctx = ctx;
 	fenum.username = username;
-	fenum.count = *count;
-	fenum.info = *info;
+	fenum.ctr3 = *ctr3;
 
 	if (connections_traverse(pipe_enum_fn, &fenum) == -1) {
 		DEBUG(0,("net_enum_pipes: traverse of connections.tdb "
@@ -117,8 +117,7 @@ static WERROR net_enum_pipes( TALLOC_CTX *ctx, const char *username,
 		return WERR_NOMEM;
 	}
 
-	*info  = fenum.info;
-	*count = fenum.count;
+	*ctr3 = fenum.ctr3;
 
 	return WERR_OK;
 }
@@ -133,8 +132,8 @@ static void enum_file_fn( const struct share_mode_entry *e,
  	struct file_enum_count *fenum =
  		(struct file_enum_count *)private_data;
 
-	FILE_INFO_3 *f;
-	int i = fenum->count;
+	struct srvsvc_NetFileInfo3 *f;
+	int i = fenum->ctr3->count;
 	files_struct fsp;
 	struct byte_range_lock *brl;
 	int num_locks = 0;
@@ -155,12 +154,13 @@ static void enum_file_fn( const struct share_mode_entry *e,
 		return;
 	}
 
-	f = TALLOC_REALLOC_ARRAY( fenum->ctx, fenum->info, FILE_INFO_3, i+1 );
+	f = TALLOC_REALLOC_ARRAY(fenum->ctx, fenum->ctr3->array,
+				 struct srvsvc_NetFileInfo3, i+1);
 	if ( !f ) {
 		DEBUG(0,("conn_enum_fn: realloc failed for %d items\n", i+1));
 		return;
 	}
-	fenum->info = f;
+	fenum->ctr3->array = f;
 
 	/* need to count the number of locks on a file */
 
@@ -186,36 +186,33 @@ static void enum_file_fn( const struct share_mode_entry *e,
 	/* mask out create (what ever that is) */
 	permissions = e->share_access & (FILE_READ_DATA|FILE_WRITE_DATA);
 
-	/* now fill in the FILE_INFO_3 struct */
-	init_srv_file_info3( &fenum->info[i],
-			     e->share_file_id,
-			     permissions,
-			     num_locks,
-			     username,
-			     fullpath );
-
-	TALLOC_FREE(fullpath);
-	fenum->count++;
+	/* now fill in the srvsvc_NetFileInfo3 struct */
+	init_srvsvc_NetFileInfo3(&fenum->ctr3->array[i],
+				 e->share_file_id,
+				 permissions,
+				 num_locks,
+				 username,
+				 fullpath);
+	fenum->ctr3->count++;
 }
 
 /*******************************************************************
 ********************************************************************/
 
-static WERROR net_enum_files( TALLOC_CTX *ctx, const char *username,
-			      FILE_INFO_3 **info,
-                              uint32 *count, uint32 resume )
+static WERROR net_enum_files(TALLOC_CTX *ctx,
+			     const char *username,
+			     struct srvsvc_NetFileCtr3 **ctr3,
+			     uint32_t resume)
 {
 	struct file_enum_count f_enum_cnt;
 
 	f_enum_cnt.ctx = ctx;
 	f_enum_cnt.username = username;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list