summaryrefslogtreecommitdiff
path: root/lib/util/charset
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2017-04-11 15:42:39 -0700
committerAndreas Schneider <asn@cryptomilk.org>2017-04-18 11:47:17 +0200
commitc28e2c937a6223c49221315384c01074a00161eb (patch)
treea3b8c80ea6979a89a9967be0ea7bef367fba7165 /lib/util/charset
parent3afbdb7a0e5c5e4bacc40f80ad0e8981b0af4b88 (diff)
downloadsamba-c28e2c937a6223c49221315384c01074a00161eb.tar.gz
lib:charset: Add utility functions reinit_iconv_handle() and free_iconv_handle(void)
Not yet used. Will enable us to make global_iconv_handle private. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'lib/util/charset')
-rw-r--r--lib/util/charset/charset.h5
-rw-r--r--lib/util/charset/codepoints.c18
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h
index ca7a4377455..750071491f0 100644
--- a/lib/util/charset/charset.h
+++ b/lib/util/charset/charset.h
@@ -170,6 +170,11 @@ struct smb_iconv_handle *get_iconv_testing_handle(TALLOC_CTX *mem_ctx,
const char *dos_charset,
const char *unix_charset,
bool use_builtin_handlers);
+struct smb_iconv_handle *reinit_iconv_handle(TALLOC_CTX *mem_ctx,
+ const char *dos_charset,
+ const char *unix_charset);
+void free_iconv_handle(void);
+
smb_iconv_t get_conv_handle(struct smb_iconv_handle *ic,
charset_t from, charset_t to);
const char *charset_name(struct smb_iconv_handle *ic, charset_t ch);
diff --git a/lib/util/charset/codepoints.c b/lib/util/charset/codepoints.c
index cfb0b27fcc1..358ae3b1cbf 100644
--- a/lib/util/charset/codepoints.c
+++ b/lib/util/charset/codepoints.c
@@ -16521,6 +16521,24 @@ struct smb_iconv_handle *get_iconv_testing_handle(TALLOC_CTX *mem_ctx,
dos_charset, unix_charset, use_builtin_handlers, NULL);
}
+struct smb_iconv_handle *reinit_iconv_handle(TALLOC_CTX *mem_ctx,
+ const char *dos_charset,
+ const char *unix_charset)
+{
+ global_iconv_handle =
+ smb_iconv_handle_reinit(mem_ctx,
+ dos_charset,
+ unix_charset,
+ true,
+ global_iconv_handle);
+ return global_iconv_handle;
+}
+
+void free_iconv_handle(void)
+{
+ TALLOC_FREE(global_iconv_handle);
+}
+
/**
* Return the name of a charset to give to iconv().
**/