s3-rpc_server: Use rpc_spoolss_mode().
authorAndreas Schneider <asn@samba.org>
Fri, 29 Jul 2011 15:46:37 +0000 (17:46 +0200)
committerAndreas Schneider <asn@samba.org>
Mon, 1 Aug 2011 09:08:37 +0000 (11:08 +0200)
source3/rpc_server/rpc_service_setup.c
source3/smbd/server.c

index 776c707ccea97a7425b7ff80850be176d2cfab02..86a5a7a378fd6946f7019911a2f8765de69e09c1 100644 (file)
@@ -656,30 +656,30 @@ static bool rpc_setup_spoolss(struct tevent_context *ev_ctx,
 {
        const struct ndr_interface_table *t = &ndr_table_spoolss;
        struct rpc_srv_callbacks spoolss_cb;
-       const char *rpcsrv_type;
        struct dcerpc_binding_vector *v;
+       enum rpc_service_mode_e spoolss_mode = rpc_spoolss_mode();
        NTSTATUS status;
 
-       rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM,
-                                          "rpc_server",
-                                          "spoolss",
-                                          "embedded");
+       if (_lp_disable_spoolss() ||
+           spoolss_mode == RPC_SERVICE_MODE_DISABLED) {
+               return true;
+       }
 
-       if (strcasecmp_m(rpcsrv_type, "embedded") == 0) {
+       if (spoolss_mode == RPC_SERVICE_MODE_EMBEDDED) {
                spoolss_cb.init         = spoolss_init_cb;
                spoolss_cb.shutdown     = spoolss_shutdown_cb;
                spoolss_cb.private_data = msg_ctx;
 
                status = rpc_spoolss_init(&spoolss_cb);
-       } else if (strcasecmp_m(rpcsrv_type, "daemon") == 0 ||
-                  strcasecmp_m(rpcsrv_type, "external") == 0) {
+       } else if (spoolss_mode == RPC_SERVICE_MODE_EXTERNAL ||
+                  spoolss_mode == RPC_SERVICE_MODE_DAEMON) {
                status = rpc_spoolss_init(NULL);
        }
        if (!NT_STATUS_IS_OK(status)) {
                return false;
        }
 
-       if (strcasecmp_m(rpcsrv_type, "embedded")) {
+       if (spoolss_mode == RPC_SERVICE_MODE_EMBEDDED) {
                enum rpc_service_mode_e epm_mode = rpc_epmapper_mode();
 
                if (epm_mode != RPC_SERVICE_MODE_DISABLED) {
index d10f59cc46f130171facbe4179383e380b18559c..18e51a2e422a01fe299800b40ab96aeffa365d65 100644 (file)
@@ -1266,14 +1266,11 @@ extern void build_options(bool screen);
        }
 
        if (is_daemon && !_lp_disable_spoolss()) {
-               const char *rpcsrv_type;
+               enum rpc_service_mode_e spoolss_mode = rpc_spoolss_mode();
 
                /* start spoolss daemon */
                /* start as a separate daemon only if enabled */
-               rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM,
-                                                  "rpc_server", "spoolss",
-                                                  "embedded");
-               if (strcasecmp_m(rpcsrv_type, "daemon") == 0) {
+               if (spoolss_mode == RPC_SERVICE_MODE_DAEMON) {
                        start_spoolssd(ev_ctx, msg_ctx);
                }
        }