#undef LOCAL_DEBUG
-#include "ucw/lib.h"
-#include "ucw/base64.h"
+#include <ucw/lib.h>
+#include <ucw/base64.h>
+#include <ucw/threads.h>
#include <string.h>
};
static const byte base64_pad = '=';
-uns
-base64_encode(byte *dest, const byte *src, uns len)
+uint
+base64_encode(byte *dest, const byte *src, uint len)
{
const byte *current = src;
- uns i = 0;
+ uint i = 0;
while (len > 2) { /* keep going until we have less than 24 bits */
dest[i++] = base64_table[current[0] >> 2];
}
/* as above, but backwards. :) */
-uns
-base64_decode(byte *dest, const byte *src, uns len)
+uint
+base64_decode(byte *dest, const byte *src, uint len)
{
const byte *current = src;
- uns ch;
- uns i = 0, j = 0;
+ uint ch;
+ uint i = 0, j = 0;
static byte reverse_table[256];
- static uns table_built = 0;
+ static uint table_built = 0;
if (table_built == 0) {
- byte *chp;
- table_built = 1;
+ ucwlib_lock();
for(ch = 0; ch < 256; ch++) {
- chp = strchr(base64_table, ch);
+ byte *chp = strchr(base64_table, ch);
if(chp) {
reverse_table[ch] = chp - base64_table;
} else {
reverse_table[ch] = 0xff;
}
}
+ table_built = 1;
+ ucwlib_unlock();
}
/* run through the whole string, converting as we go */