summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2011-04-11 20:15:53 +1000
committerAndrew Tridgell <tridge@samba.org>2011-04-13 14:47:07 +1000
commitcd63c9205e79df250c4d4fefb35c917701fd7db6 (patch)
tree1d4aa728471be12c9d0e84f4a52d9b885e9e634c
parent87d2722b84992b27b199d362ac4b9034b4697942 (diff)
downloadsamba-cd63c9205e79df250c4d4fefb35c917701fd7db6.tar.gz
samba-cd63c9205e79df250c4d4fefb35c917701fd7db6.tar.bz2
samba-cd63c9205e79df250c4d4fefb35c917701fd7db6.zip
lib/util/charset Fix and add public interface for convert_string_error_handle
It makes much more sense for this to match the source3/ interface and return a bool. Andrew Bartlett Signed-off-by: Andrew Tridgell <tridge@samba.org>
-rw-r--r--lib/util/charset/charcnv.c15
-rw-r--r--lib/util/charset/charset.h6
2 files changed, 14 insertions, 7 deletions
diff --git a/lib/util/charset/charcnv.c b/lib/util/charset/charcnv.c
index cefc788f79..998bb08fd7 100644
--- a/lib/util/charset/charcnv.c
+++ b/lib/util/charset/charcnv.c
@@ -124,10 +124,11 @@ convert:
* @returns the number of bytes occupied in the destination
* on error, returns -1, and sets errno
**/
-_PUBLIC_ ssize_t convert_string_error_handle(struct smb_iconv_handle *ic,
- charset_t from, charset_t to,
- void const *src, size_t srclen,
- void *dest, size_t destlen, size_t *converted_size)
+_PUBLIC_ bool convert_string_error_handle(struct smb_iconv_handle *ic,
+ charset_t from, charset_t to,
+ void const *src, size_t srclen,
+ void *dest, size_t destlen,
+ size_t *converted_size)
{
size_t i_len, o_len;
ssize_t retval;
@@ -154,7 +155,7 @@ _PUBLIC_ ssize_t convert_string_error_handle(struct smb_iconv_handle *ic,
if (converted_size != NULL)
*converted_size = destlen-o_len;
- return retval;
+ return (retval != (ssize_t)-1);
}
@@ -172,10 +173,10 @@ _PUBLIC_ bool convert_string_handle(struct smb_iconv_handle *ic,
void const *src, size_t srclen,
void *dest, size_t destlen, size_t *converted_size)
{
- ssize_t retval;
+ bool retval;
retval = convert_string_error_handle(ic, from, to, src, srclen, dest, destlen, converted_size);
- if(retval==(size_t)-1) {
+ if(retval==false) {
const char *reason;
switch(errno) {
case EINVAL:
diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h
index 3a6e6a3216..9e2aa8f136 100644
--- a/lib/util/charset/charset.h
+++ b/lib/util/charset/charset.h
@@ -222,6 +222,12 @@ bool convert_string_handle(struct smb_iconv_handle *ic,
charset_t from, charset_t to,
void const *src, size_t srclen,
void *dest, size_t destlen, size_t *converted_size);
+bool convert_string_error_handle(struct smb_iconv_handle *ic,
+ charset_t from, charset_t to,
+ void const *src, size_t srclen,
+ void *dest, size_t destlen,
+ size_t *converted_size);
+
bool convert_string_talloc_handle(TALLOC_CTX *ctx,
struct smb_iconv_handle *ic,
charset_t from, charset_t to,