diff options
Diffstat (limited to 'sqmail-4.3.07/src/headerbody.c')
-rw-r--r-- | sqmail-4.3.07/src/headerbody.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/sqmail-4.3.07/src/headerbody.c b/sqmail-4.3.07/src/headerbody.c deleted file mode 100644 index 82c5684..0000000 --- a/sqmail-4.3.07/src/headerbody.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "stralloc.h" -#include "buffer.h" -#include "getln.h" -#include "hfield.h" -#include "headerbody.h" - -static int getsa(buffer *b,stralloc *sa,int *match) -{ - if (!*match) return 0; - if (getln(b,sa,match,'\n') == -1) return -1; - if (*match) return 1; - if (!sa->len) return 0; - if (!stralloc_append(sa,"\n")) return -1; - - return 1; -} - -static stralloc line = {0}; -static stralloc nextline = {0}; - -int headerbody(b,dohf,hdone,dobl) -buffer *b; -void (*dohf)(); -void (*hdone)(); -void (*dobl)(); -{ - int match; - int flaglineok; - match = 1; - flaglineok = 0; - - for (;;) { - switch (getsa(b,&nextline,&match)) { - case -1: - return -1; - case 0: - if (flaglineok) dohf(&line); - hdone(); - /* no message body; could insert blank line here */ - return 0; - } - - if (flaglineok) { - if ((nextline.s[0] == ' ') || (nextline.s[0] == '\t')) { - if (!stralloc_cat(&line,&nextline)) return -1; - continue; - } - dohf(&line); - } - - if (nextline.len == 1) { - hdone(); - dobl(&nextline); - break; - } - - if (stralloc_starts(&nextline,"From ")) { - if (!stralloc_copys(&line,"MBOX-Line: ")) return -1; - if (!stralloc_cat(&line,&nextline)) return -1; - } else if (hfield_valid(nextline.s,nextline.len)) { - if (!stralloc_copy(&line,&nextline)) return -1; - } else { - hdone(); - if (!stralloc_copys(&line,"\n")) return -1; - dobl(&line); - dobl(&nextline); - break; - } - flaglineok = 1; - } - - for (;;) - switch (getsa(b,&nextline,&match)) { - case -1: return -1; - case 0: return 0; - case 1: dobl(&nextline); - } -} |