s3-rpc_server: Handle services with multiple pipe names.
authorAndreas Schneider <asn@samba.org>
Wed, 31 Aug 2011 14:46:35 +0000 (16:46 +0200)
committerAndreas Schneider <asn@samba.org>
Thu, 1 Sep 2011 12:28:03 +0000 (14:28 +0200)
The configuration should only use the default pipe name to configure all
of them correctly.

selftest/target/Samba3.pm
source3/rpc_server/rpc_config.c

index d0ca0a17de5ce8c9e468e931bea3aa99ef32552b..a5c11d9afc6a55f6bc3f469d4a1d1f352f9ccc7d 100755 (executable)
@@ -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
index a1c639c4c767d51f28a439229242db57ec653fb7..3ddc18935db7f50012eed0c9fce48591ccce8332 100644 (file)
@@ -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;