diff options
Diffstat (limited to 'package/webif/src/bstrip.c')
-rw-r--r-- | package/webif/src/bstrip.c | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/package/webif/src/bstrip.c b/package/webif/src/bstrip.c deleted file mode 100644 index 1e17d4e00..000000000 --- a/package/webif/src/bstrip.c +++ /dev/null @@ -1,75 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define BUF_SIZE 1024 -#define READ_LEN 14 - -static int read_len = READ_LEN; -static char rbuf[32]; -static char rbuflen = 0; - -int do_gets(char *buf) -{ - int r = 0, c = 0; - char *m; - - if (rbuflen > 0) - memcpy(buf, rbuf, rbuflen); - c += rbuflen; - - while ((c + read_len < BUF_SIZE) && ((r = read(0, &buf[c], read_len)) > 0)) { - m = NULL; - - if ((m = memchr(&buf[c], '\n', r)) != NULL) { - rbuflen = r - (m - &buf[c] + 1); - if (rbuflen > 0) - memcpy(rbuf, m + 1, rbuflen); - c += m - &buf[c] + 1; - } else { - rbuflen = 0; - c += r; - } - - if ((c > 3) && (memcmp(&buf[c - 3], "---", 3) == 0)) - read_len = 1; - - if (m != NULL) - return c; - } - - return c; -} - -int main(int argc, char **argv) -{ - char buf[BUF_SIZE]; - char buf1[BUF_SIZE]; - char *tmp; - int len, r = 0, r1 = 0; - - if (argc != 2) { - fprintf(stderr, "Syntax: %s (name|data <boundary>)\n", argv[0]); - exit(1); - } - while (tmp = strchr(argv[1], '\r')) - *tmp = 0; - - len = strlen(argv[1]); - - *buf = 0; - while ((strncmp(buf, argv[1], len) != 0) && - (strncmp(buf + 2, argv[1], len) != 0)) { - if (r > 0) { - if (r1 > 0) - write (1, buf1, r1); - r1 = r; - memcpy(buf1, buf, r); - } - if ((r = do_gets(buf)) <= 0) - exit(1); - } - - if (r1 > 2) - write(1, buf1, r1 - 2); -} |