[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Thu Sep 1 08:00:05 MDT 2011


The branch, master has been updated
       via  6d8b4f5 s3-rpc_server: Add missing rng_fault_state in epmapper.
       via  ae292ed s3-rpc_server: Handle services with multiple pipe names.
      from  ccaab14 ldb: make the 'spy' code more paranoid

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


- Log -----------------------------------------------------------------
commit 6d8b4f59e41051bcdfc514cce59a4a286c480bda
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Sep 1 09:32:33 2011 +0200

    s3-rpc_server: Add missing rng_fault_state in epmapper.
    
    We need to raise an exception so we need to set the rng_fault_state for
    epm_Insert and epm_Delete if someone connects over a transport other
    than NCALRPC.
    
    Autobuild-User: Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date: Thu Sep  1 15:59:50 CEST 2011 on sn-devel-104

commit ae292ed1806474fdbae1aef9776a933316e057bf
Author: Andreas Schneider <asn at samba.org>
Date:   Wed Aug 31 16:46:35 2011 +0200

    s3-rpc_server: Handle services with multiple pipe names.
    
    The configuration should only use the default pipe name to configure all
    of them correctly.

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

Summary of changes:
 selftest/target/Samba3.pm                  |    2 --
 source3/rpc_server/epmapper/srv_epmapper.c |    2 ++
 source3/rpc_server/rpc_config.c            |   12 ++++++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index d0ca0a1..a5c11d9 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -288,7 +288,6 @@ sub setup_plugin_s4_dc($$$$)
         rpc_daemon:epmd = disabled
         rpc_daemon:lsasd = disabled
         rpc_server:tcpip = no
-        rpc_server:lsass = external
         rpc_server:lsarpc = external
         rpc_server:netlogon = external
         rpc_server:samr = external
@@ -905,7 +904,6 @@ sub provision($$$$$$$)
 	ncalrpc dir = $prefix_abs/ncalrpc
 	rpc_server:epmapper = external
 	rpc_server:spoolss = external
-	rpc_server:lsass = external
 	rpc_server:lsarpc = external
 	rpc_server:samr = external
 	rpc_server:netlogon = external
diff --git a/source3/rpc_server/epmapper/srv_epmapper.c b/source3/rpc_server/epmapper/srv_epmapper.c
index fa3177e..c492580 100644
--- a/source3/rpc_server/epmapper/srv_epmapper.c
+++ b/source3/rpc_server/epmapper/srv_epmapper.c
@@ -306,6 +306,7 @@ error_status_t _epm_Insert(struct pipes_struct *p,
 	/* If this is not a priviledged users, return */
 	if (p->transport != NCALRPC ||
 	    !is_priviledged_pipe(p->session_info)) {
+		p->rng_fault_state = true;
 		return EPMAPPER_STATUS_CANT_PERFORM_OP;
 	}
 
@@ -442,6 +443,7 @@ error_status_t _epm_Delete(struct pipes_struct *p,
 	/* If this is not a priviledged users, return */
 	if (p->transport != NCALRPC ||
 	    !is_priviledged_pipe(p->session_info)) {
+		p->rng_fault_state = true;
 		return EPMAPPER_STATUS_CANT_PERFORM_OP;
 	}
 
diff --git a/source3/rpc_server/rpc_config.c b/source3/rpc_server/rpc_config.c
index a1c639c..3ddc189 100644
--- a/source3/rpc_server/rpc_config.c
+++ b/source3/rpc_server/rpc_config.c
@@ -41,20 +41,28 @@ struct rpc_service_defaults {
 
 enum rpc_service_mode_e rpc_service_mode(const char *name)
 {
+	const char *pipe_name = name;
 	const char *rpcsrv_type;
 	enum rpc_service_mode_e state;
 	const char *def;
 	int i;
 
+	/* Handle pipes with multiple names */
+	if (strcmp(pipe_name, "lsass") == 0) {
+		pipe_name = "lsarpc";
+	} else if (strcmp(pipe_name, "plugplay") == 0) {
+		pipe_name = "ntsvcs";
+	}
+
 	def = "embedded";
 	for (i = 0; rpc_service_defaults[i].name; i++) {
-		if (strcasecmp_m(name, rpc_service_defaults[i].name) == 0) {
+		if (strcasecmp_m(pipe_name, rpc_service_defaults[i].name) == 0) {
 			def = rpc_service_defaults[i].def_mode;
 		}
 	}
 
 	rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM,
-					   "rpc_server", name, def);
+					   "rpc_server", pipe_name, def);
 
 	if (strcasecmp_m(rpcsrv_type, "embedded") == 0) {
 		state = RPC_SERVICE_MODE_EMBEDDED;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list