changeset 5509:c46a29e0ea9d HEAD

API change: Returns now 1 if ok, 0 if end of base64 marker found.
author Timo Sirainen <tss@iki.fi>
date Tue, 03 Apr 2007 20:42:30 +0300
parents d1168da66050
children 93e9e081855a
files src/lib/base64.c src/lib/base64.h
diffstat 2 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/base64.c	Tue Apr 03 20:40:02 2007 +0300
+++ b/src/lib/base64.c	Tue Apr 03 20:42:30 2007 +0300
@@ -111,6 +111,7 @@
 	unsigned char buf[4];
 	int c1, c2, c3, c4;
 	size_t size;
+	int ret = 1;
 
 	for (src_pos = 0; src_pos+3 < src_size; ) {
 		c1 = src_c[src_pos++];
@@ -154,6 +155,7 @@
 		buffer_append(dest, buf, size);
 		if (size < 3) {
 			/* end of base64 data */
+			ret = 0;
 			break;
 		}
 	}
@@ -166,5 +168,5 @@
 	if (src_pos_r != NULL)
 		*src_pos_r = src_pos;
 
-	return 0;
+	return ret;
 }
--- a/src/lib/base64.h	Tue Apr 03 20:40:02 2007 +0300
+++ b/src/lib/base64.h	Tue Apr 03 20:42:30 2007 +0300
@@ -5,7 +5,9 @@
 void base64_encode(const void *src, size_t src_size, buffer_t *dest);
 
 /* Translates base64 data into binary and appends it to dest buffer. dest may
-   point to same buffer as src. Returns 0 if all ok, -1 if data is invalid.
+   point to same buffer as src. Returns 1 if all ok, 0 if end of base64 data
+   found, -1 if data is invalid.
+
    Any CR, LF characters are ignored, as well as whitespace at beginning or
    end of line.