X-Git-Url: http://git.samba.org/samba.git/?p=jra%2Fsamba%2F.git;a=blobdiff_plain;f=source4%2Fparam%2Floadparm.c;h=5094a7f565056483728ec1fa6d8b90469d3ec60e;hp=55d15653f6d19b8181aa6c040ab34c8c093fa4cd;hb=d471e52d23bf89e472c34c58dd9f113e669323a4;hpb=89fbfd74605593893d38f70e2db66419f87e4d5c diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c index 55d15653f6d..5094a7f5650 100644 --- a/source4/param/loadparm.c +++ b/source4/param/loadparm.c @@ -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,6 +112,7 @@ typedef struct char *szWINS_URL; char *szPrivateDir; char **jsInclude; + char *jsonrpcServicesDir; char **szPasswordServers; char *szSocketOptions; char *szRealm; @@ -273,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)) @@ -281,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"}, @@ -300,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"}, @@ -364,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} }; @@ -542,6 +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 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}, @@ -705,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); @@ -883,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) @@ -909,8 +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_services_dir, &Globals.jsonrpcServicesDir) _PUBLIC_ _PUBLIC_ _PUBLIC_ FN_LOCAL_STRING(lp_servicename, szService) @@ -1369,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); } @@ -1550,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) @@ -1861,11 +1850,14 @@ BOOL lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue /* now switch on the type of variable it is */ switch (parm_table[parmnum].type) { - case P_BOOL: - if (!set_boolean(pszParmValue, parm_ptr)) { + case P_BOOL: { + BOOL b; + if (!set_boolean(pszParmValue, &b)) { DEBUG(0,("lp_do_parameter(%s): value is not boolean!\n", pszParmValue)); return False; } + *(int *)parm_ptr = b; + } break; case P_INTEGER: @@ -2373,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? ***************************************************************************/ @@ -2471,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) { @@ -2596,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); } /******************************************************************* @@ -2699,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);