httpd: code shrink

Use decode_base64() from uuencode.c when uudecode/base64 applets are included.
That function is bigger than httpd's decodeBase64(), so we use the old one when
those applets are disabled. Bloat-o-meter when one of those is enabled:

function                                             old     new   delta
handle_incoming_and_exit                            2371    2265    -106

Signed-off-by: Xabier Oneca <xoneca@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Xabier Oneca 2020-10-06 02:32:12 +02:00 committed by Denys Vlasenko
parent eecd6f7a6c
commit 535a509846

View File

@ -1017,6 +1017,12 @@ static char *encodeString(const char *string)
*/ */
static void decodeBase64(char *Data) static void decodeBase64(char *Data)
{ {
# if ENABLE_BASE64 || ENABLE_UUDECODE
/* Call decode_base64() from uuencode.c */
char *eptr = Data;
decode_base64(&eptr, Data);
*eptr = '\0';
# else
const unsigned char *in = (const unsigned char *)Data; const unsigned char *in = (const unsigned char *)Data;
/* The decoded size will be at most 3/4 the size of the encoded */ /* The decoded size will be at most 3/4 the size of the encoded */
unsigned ch = 0; unsigned ch = 0;
@ -1050,6 +1056,7 @@ static void decodeBase64(char *Data)
} }
} }
*Data = '\0'; *Data = '\0';
# endif
} }
#endif #endif