From: Andreas Schneider Date: Wed, 31 Aug 2011 14:46:35 +0000 (+0200) Subject: s3-rpc_server: Handle services with multiple pipe names. X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=ae292ed1806474fdbae1aef9776a933316e057bf;p=kai%2Fsamba.git s3-rpc_server: Handle services with multiple pipe names. The configuration should only use the default pipe name to configure all of them correctly. --- diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index d0ca0a17de5..a5c11d9afc6 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/rpc_config.c b/source3/rpc_server/rpc_config.c index a1c639c4c76..3ddc18935db 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;