r20149: Remove the smb.conf distinction between PDC and BDC. Now the correct
[jra/samba/.git] / source4 / param / loadparm.c
index 1e5df4fcbe375666bdca1b00f9fbec3e7fcb636d..5094a7f565056483728ec1fa6d8b90469d3ec60e 100644 (file)
@@ -59,8 +59,6 @@
 #include "system/time.h"
 #include "system/locale.h"
 #include "system/network.h" /* needed for TCP_NODELAY */
-#include "librpc/gen_ndr/svcctl.h"
-#include "librpc/gen_ndr/samr.h"
 #include "smb_server/smb_server.h"
 #include "libcli/raw/signing.h"
 #include "lib/util/dlinklist.h"
@@ -114,7 +112,7 @@ typedef struct
        char *szWINS_URL;
        char *szPrivateDir;
        char **jsInclude;
-       char *jsonrpcBase;
+       char *jsonrpcServicesDir;
        char **szPasswordServers;
        char *szSocketOptions;
        char *szRealm;
@@ -274,7 +272,6 @@ static service **ServicePtrs = NULL;
 static int iNumServices = 0;
 static int iServiceIndex = 0;
 static BOOL bInGlobalSection = True;
-static int default_server_announce;
 
 #define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct))
 
@@ -282,8 +279,6 @@ static int default_server_announce;
 static BOOL handle_include(const char *pszParmValue, char **ptr);
 static BOOL handle_copy(const char *pszParmValue, char **ptr);
 
-static void set_default_server_announce_type(void);
-
 static const struct enum_list enum_protocol[] = {
        {PROTOCOL_SMB2, "SMB2"},
        {PROTOCOL_NT1, "NT1"},
@@ -301,12 +296,6 @@ static const struct enum_list enum_security[] = {
        {-1, NULL}
 };
 
-/* Types of machine we can announce as. */
-#define ANNOUNCE_AS_NT_SERVER 1
-#define ANNOUNCE_AS_WIN95 2
-#define ANNOUNCE_AS_WFW 3
-#define ANNOUNCE_AS_NT_WORKSTATION 4
-
 static const struct enum_list enum_announce_as[] = {
        {ANNOUNCE_AS_NT_SERVER, "NT"},
        {ANNOUNCE_AS_NT_SERVER, "NT Server"},
@@ -365,8 +354,7 @@ static const struct enum_list enum_smb_signing_vals[] = {
 static const struct enum_list enum_server_role[] = {
        {ROLE_STANDALONE, "standalone"},
        {ROLE_DOMAIN_MEMBER, "member server"},
-       {ROLE_DOMAIN_BDC, "bdc"},
-       {ROLE_DOMAIN_PDC, "pdc"},
+       {ROLE_DOMAIN_CONTROLLER, "domain controller"},
        {-1, NULL}
 };
 
@@ -543,7 +531,7 @@ static struct parm_struct parm_table[] = {
        {"modules dir", P_STRING, P_GLOBAL, &Globals.szModulesDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        {"pid directory", P_STRING, P_GLOBAL, &Globals.szPidDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, 
        {"js include", P_LIST, P_GLOBAL, &Globals.jsInclude, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"jsonrpc base", P_STRING, P_GLOBAL, &Globals.jsonrpcBase, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"jsonrpc services directory", P_STRING, P_GLOBAL, &Globals.jsonrpcServicesDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        {"setup directory", P_STRING, P_GLOBAL, &Globals.szSetupDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        
        {"socket address", P_STRING, P_GLOBAL, &Globals.szSocketAddress, NULL, NULL, FLAG_DEVELOPER},
@@ -707,6 +695,7 @@ static void init_globals(void)
        do_parameter("kpasswd port", "464", NULL);
        do_parameter("web port", "901", NULL);
        do_parameter("swat directory", dyn_SWATDIR, NULL);
+       do_parameter("jsonrpc services directory", dyn_SERVICESDIR, NULL);
 
        do_parameter("nt status support", "True", NULL);
 
@@ -885,7 +874,7 @@ _PUBLIC_ FN_GLOBAL_BOOL(lp_writeraw, &Globals.bWriteRaw)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_null_passwords, &Globals.bNullPasswords)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_obey_pam_restrictions, &Globals.bObeyPamRestrictions)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_encrypted_passwords, &Globals.bEncryptPasswords)
-static FN_GLOBAL_BOOL(lp_time_server, &Globals.bTimeServer)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_time_server, &Globals.bTimeServer)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_bind_interfaces_only, &Globals.bBindInterfacesOnly)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_unicode, &Globals.bUnicode)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_nt_status_support, &Globals.bNTStatusSupport)
@@ -911,9 +900,9 @@ _PUBLIC_ FN_GLOBAL_INTEGER(lp_cli_minprotocol, &Globals.cli_minprotocol)
 _PUBLIC_ FN_GLOBAL_INTEGER(lp_security, &Globals.security)
 _PUBLIC_ FN_GLOBAL_LIST(lp_auth_methods, &Globals.AuthMethods)
 _PUBLIC_ FN_GLOBAL_BOOL(lp_paranoid_server_security, &Globals.paranoid_server_security)
-static FN_GLOBAL_INTEGER(lp_announce_as, &Globals.announce_as)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_announce_as, &Globals.announce_as)
 _PUBLIC_ FN_GLOBAL_LIST(lp_js_include, &Globals.jsInclude)
