summaryrefslogtreecommitdiff
path: root/source4/param/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/param/util.c')
-rw-r--r--source4/param/util.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source4/param/util.c b/source4/param/util.c
index 8d59861f40..1cbae841bc 100644
--- a/source4/param/util.c
+++ b/source4/param/util.c
@@ -283,3 +283,19 @@ _PUBLIC_ const char *lp_messaging_path(TALLOC_CTX *mem_ctx,
return smbd_tmp_path(mem_ctx, lp_ctx, "messaging");
}
+struct smb_iconv_convenience *global_smb_iconv_convenience = NULL;
+
+struct smb_iconv_convenience *smb_iconv_convenience_init_lp(TALLOC_CTX *mem_ctx,
+ struct loadparm_context *lp_ctx)
+{
+ return smb_iconv_convenience_init(mem_ctx, lp_dos_charset(lp_ctx),
+ lp_unix_charset(lp_ctx),
+ lp_display_charset(lp_ctx),
+ lp_parm_bool(lp_ctx, NULL, "iconv", "native", true));
+}
+
+_PUBLIC_ void reload_charcnv(void)
+{
+ talloc_free(global_smb_iconv_convenience);
+ global_smb_iconv_convenience = smb_iconv_convenience_init_lp(talloc_autofree_context(), global_loadparm);
+}