svn commit: samba r10117 - in branches/tmp/RPCREWRITE/source: libsmb utils

jra at samba.org jra at samba.org
Fri Sep 9 16:26:43 GMT 2005


Author: jra
Date: 2005-09-09 16:26:42 +0000 (Fri, 09 Sep 2005)
New Revision: 10117

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

Log:
w00t! This now compiles.... !
MERGE MERGE MERGE...
Jeremy

Modified:
   branches/tmp/RPCREWRITE/source/libsmb/libsmbclient.c
   branches/tmp/RPCREWRITE/source/utils/smbcacls.c
   branches/tmp/RPCREWRITE/source/utils/smbcquotas.c


Changeset:
Modified: branches/tmp/RPCREWRITE/source/libsmb/libsmbclient.c
===================================================================
--- branches/tmp/RPCREWRITE/source/libsmb/libsmbclient.c	2005-09-09 16:23:50 UTC (rev 10116)
+++ branches/tmp/RPCREWRITE/source/libsmb/libsmbclient.c	2005-09-09 16:26:42 UTC (rev 10117)
@@ -80,6 +80,23 @@
 	return False;
 }
 
+/*
+ * Find an lsa pipe handle associated with a cli struct.
+ */
+
+static struct rpc_pipe_client *find_lsa_pipe_hnd(struct cli_state *ipc_cli)
+{
+	struct rpc_pipe_client *pipe_hnd;
+
+	for (pipe_hnd = ipc_cli->pipe_list; pipe_hnd; pipe_hnd = pipe_hnd->next) {
+		if (pipe_hnd->pipe_idx == PI_LSARPC) {
+			return pipe_hnd;
+		}
+	}
+
+	return NULL;
+}
+
 static int smbc_close_ctx(SMBCCTX *context, SMBCFILE *file);
 static off_t smbc_lseek_ctx(SMBCCTX *context, SMBCFILE *file, off_t offset, int whence);
 
@@ -800,6 +817,7 @@
 {
         struct in_addr ip;
 	struct cli_state *ipc_cli;
+	struct rpc_pipe_client *pipe_hnd;
         NTSTATUS nt_status;
 	SMBCSRV *ipc_srv=NULL;
 
@@ -835,7 +853,8 @@
                         return NULL;
                 }
 
