Remove dependency of charset code on loadparm.
authorJelmer Vernooij <jelmer@samba.org>
Fri, 24 Oct 2008 12:45:31 +0000 (14:45 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Fri, 24 Oct 2008 12:45:31 +0000 (14:45 +0200)
lib/util/charset/charset.h
lib/util/charset/util_unistr.c
source4/param/loadparm.c

index 56fa36faf3c3b698516114214d3730eeae1812e6..51e019317316a89c3fcc049acb7ccfda8a517d64 100644 (file)
@@ -122,6 +122,7 @@ ssize_t convert_string(charset_t from, charset_t to,
                                void const *src, size_t srclen, 
                                void *dest, size_t destlen);
 
+extern struct smb_iconv_convenience *global_iconv_convenience;
 
 /* codepoints */
 codepoint_t next_codepoint(struct smb_iconv_convenience *ic, 
index 91d0be109ac78551b4e4205e9350f3301585e215..a40b4298a42d3b397d812a5d2b85181de1a9a962 100644 (file)
 
 #include "includes.h"
 #include "system/locale.h"
-#include "param/param.h"
+
+struct smb_iconv_convenience *global_iconv_convenience = NULL;
 
 static inline struct smb_iconv_convenience *get_iconv_convenience(void)
 {
-       return lp_iconv_convenience(global_loadparm);
+       if (global_iconv_convenience == NULL)
+               global_iconv_convenience = smb_iconv_convenience_init(talloc_autofree_context(), "ASCII", "UTF-8", true);
+       return global_iconv_convenience;
 }
 
 /**
index fb8afe456cd740e627feaf10739ae6e5bd08c212..a019c951de7eb76004c4c6dcb6996f67c894f5cb 100644 (file)
@@ -2608,7 +2608,7 @@ struct smb_iconv_convenience *lp_iconv_convenience(struct loadparm_context *lp_c
 _PUBLIC_ void reload_charcnv(struct loadparm_context *lp_ctx)
 {
        talloc_free(lp_ctx->iconv_convenience);
-       lp_ctx->iconv_convenience = smb_iconv_convenience_init_lp(lp_ctx, lp_ctx);
+       global_iconv_convenience = lp_ctx->iconv_convenience = smb_iconv_convenience_init_lp(lp_ctx, lp_ctx);
 }
 
 void lp_smbcli_options(struct loadparm_context *lp_ctx,