-_PUBLIC_ FN_GLOBAL_STRING(lp_jsonrpc_base, &Globals.jsonrpcBase)
+_PUBLIC_ FN_GLOBAL_STRING(lp_jsonrpc_services_dir, &Globals.jsonrpcServicesDir)
 _PUBLIC_ 
 _PUBLIC_ 
 _PUBLIC_ FN_LOCAL_STRING(lp_servicename, szService)
@@ -1372,8 +1361,6 @@ BOOL lp_add_printer(const char *pszPrintername, int iDefaultService)
 
        DEBUG(3, ("adding printer service %s\n", pszPrintername));
 
-       update_server_announce_as_printserver();
-
        return (True);
 }
 
@@ -1553,7 +1540,6 @@ static BOOL service_ok(int iService)
                        DEBUG(0, ("WARNING: [%s] service MUST be printable!\n",
                               ServicePtrs[iService]->szService));
                        ServicePtrs[iService]->bPrint_ok = True;
-                       update_server_announce_as_printserver();
                }
                /* [printers] service must also be non-browsable. */
                if (ServicePtrs[iService]->bBrowseable)
@@ -2379,15 +2365,6 @@ static void lp_add_auto_services(const char *str)
        return;
 }
 
-/***************************************************************************
- Announce ourselves as a print server.
-***************************************************************************/
-
-void update_server_announce_as_printserver(void)
-{
-       default_server_announce |= SV_TYPE_PRINTQ_SERVER;       
-}
-
 /***************************************************************************
  Have we loaded a services file yet?
 ***************************************************************************/
@@ -2477,8 +2454,6 @@ BOOL lp_load(void)
        lp_add_hidden("IPC$", "IPC");
        lp_add_hidden("ADMIN$", "DISK");
 
-       set_default_server_announce_type();
-
        bLoaded = True;
 
        if (!Globals.szWINSservers && Globals.bWINSsupport) {
@@ -2602,83 +2577,13 @@ const char *volume_label(int snum)
 }
 
 
-/*******************************************************************
- Set the server type we will announce as via nmbd.
-********************************************************************/
-
-static void set_default_server_announce_type(void)
-{
-       default_server_announce = 0;
-       default_server_announce |= SV_TYPE_WORKSTATION;
-       default_server_announce |= SV_TYPE_SERVER;
-       default_server_announce |= SV_TYPE_SERVER_UNIX;
-
-       switch (lp_announce_as()) {
-               case ANNOUNCE_AS_NT_SERVER:
-                       default_server_announce |= SV_TYPE_SERVER_NT;
-                       /* fall through... */
-               case ANNOUNCE_AS_NT_WORKSTATION:
-                       default_server_announce |= SV_TYPE_NT;
-                       break;
-               case ANNOUNCE_AS_WIN95:
-                       default_server_announce |= SV_TYPE_WIN95_PLUS;
-                       break;
-               case ANNOUNCE_AS_WFW:
-                       default_server_announce |= SV_TYPE_WFW;
-                       break;
-               default:
-                       break;
-       }
-
-       switch (lp_server_role()) {
-               case ROLE_DOMAIN_MEMBER:
-                       default_server_announce |= SV_TYPE_DOMAIN_MEMBER;
-                       break;
-               case ROLE_DOMAIN_PDC:
-                       default_server_announce |= SV_TYPE_DOMAIN_CTRL;
-                       break;
-               case ROLE_DOMAIN_BDC:
-                       default_server_announce |= SV_TYPE_DOMAIN_BAKCTRL;
-                       break;
-               case ROLE_STANDALONE:
-               default:
-                       break;
-       }
-       if (lp_time_server())
-               default_server_announce |= SV_TYPE_TIME_SOURCE;
-
-       if (lp_host_msdfs())
-               default_server_announce |= SV_TYPE_DFS_SERVER;
-
-       /* TODO: only announce us as print server when we are a print server */
-       default_server_announce |= SV_TYPE_PRINTQ_SERVER;
-}
-
-/***********************************************************
- If we are PDC then prefer us as DMB
-************************************************************/
-
-BOOL lp_domain_master(void)
-{
-       return (lp_server_role() == ROLE_DOMAIN_PDC);
-}
-
 /***********************************************************
  If we are PDC then prefer us as DMB
 ************************************************************/
 
 BOOL lp_domain_logons(void)
 {
-       return (lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC);
-}
-
-/***********************************************************
- If we are DMB then prefer us as LMB
-************************************************************/
-
-BOOL lp_preferred_master(void)
-{
-       return (lp_local_master() && lp_domain_master());
+       return (lp_server_role() == ROLE_DOMAIN_CONTROLLER);
 }
 
 /*******************************************************************
@@ -2705,15 +2610,6 @@ void lp_copy_service(int snum, const char *new_name)
        }
 }
 
-
-/*******************************************************************
- Get the default server type we will announce as via nmbd.
-********************************************************************/
-int lp_default_server_announce(void)
-{
-       return default_server_announce;
-}
-
 const char *lp_printername(int snum)
 {
        const char *ret = _lp_printername(snum);