-                if (!cli_nt_session_open(ipc_cli, PI_LSARPC)) {
+		pipe_hnd = cli_rpc_pipe_open_noauth(ipc_cli, PI_LSARPC, &nt_status);
+                if (!pipe_hnd) {
                         DEBUG(1, ("cli_nt_session_open fail!\n"));
                         errno = ENOTSUP;
                         cli_shutdown(ipc_cli);
@@ -845,7 +864,7 @@
                 /* Some systems don't support SEC_RIGHTS_MAXIMUM_ALLOWED,
                    but NT sends 0x2000000 so we might as well do it too. */
         
-                nt_status = cli_lsa_open_policy(ipc_cli,
+                nt_status = rpccli_lsa_open_policy(pipe_hnd,
                                                 ipc_cli->mem_ctx,
                                                 True, 
                                                 GENERIC_EXECUTE_ACCESS,
@@ -3127,14 +3146,20 @@
 	char **domains = NULL;
 	char **names = NULL;
 	uint32 *types = NULL;
-
+	struct rpc_pipe_client *pipe_hnd = find_lsa_pipe_hnd(ipc_cli);
 	sid_to_string(str, sid);
 
-        if (numeric) return;     /* no lookup desired */
-        
+	if (numeric) {
+		return;     /* no lookup desired */
+	}
+       
+	if (!pipe_hnd) {
+		return;
+	}
+ 
 	/* Ask LSA to convert the sid to a name */
 
-	if (!NT_STATUS_IS_OK(cli_lsa_lookup_sids(ipc_cli, ipc_cli->mem_ctx,  
+	if (!NT_STATUS_IS_OK(rpccli_lsa_lookup_sids(pipe_hnd, ipc_cli->mem_ctx,  
 						 pol, 1, sid, &domains, 
 						 &names, &types)) ||
 	    !domains || !domains[0] || !names || !names[0]) {
@@ -3158,7 +3183,12 @@
 	uint32 *types = NULL;
 	DOM_SID *sids = NULL;
 	BOOL result = True;
+	struct rpc_pipe_client *pipe_hnd = find_lsa_pipe_hnd(ipc_cli);
 
+	if (!pipe_hnd) {
+		return False;
+	}
+
         if (numeric) {
                 if (strncmp(str, "S-", 2) == 0) {
                         return string_to_sid(sid, str);
@@ -3168,7 +3198,7 @@
                 goto done;
         }
 
-	if (!NT_STATUS_IS_OK(cli_lsa_lookup_names(ipc_cli, ipc_cli->mem_ctx, 
+	if (!NT_STATUS_IS_OK(rpccli_lsa_lookup_names(pipe_hnd, ipc_cli->mem_ctx, 
 						  pol, 1, &str, &sids, 
 						  &types))) {
 		result = False;

Modified: branches/tmp/RPCREWRITE/source/utils/smbcacls.c
===================================================================
--- branches/tmp/RPCREWRITE/source/utils/smbcacls.c	2005-09-09 16:23:50 UTC (rev 10116)
+++ branches/tmp/RPCREWRITE/source/utils/smbcacls.c	2005-09-09 16:26:42 UTC (rev 10117)
@@ -64,6 +64,7 @@
 };
 
 static struct cli_state *global_hack_cli;
+static struct rpc_pipe_client *global_pipe_hnd;
 static POLICY_HND pol;
 static BOOL got_policy_hnd;
 
@@ -76,8 +77,10 @@
 	/* Initialise cli LSA connection */
 
 	if (!global_hack_cli) {
+		NTSTATUS ret;
 		global_hack_cli = connect_one("IPC$");
-		if (!cli_nt_session_open (global_hack_cli, PI_LSARPC)) {
+		global_pipe_hnd = cli_rpc_pipe_open_noauth(global_hack_cli, PI_LSARPC, &ret);
+		if (!global_pipe_hnd) {
 				return False;
 		}
 	}
@@ -89,7 +92,7 @@
 		/* Some systems don't support SEC_RIGHTS_MAXIMUM_ALLOWED,
 		   but NT sends 0x2000000 so we might as well do it too. */
 
-		if (!NT_STATUS_IS_OK(cli_lsa_open_policy(global_hack_cli, global_hack_cli->mem_ctx, True, 
+		if (!NT_STATUS_IS_OK(rpccli_lsa_open_policy(global_pipe_hnd, global_hack_cli->mem_ctx, True, 
 							 GENERIC_EXECUTE_ACCESS, &pol))) {
 			return False;
 		}
@@ -114,7 +117,7 @@
 	/* Ask LSA to convert the sid to a name */
 
 	if (!cacls_open_policy_hnd() ||
-	    !NT_STATUS_IS_OK(cli_lsa_lookup_sids(global_hack_cli, global_hack_cli->mem_ctx,  
+	    !NT_STATUS_IS_OK(rpccli_lsa_lookup_sids(global_pipe_hnd, global_hack_cli->mem_ctx,  
 						 &pol, 1, sid, &domains, 
 						 &names, &types)) ||
 	    !domains || !domains[0] || !names || !names[0]) {
@@ -141,7 +144,7 @@
 	}
 
 	if (!cacls_open_policy_hnd() ||
-	    !NT_STATUS_IS_OK(cli_lsa_lookup_names(global_hack_cli, global_hack_cli->mem_ctx, 
+	    !NT_STATUS_IS_OK(rpccli_lsa_lookup_names(global_pipe_hnd, global_hack_cli->mem_ctx, 
 						  &pol, 1, &str, &sids, 
 						  &types))) {
 		result = False;

Modified: branches/tmp/RPCREWRITE/source/utils/smbcquotas.c
===================================================================
--- branches/tmp/RPCREWRITE/source/utils/smbcquotas.c	2005-09-09 16:23:50 UTC (rev 10116)
+++ branches/tmp/RPCREWRITE/source/utils/smbcquotas.c	2005-09-09 16:26:42 UTC (rev 10117)
@@ -34,7 +34,8 @@
 enum todo_values {NOOP_QUOTA=0,FS_QUOTA,USER_QUOTA,LIST_QUOTA,SET_QUOTA};
 enum exit_values {EXIT_OK, EXIT_FAILED, EXIT_PARSE_ERROR};
 
-static struct cli_state *cli_ipc = NULL;
+static struct cli_state *cli_ipc;
+static struct rpc_pipe_client *global_pipe_hnd;
 static POLICY_HND pol;
 static BOOL got_policy_hnd;
 
@@ -47,8 +48,10 @@
 	/* Initialise cli LSA connection */
 
 	if (!cli_ipc) {
+		NTSTATUS ret;
 		cli_ipc = connect_one("IPC$");
-		if (!cli_nt_session_open (cli_ipc, PI_LSARPC)) {
+		global_pipe_hnd = cli_rpc_pipe_open_noauth(cli_ipc, PI_LSARPC, &ret);
+		if (!global_pipe_hnd) {
 				return False;
 		}
 	}
@@ -60,7 +63,7 @@
 		/* Some systems don't support SEC_RIGHTS_MAXIMUM_ALLOWED,
 		   but NT sends 0x2000000 so we might as well do it too. */
 
-		if (!NT_STATUS_IS_OK(cli_lsa_open_policy(cli_ipc, cli_ipc->mem_ctx, True, 
+		if (!NT_STATUS_IS_OK(rpccli_lsa_open_policy(global_pipe_hnd, cli_ipc->mem_ctx, True, 
 							 GENERIC_EXECUTE_ACCESS, &pol))) {
 			return False;
 		}
@@ -85,7 +88,7 @@
 	/* Ask LSA to convert the sid to a name */
 
 	if (!cli_open_policy_hnd() ||
-	    !NT_STATUS_IS_OK(cli_lsa_lookup_sids(cli_ipc, cli_ipc->mem_ctx,  
+	    !NT_STATUS_IS_OK(rpccli_lsa_lookup_sids(global_pipe_hnd, cli_ipc->mem_ctx,  
 						 &pol, 1, sid, &domains, 
 						 &names, &types)) ||
 	    !domains || !domains[0] || !names || !names[0]) {
@@ -112,7 +115,7 @@
 	}
 
 	if (!cli_open_policy_hnd() ||
-	    !NT_STATUS_IS_OK(cli_lsa_lookup_names(cli_ipc, cli_ipc->mem_ctx, 
+	    !NT_STATUS_IS_OK(rpccli_lsa_lookup_names(global_pipe_hnd, cli_ipc->mem_ctx, 
 						  &pol, 1, &str, &sids, 
 						  &types))) {
 		result = False;



More information about the samba-cvs mailing list