s4:param remove reference to private header from source4/param/param.h
[kai/samba.git] / source4 / param / param.h
index 0b276cdff20f60e38c2fe10e93eb75c7c30c0e39..52224252a0a0b089c41c918065e7e1228618e3e8 100644 (file)
 #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;
@@ -34,7 +29,7 @@ struct param_context {
 struct param_section {
        const char *name;
        struct param_section *prev, *next;
-       struct param_opt *parameters;
+       struct parmlist *parameters;
 };
 
 struct param_context;
@@ -44,12 +39,23 @@ struct smbsrv_connection;
 
 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,
@@ -60,14 +66,15 @@ enum announce_as {/* Types of machine we can announce as. */
 struct loadparm_context;
 struct loadparm_service;
 struct smbcli_options;
+struct smbcli_session_options;
+struct gensec_settings;
 
 void reload_charcnv(struct loadparm_context *lp_ctx);
 
-extern 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 *);
@@ -77,11 +84,11 @@ 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 *);
-const char *lp_tls_keyfile(struct loadparm_context *);
-const char *lp_tls_certfile(struct loadparm_context *);
-const char *lp_tls_cafile(struct loadparm_context *);
-const char *lp_tls_crlfile(struct loadparm_context *);
-const char *lp_tls_dhpfile(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 *);
+char *lp_tls_cafile(TALLOC_CTX *mem_ctx, struct loadparm_context *);
+char *lp_tls_crlfile(TALLOC_CTX *mem_ctx, struct loadparm_context *);
+char *lp_tls_dhpfile(TALLOC_CTX *mem_ctx, struct loadparm_context *);
 const char *lp_share_backend(struct loadparm_context *);
 const char *lp_sam_url(struct loadparm_context *);
 const char *lp_idmap_url(struct loadparm_context *);
@@ -91,6 +98,7 @@ const char *lp_wins_config_url(struct loadparm_context *);
 const char *lp_wins_url(struct loadparm_context *);
 const char *lp_winbind_separator(struct loadparm_context *);
 const char *lp_winbindd_socket_directory(struct loadparm_context *);
+const char *lp_winbindd_privileged_socket_directory(struct loadparm_context *);
 const char *lp_template_shell(struct loadparm_context *);
 const char *lp_template_homedir(struct loadparm_context *);
 bool lp_winbind_sealed_pipes(struct loadparm_context *);
@@ -113,6 +121,7 @@ const char *lp_passwd_chat(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 *);
@@ -158,7 +167,6 @@ int lp_cli_minprotocol(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 *);
@@ -186,6 +194,9 @@ int lp_dir_mask(struct loadparm_service *, struct loadparm_service *);
 int lp_force_dir_mode(struct loadparm_service *, struct loadparm_service *);
 int lp_server_signing(struct loadparm_context *);
 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);
@@ -270,6 +281,7 @@ void lp_killunused(struct loadparm_context *lp_ctx,
 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.
@@ -315,15 +327,20 @@ int lp_maxprintjobs(struct loadparm_service *service, struct loadparm_service *s
 struct smb_iconv_convenience *lp_iconv_convenience(struct loadparm_context *lp_ctx);
 void lp_smbcli_options(struct loadparm_context *lp_ctx,
                         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);
@@ -347,6 +364,9 @@ int param_write(struct param_context *ctx, const char *fn);
 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
@@ -419,6 +439,8 @@ const char *lp_messaging_path(TALLOC_CTX *mem_ctx,
 struct smb_iconv_convenience *smb_iconv_convenience_init_lp(TALLOC_CTX *mem_ctx,
                                                         struct loadparm_context *lp_ctx);
 
+const char *lp_sam_name(struct loadparm_context *lp_ctx);
+
 /* The following definitions come from lib/version.c  */
 
 const char *samba_version_string(void);