#ifndef _PARAM_H /* _PARAM_H */
#define _PARAM_H
-struct param_opt {
- struct param_opt *prev, *next;
- char *key;
- char *value;
- int flags;
-};
+struct parmlist_entry;
struct param_context {
struct param_section *sections;
struct param_section {
const char *name;
struct param_section *prev, *next;
- struct param_opt *parameters;
+ struct parmlist *parameters;
};
struct param_context;
typedef NTSTATUS (*init_module_fn) (void);
+/* this needs to be a string which is not in the C library. We
+ previously used "init_module", but that meant that modules which
+ did not define this function ended up calling the C library
+ function init_module() which makes a system call */
+#define SAMBA_INIT_MODULE "samba_init_module"
+
enum server_role {
ROLE_STANDALONE=0,
ROLE_DOMAIN_MEMBER=1,
ROLE_DOMAIN_CONTROLLER=2,
};
+enum sid_generator {
+ SID_GENERATOR_INTERNAL=0,
+ SID_GENERATOR_BACKEND=1,
+};
+
enum announce_as {/* Types of machine we can announce as. */
ANNOUNCE_AS_NT_SERVER=1,
ANNOUNCE_AS_WIN95=2,
struct loadparm_service;
struct smbcli_options;
struct smbcli_session_options;
+struct gensec_settings;
void reload_charcnv(struct loadparm_context *lp_ctx);
-extern _DEPRECATED_ struct loadparm_context *global_loadparm;
-
struct loadparm_service *lp_default_service(struct loadparm_context *lp_ctx);
struct parm_struct *lp_parm_table(void);
int lp_server_role(struct loadparm_context *);
+int lp_sid_generator(struct loadparm_context *);
const char **lp_smb_ports(struct loadparm_context *);
int lp_nbt_port(struct loadparm_context *);
int lp_dgram_port(struct loadparm_context *);
int lp_krb5_port(struct loadparm_context *);
int lp_kpasswd_port(struct loadparm_context *);
int lp_web_port(struct loadparm_context *);
-const char *lp_swat_directory(struct loadparm_context *);
bool lp_tls_enabled(struct loadparm_context *);
char *lp_tls_keyfile(TALLOC_CTX *mem_ctx, struct loadparm_context *);
char *lp_tls_certfile(TALLOC_CTX *mem_ctx, struct loadparm_context *);
const char **lp_passwordserver(struct loadparm_context *);
const char **lp_name_resolve_order(struct loadparm_context *);
const char *lp_realm(struct loadparm_context *);
+const char *lp_dnsdomain(struct loadparm_context *);
const char *lp_socket_options(struct loadparm_context *);
const char *lp_workgroup(struct loadparm_context *);
const char *lp_netbios_name(struct loadparm_context *);
const char **lp_interfaces(struct loadparm_context *);
const char *lp_socket_address(struct loadparm_context *);
const char **lp_netbios_aliases(struct loadparm_context *);
+const char **lp_rndc_command(struct loadparm_context *);
+const char **lp_dns_update_command(struct loadparm_context *);
+const char **lp_spn_update_command(struct loadparm_context *);
bool lp_disable_netbios(struct loadparm_context *);
bool lp_wins_support(struct loadparm_context *);
bool lp_wins_dns_proxy(struct loadparm_context *);
int lp_security(struct loadparm_context *);
bool lp_paranoid_server_security(struct loadparm_context *);
int lp_announce_as(struct loadparm_context *);
-const char **lp_js_include(struct loadparm_context *);
const char *lp_servicename(const struct loadparm_service *service);
const char *lp_pathname(struct loadparm_service *, struct loadparm_service *);
int lp_client_signing(struct loadparm_context *);
const char *lp_ntp_signd_socket_directory(struct loadparm_context *);
+
const char *lp_get_parametric(struct loadparm_context *lp_ctx,
struct loadparm_service *service,
const char *type, const char *option);
struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx);
const char *lp_configfile(struct loadparm_context *lp_ctx);
bool lp_load_default(struct loadparm_context *lp_ctx);
+const char *lp_default_path(void);
/**
* Load the services array from the services file.
struct smbcli_options *options);
void lp_smbcli_session_options(struct loadparm_context *lp_ctx,
struct smbcli_session_options *options);
+struct dcerpc_server_info *lp_dcerpc_server_info(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx);
+struct gensec_settings *lp_gensec_settings(TALLOC_CTX *, struct loadparm_context *);
+
/* The following definitions come from param/generic.c */
struct param_section *param_get_section(struct param_context *ctx, const char *name);
-struct param_opt *param_section_get(struct param_section *section,
+struct parmlist_entry *param_section_get(struct param_section *section,
const char *name);
-struct param_opt *param_get (struct param_context *ctx, const char *name, const char *section_name);
+struct parmlist_entry *param_get (struct param_context *ctx, const char *name, const char *section_name);
struct param_section *param_add_section(struct param_context *ctx, const char *section_name);
-struct param_opt *param_get_add(struct param_context *ctx, const char *name, const char *section_name);
+struct parmlist_entry *param_get_add(struct param_context *ctx, const char *name, const char *section_name);
const char *param_get_string(struct param_context *ctx, const char *param, const char *section);
int param_set_string(struct param_context *ctx, const char *param, const char *value, const char *section);
const char **param_get_string_list(struct param_context *ctx, const char *param, const char *separator, const char *section);
bool lp_is_mydomain(struct loadparm_context *lp_ctx,
const char *domain);
+bool lp_is_my_domain_or_realm(struct loadparm_context *lp_ctx,
+ const char *domain);
+
/**
see if a string matches either our primary or one of our secondary
netbios aliases. do a case insensitive match
init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, const char *subsystem);
const char *lp_messaging_path(TALLOC_CTX *mem_ctx,
struct loadparm_context *lp_ctx);
-struct smb_iconv_convenience *smb_iconv_convenience_init_lp(TALLOC_CTX *mem_ctx,
- struct loadparm_context *lp_ctx);
+struct smb_iconv_convenience *smb_iconv_convenience_reinit_lp(TALLOC_CTX *mem_ctx,
+ struct loadparm_context *lp_ctx,
+ struct smb_iconv_convenience *old_ic);
+
+const char *lp_sam_name(struct loadparm_context *lp_ctx);
/* The following definitions come from lib/version.c */