* non-source3 code
*/
#define handle_netbios_aliases NULL
-#define handle_printing NULL
#define handle_ldap_debug_level NULL
#define handle_idmap_backend NULL
#define handle_idmap_uid NULL
return lpcfg_string_set(lp_ctx, ptr, pszParmValue);
}
+bool handle_printing(struct loadparm_context *lp_ctx, int snum,
+ const char *pszParmValue, char **ptr)
+{
+ static int parm_num = -1;
+ struct loadparm_service *s;
+
+ if (parm_num == -1) {
+ parm_num = lpcfg_map_parameter("printing");
+ }
+
+ if (!lp_set_enum_parm(&parm_table[parm_num], pszParmValue, (int*)ptr)) {
+ return false;
+ }
+
+ if (lp_ctx->s3_fns) {
+ if ( snum < 0 ) {
+ s = lp_ctx->sDefault;
+ lp_ctx->s3_fns->init_printer_values(lp_ctx->globals->ctx, s);
+ } else {
+ s = lp_ctx->services[snum];
+ lp_ctx->s3_fns->init_printer_values(s, s);
+ }
+ }
+
+ return true;
+}
+
+
/***************************************************************************
Initialise a copymap.
***************************************************************************/
bool lp_string_set(char **, const char *);
int getservicebyname(const char *, struct loadparm_service *);
bool lp_include(struct loadparm_context *, int, const char *, char **);
+void init_printer_values(TALLOC_CTX *, struct loadparm_service *);
/**
* Check if two parameters are equal.
char * (*lp_string)(TALLOC_CTX *ctx, const char *in);
bool (*lp_string_set)(char **dest, const char *src);
bool (*lp_include)(struct loadparm_context*, int, const char *, char **);
+ void (*init_printer_values)(TALLOC_CTX *, struct loadparm_service *);
struct loadparm_global *globals;
};
static bool handle_idmap_uid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
static bool handle_idmap_gid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
static bool handle_netbios_aliases(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
-static bool handle_printing(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
static bool handle_ldap_debug_level(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
static void set_allowed_client_auth(void);
Initialise the sDefault parameter structure for the printer values.
***************************************************************************/
-static void init_printer_values(TALLOC_CTX *ctx, struct loadparm_service *pService)
+void init_printer_values(TALLOC_CTX *ctx, struct loadparm_service *pService)
{
/* choose defaults depending on the type of printing */
switch (pService->printing) {
return lp_string(ctx, Globals.ldap_suffix);
}
-/***************************************************************************
-***************************************************************************/
-
-static bool handle_printing(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
-{
- static int parm_num = -1;
- struct loadparm_service *s;
-
- if ( parm_num == -1 )
- parm_num = lpcfg_map_parameter( "printing" );
-
- if (!lp_set_enum_parm(&parm_table[parm_num], pszParmValue, (int*)ptr)) {
- return false;
- }
-
- if ( snum < 0 ) {
- s = &sDefault;
- init_printer_values(Globals.ctx, s);
- } else {
- s = ServicePtrs[snum];
- init_printer_values(s, s);
- }
-
- return true;
-}
-
/**
return the parameter pointer for a parameter
*/
.lp_string = lp_string,
.lp_string_set = lp_string_set,
.lp_include = lp_include,
+ .init_printer_values = init_printer_values,
};
const struct loadparm_s3_helpers *loadparm_s3_helpers(void)