X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/39ecf70bb88f71d5e13015ba143b946ccd8f02b4..63621a81d16ab743de6b57d47578a9a2c670ad22:/uip/sendsbr.c diff --git a/uip/sendsbr.c b/uip/sendsbr.c index 7d54f43b..0af6f63a 100644 --- a/uip/sendsbr.c +++ b/uip/sendsbr.c @@ -24,9 +24,9 @@ #ifdef OAUTH_SUPPORT #include #endif -#include "../sbr/m_maildir.h" -#include "../sbr/m_mktemp.h" -#include "../sbr/message_id.h" +#include "sbr/m_maildir.h" +#include "sbr/m_mktemp.h" +#include "sbr/message_id.h" #ifdef OAUTH_SUPPORT static int setup_oauth_params(char *[], int *, const char *, const char **); @@ -198,7 +198,7 @@ splitmsg (char **vec, int vecp, char *program, char *drft, char subject[BUFSIZ]; char name[NAMESZ], partnum[BUFSIZ]; FILE *in; - m_getfld_state_t gstate = 0; + m_getfld_state_t gstate; if ((in = fopen (drft, "r")) == NULL) adios (drft, "unable to open for reading"); @@ -210,10 +210,11 @@ splitmsg (char **vec, int vecp, char *program, char *drft, * Scan through the message and examine the various header fields, * as well as locate the beginning of the message body. */ - m_getfld_track_filepos (&gstate, in); + gstate = m_getfld_state_init(in); + m_getfld_track_filepos2(&gstate); for (compnum = 1;;) { int bufsz = sizeof buffer; - switch (state = m_getfld (&gstate, name, buffer, &bufsz, in)) { + switch (state = m_getfld2(&gstate, name, buffer, &bufsz)) { case FLD: case FLDPLUS: compnum++; @@ -224,7 +225,7 @@ splitmsg (char **vec, int vecp, char *program, char *drft, if (!strcasecmp (name, "Message-ID")) { while (state == FLDPLUS) { bufsz = sizeof buffer; - state = m_getfld (&gstate, name, buffer, &bufsz, in); + state = m_getfld2(&gstate, name, buffer, &bufsz); } } else if (uprf (name, XXX_FIELD_PRF) || !strcasecmp (name, VRSN_FIELD) @@ -250,7 +251,7 @@ splitmsg (char **vec, int vecp, char *program, char *drft, dp = add (concat (name, ":", buffer, NULL), dp); while (state == FLDPLUS) { bufsz = sizeof buffer; - state = m_getfld (&gstate, name, buffer, &bufsz, in); + state = m_getfld2(&gstate, name, buffer, &bufsz); dp = add (buffer, dp); } } else { @@ -261,7 +262,7 @@ splitmsg (char **vec, int vecp, char *program, char *drft, cp = add (concat (name, ":", buffer, NULL), cp); while (state == FLDPLUS) { bufsz = sizeof buffer; - state = m_getfld (&gstate, name, buffer, &bufsz, in); + state = m_getfld2(&gstate, name, buffer, &bufsz); cp = add (buffer, cp); } } @@ -301,7 +302,7 @@ splitmsg (char **vec, int vecp, char *program, char *drft, /* Only one part, nothing to split */ if (nparts == 1) { free (cp); - mh_xfree(dp); + free(dp); fclose (in); return sendaux (vec, vecp, program, drft, st); @@ -407,7 +408,7 @@ splitmsg (char **vec, int vecp, char *program, char *drft, } free (cp); - mh_xfree(dp); + free(dp); fclose (in); /* close the draft */ return status; @@ -423,7 +424,7 @@ static int sendaux (char **vec, int vecp, char *program, char *drft, struct stat *st) { pid_t child_id; - int i, status, fd, fd2; + int status, fd, fd2; char backup[BUFSIZ], buf[BUFSIZ]; fd = pushsw ? tmp_fd () : NOTOK; @@ -444,9 +445,7 @@ sendaux (char **vec, int vecp, char *program, char *drft, struct stat *st) done (1); vec[vecp] = NULL; - for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++) - sleep (5); - + child_id = fork(); switch (child_id) { case -1: /* oops -- fork error */ @@ -513,14 +512,12 @@ static void alert (char *file, int out) { pid_t child_id; - int i, in, argp; + int in, argp; char buf[BUFSIZ]; char *program; char **arglist; - for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++) - sleep (5); - + child_id = fork(); switch (child_id) { case NOTOK: /* oops -- fork error */ @@ -591,9 +588,8 @@ tmp_fd (void) if (debugsw) inform("temporary file %s selected", tfile); - else - if (m_unlink (tfile) == NOTOK) - advise (tfile, "unable to remove"); + else if (m_unlink (tfile) == NOTOK) + advise (tfile, "unable to remove"); return fd; } @@ -912,7 +908,7 @@ get_message_header_info(FILE *in, char *format) { struct format *fmt; struct stat st; int parsing_header; - m_getfld_state_t gstate = 0; + m_getfld_state_t gstate; charstring_t buffer = charstring_create(0); char *retval; @@ -928,10 +924,11 @@ get_message_header_info(FILE *in, char *format) { */ rewind (in); parsing_header = 1; + gstate = m_getfld_state_init(in); do { char name[NAMESZ], rbuf[NMH_BUFSIZ]; int bufsz = sizeof rbuf; - int state = m_getfld(&gstate, name, rbuf, &bufsz, in); + int state = m_getfld2(&gstate, name, rbuf, &bufsz); switch (state) { case FLD: @@ -941,14 +938,14 @@ get_message_header_info(FILE *in, char *format) { if (bucket != -1) { while (state == FLDPLUS) { bufsz = sizeof rbuf; - state = m_getfld(&gstate, name, rbuf, &bufsz, in); + state = m_getfld2(&gstate, name, rbuf, &bufsz); fmt_appendcomp(bucket, name, rbuf); } } while (state == FLDPLUS) { bufsz = sizeof rbuf; - state = m_getfld(&gstate, name, rbuf, &bufsz, in); + state = m_getfld2(&gstate, name, rbuf, &bufsz); } break; }