[SCM] Samba Shared Repository - branch master updated

Alexander Bokovoy ab at samba.org
Thu Jun 21 04:12:02 MDT 2012


The branch, master has been updated
       via  9e116e8 s3-rpcclient: support all known netr_LogonControl2 variants properly
      from  9089d48 s4:torture/smb2: add smb2.durable-open.delete_on_close1

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


- Log -----------------------------------------------------------------
commit 9e116e8a5e2c9ae834b7b500cb0833201bfd148b
Author: Alexander Bokovoy <ab at samba.org>
Date:   Wed Jun 13 17:02:18 2012 +0300

    s3-rpcclient: support all known netr_LogonControl2 variants properly
    
    logonctrl2 function in rpcclient did not allow to specify arguments
    to most of netr_LogonControl2 function code points.
    
    In addition, make descriptive help to show what is expected at each
    function code point.
    
    Autobuild-User(master): Alexander Bokovoy <ab at samba.org>
    Autobuild-Date(master): Thu Jun 21 12:11:19 CEST 2012 on sn-devel-104

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

Summary of changes:
 source3/rpcclient/cmd_netlogon.c |   38 +++++++++++++++++++++++++++++++++++---
 1 files changed, 35 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpcclient/cmd_netlogon.c b/source3/rpcclient/cmd_netlogon.c
index baf2f4f..01d6da4 100644
--- a/source3/rpcclient/cmd_netlogon.c
+++ b/source3/rpcclient/cmd_netlogon.c
@@ -40,10 +40,34 @@ static WERROR cmd_netlogon_logon_ctrl2(struct rpc_pipe_client *cli,
 	union netr_CONTROL_QUERY_INFORMATION query;
 	const char *domain = lp_workgroup();
 	struct dcerpc_binding_handle *b = cli->binding_handle;
-
-	if (argc > 5) {
+	int i;
+#define fn_code_level(x, item) { x, #x, #item }
+	struct {
+		enum netr_LogonControlCode code;
+		const char *name;
+		const char *argument;
+	} supported_levels[] = {
+		fn_code_level(NETLOGON_CONTROL_REDISCOVER, domain),
+		fn_code_level(NETLOGON_CONTROL_TC_QUERY, domain),
+		fn_code_level(NETLOGON_CONTROL_TRANSPORT_NOTIFY, domain),
+		fn_code_level(NETLOGON_CONTROL_FIND_USER, user),
+		fn_code_level(NETLOGON_CONTROL_CHANGE_PASSWORD, domain),
+		fn_code_level(NETLOGON_CONTROL_TC_VERIFY, domain),
+		fn_code_level(NETLOGON_CONTROL_SET_DBFLAG, debug_level),
+		{0, 0, 0}
+	};
+#undef fn_code_level
+	if ((argc > 5) || (argc < 2)) {
 		fprintf(stderr, "Usage: %s <logon_server> <function_code> "
-			"<level> <domain>\n", argv[0]);
+			"<level:1..4> <argument>\n", argv[0]);
+		fprintf(stderr, "Supported combinations:\n");
+		fprintf(stderr, "function_code\targument\n");
+		for(i=0; supported_levels[i].code; i++) {
+			fprintf(stderr, "%7d\t\t%s\t(%s)\n",
+				supported_levels[i].code,
+				supported_levels[i].argument,
+				supported_levels[i].name);
+		}
 		return WERR_OK;
 	}
 
@@ -66,8 +90,16 @@ static WERROR cmd_netlogon_logon_ctrl2(struct rpc_pipe_client *cli,
 	switch (function_code) {
 		case NETLOGON_CONTROL_REDISCOVER:
 		case NETLOGON_CONTROL_TC_QUERY:
+		case NETLOGON_CONTROL_CHANGE_PASSWORD:
+		case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
+		case NETLOGON_CONTROL_TC_VERIFY:
 			data.domain = domain;
 			break;
+		case NETLOGON_CONTROL_FIND_USER:
+			data.user = domain;
+			break;
+		case NETLOGON_CONTROL_SET_DBFLAG:
+			data.debug_level = atoi(domain);
 		default:
 			break;
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list