*/
#include "includes.h"
+#include "dynconfig.h"
#include "system/time.h"
#include "system/iconv.h"
#include "system/network.h"
+#include "system/printing.h"
#include "librpc/gen_ndr/ndr_svcctl.h"
+#include "dlinklist.h"
BOOL in_client = False; /* Not in the client by default */
static BOOL bLoaded = False;
{-1, NULL}
};
-static const struct enum_list enum_case[] = {
- {CASE_LOWER, "lower"},
- {CASE_UPPER, "upper"},
- {-1, NULL}
-};
-
static const struct enum_list enum_bool_auto[] = {
{False, "No"},
{False, "False"},
static void init_globals(void)
{
int i;
+ char *myname;
DEBUG(3, ("Initialising global parameters\n"));
do_parameter("socket options", "TCP_NODELAY");
#endif
do_parameter("workgroup", DEFAULT_WORKGROUP);
- do_parameter("netbios name", get_myname());
+ myname = get_myname();
+ do_parameter("netbios name", myname);
+ SAFE_FREE(myname);
do_parameter("max protocol", "NT1");
do_parameter("name resolve order", "lmhosts wins host bcast");
do_parameter("fstype", FSTYPE_STRING);
do_parameter("ntvfs handler", "unixuid default");
- do_parameter("dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg");
+ do_parameter("dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg IOXIDResolver IRemoteActivation");
do_parameter("server services", "smb rpc");
- do_parameter("auth methods", "guest sam_ignoredomain");
+ do_parameter("auth methods", "anonymous sam_ignoredomain");
do_parameter("smb passwd file", dyn_SMB_PASSWD_FILE);
do_parameter("private dir", dyn_PRIVATE_DIR);
do_parameter_var("sam database", "tdb://%s/sam.ldb", dyn_PRIVATE_DIR);
FN_GLOBAL_LIST(lp_wins_server_list, &Globals.szWINSservers)
FN_GLOBAL_LIST(lp_interfaces, &Globals.szInterfaces)
FN_GLOBAL_STRING(lp_socket_address, &Globals.szSocketAddress)
-static FN_GLOBAL_STRING(lp_announce_version, &Globals.szAnnounceVersion)
FN_GLOBAL_LIST(lp_netbios_aliases, &Globals.szNetbiosAliases)
FN_GLOBAL_LIST(lp_preload_modules, &Globals.szPreloadModules)
FN_GLOBAL_STRING(lp_panic_action, &Globals.szPanicAction)
/* Return parametric option from a given service. Type is a part of option before ':' */
/* Parametric option has following syntax: 'Type: option = value' */
-int lp_parm_int(int lookup_service, const char *type, const char *option)
+int lp_parm_int(int lookup_service, const char *type, const char *option, int default_v)
{
const char *value = get_parametrics(lookup_service, type, option);
if (value)
return lp_int(value);
- return (-1);
+ return default_v;
}
/* Return parametric option from a given service. Type is a part of option before ':' */
/* Parametric option has following syntax: 'Type: option = value' */
-unsigned long lp_parm_ulong(int lookup_service, const char *type, const char *option)
+unsigned long lp_parm_ulong(int lookup_service, const char *type, const char *option, unsigned long default_v)
{
const char *value = get_parametrics(lookup_service, type, option);
if (value)
return lp_ulong(value);
- return (0);
+ return default_v;
}
/* Return parametric option from a given service. Type is a part of option before ':' */
if (i == iNumServices) {
service **tsp;
- tsp = (service **) Realloc(ServicePtrs,
- sizeof(service *) *
- num_to_alloc);
+ tsp = realloc_p(ServicePtrs, service *, num_to_alloc);
if (!tsp) {
DEBUG(0,("add_a_service: failed to enlarge ServicePtrs!\n"));
}
else {
ServicePtrs = tsp;
- ServicePtrs[iNumServices] =
- (service *) malloc(sizeof(service));
+ ServicePtrs[iNumServices] = malloc_p(service);
}
if (!ServicePtrs[iNumServices]) {
DEBUG(0,("add_a_service: out of memory!\n"));
pdata = pdata->next;
}
if (not_added) {
- paramo = smb_xmalloc(sizeof(*paramo));
+ paramo = smb_xmalloc_p(struct param_opt);
paramo->key = strdup(data->key);
paramo->value = strdup(data->value);
DLIST_ADD(pserviceDest->param_opt, paramo);
}
if (!f) {
- f = (struct file_lists *)malloc(sizeof(file_lists[0]));
+ f = malloc_p(struct file_lists);
if (!f)
return;
f->next = file_lists;
{
int i;
SAFE_FREE(pservice->copymap);
- pservice->copymap = (BOOL *)malloc(sizeof(BOOL) * NUMPARAMETERS);
+ pservice->copymap = malloc_array_p(BOOL, NUMPARAMETERS);
if (!pservice->copymap)
DEBUG(0,
("Couldn't allocate copymap!! (size %d)\n",
}
}
- paramo = smb_xmalloc(sizeof(*paramo));
+ paramo = smb_xmalloc_p(struct param_opt);
paramo->key = strdup(name);
paramo->value = strdup(pszParmValue);
paramo->flags = flags;
}
-#if 0
-/***************************************************************************
- Display the contents of a single copy structure.
-***************************************************************************/
-static void dump_copy_map(BOOL *pcopymap)
-{
- int i;
- if (!pcopymap)
- return;
-
- printf("\n\tNon-Copied parameters:\n");
-
- for (i = 0; parm_table[i].label; i++)
- if (parm_table[i].class == P_LOCAL &&
- parm_table[i].ptr && !pcopymap[i] &&
- (i == 0 || (parm_table[i].ptr != parm_table[i - 1].ptr)))
- {
- printf("\t\t%s\n", parm_table[i].label);
- }
-}
-#endif
-
/***************************************************************************
Return TRUE if the passed service number is within range.
***************************************************************************/
lp_do_parameter(-1, "wins server", "127.0.0.1");
}
+ lp_do_parameter(-1, "gensec:krb5", "False");
+ lp_do_parameter(-1, "gensec:ms_krb5", "False");
+
init_iconv();
return (bRetval);
/*******************************************************************
Get the default server type we will announce as via nmbd.
********************************************************************/
-
int lp_default_server_announce(void)
{
return default_server_announce;
}
-/*******************************************************************
- Split the announce version into major and minor numbers.
-********************************************************************/
-
-int lp_major_announce_version(void)
-{
- static BOOL got_major = False;
- static int major_version = DEFAULT_MAJOR_VERSION;
- const char *vers;
- char *p;
-
- if (got_major)
- return major_version;
-
- got_major = True;
- if ((vers = lp_announce_version()) == NULL)
- return major_version;
-
- if ((p = strchr_m(vers, '.')) == 0)
- return major_version;
-
- *p = '\0';
- major_version = atoi(vers);
- return major_version;
-}
-
-int lp_minor_announce_version(void)
-{
- static BOOL got_minor = False;
- static int minor_version = DEFAULT_MINOR_VERSION;
- const char *vers;
- char *p;
-
- if (got_minor)
- return minor_version;
-
- got_minor = True;
- if ((vers = lp_announce_version()) == NULL)
- return minor_version;
-
- if ((p = strchr_m(vers, '.')) == 0)
- return minor_version;
-
- p++;
- minor_version = atoi(p);
- return minor_version;
-}
-
const char *lp_printername(int snum)
{
const char *ret = _lp_printername(snum);