|
|
@@ -48,6 +48,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
|
|
#include "common.h"
|
|
|
#include "netutils.h"
|
|
|
#include "utils.h"
|
|
|
+#include "base64.h"
|
|
|
|
|
|
#define INPUT_DELIMITER ";"
|
|
|
|
|
|
@@ -125,7 +126,6 @@ char *http_content_type;
|
|
|
char buffer[MAX_INPUT_BUFFER];
|
|
|
|
|
|
int process_arguments (int, char **);
|
|
|
-static char *base64 (const char *bin, size_t len);
|
|
|
int check_http (void);
|
|
|
void redir (char *pos, char *status_line);
|
|
|
int server_type_check(const char *type);
|
|
|
@@ -455,49 +455,6 @@ process_arguments (int argc, char **argv)
|
|
|
|
|
|
|
|
|
|
|
|
-/* written by lauri alanko */
|
|
|
-static char *
|
|
|
-base64 (const char *bin, size_t len)
|
|
|
-{
|
|
|
-
|
|
|
- char *buf = (char *) malloc ((len + 2) / 3 * 4 + 1);
|
|
|
- size_t i = 0, j = 0;
|
|
|
-
|
|
|
- char BASE64_END = '=';
|
|
|
- char base64_table[64];
|
|
|
- strncpy (base64_table, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", 64);
|
|
|
-
|
|
|
- while (j < len - 2) {
|
|
|
- buf[i++] = base64_table[bin[j] >> 2];
|
|
|
- buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
|
|
- buf[i++] = base64_table[((bin[j + 1] & 15) << 2) | (bin[j + 2] >> 6)];
|
|
|
- buf[i++] = base64_table[bin[j + 2] & 63];
|
|
|
- j += 3;
|
|
|
- }
|
|
|
-
|
|
|
- switch (len - j) {
|
|
|
- case 1:
|
|
|
- buf[i++] = base64_table[bin[j] >> 2];
|
|
|
- buf[i++] = base64_table[(bin[j] & 3) << 4];
|
|
|
- buf[i++] = BASE64_END;
|
|
|
- buf[i++] = BASE64_END;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- buf[i++] = base64_table[bin[j] >> 2];
|
|
|
- buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
|
|
- buf[i++] = base64_table[(bin[j + 1] & 15) << 2];
|
|
|
- buf[i++] = BASE64_END;
|
|
|
- break;
|
|
|
- case 0:
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- buf[i] = '\0';
|
|
|
- return buf;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
/* Returns 1 if we're done processing the document body; 0 to keep going */
|
|
|
static int
|
|
|
document_headers_done (char *full_page)
|