svn commit: samba r19445 - in branches/SAMBA_3_0/source/utils: .

vlendec at samba.org vlendec at samba.org
Sat Oct 21 16:27:38 GMT 2006


Author: vlendec
Date: 2006-10-21 16:27:38 +0000 (Sat, 21 Oct 2006)
New Revision: 19445

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19445

Log:
Attempt to fix net rpc share
Modified:
   branches/SAMBA_3_0/source/utils/net_rpc.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/net_rpc.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_rpc.c	2006-10-21 11:50:52 UTC (rev 19444)
+++ branches/SAMBA_3_0/source/utils/net_rpc.c	2006-10-21 16:27:38 UTC (rev 19445)
@@ -3137,7 +3137,26 @@
 				uint32 *numentries)
 {
 	union srvsvc_NetShareInfo info;
+	NTSTATUS status;
 
+	switch(level) {
+	case 1:
+		if (!(ctr->ctr1 = TALLOC_ZERO_P(
+			      mem_ctx, struct srvsvc_NetShareCtr1))) {
+			return NT_STATUS_NO_MEMORY;
+		}
+		break;
+	case 502:
+		if (!(ctr->ctr502 = TALLOC_ZERO_P(
+			      mem_ctx, struct srvsvc_NetShareCtr502))) {
+			return NT_STATUS_NO_MEMORY;
+		}
+		break;
+	default:
+		return NT_STATUS_INVALID_LEVEL;
+		break;
+	}
+
 	/* no specific share requested, enumerate all */
 	if (argc == 0) {
 		uint32 hnd = 0;
@@ -3147,7 +3166,29 @@
 	}
 
 	/* request just one share */
-	return rpccli_srvsvc_NetShareGetInfo(pipe_hnd, mem_ctx, NULL, argv[0], level, &info);
+	status = rpccli_srvsvc_NetShareGetInfo(pipe_hnd, mem_ctx, NULL,
+					       argv[0], level, &info);
+	if (!NT_STATUS_IS_OK(status)) {
+		return status;
+	}
+
+	*numentries = 1;
+
+	switch(level) {
+	case 1:
+		ctr->ctr1->count = 1;
+		ctr->ctr1->array = info.info1;
+		break;
+	case 502:
+		ctr->ctr501->count = 1;
+		ctr->ctr502->array = info.info502;
+		break;
+	default:
+		return NT_STATUS_INTERNAL_ERROR;
+		break;
+	}
+
+	return NT_STATUS_OK;
 }
 
 /** 



More information about the samba-cvs mailing list