#include <h/utils.h>
#include <h/tws.h>
#include <h/mts.h>
-#include "../sbr/m_mktemp.h"
-#include "../sbr/message_id.h"
+#include "sbr/m_mktemp.h"
+#include "sbr/message_id.h"
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
static void putfmt (char *, char *, int *, FILE *);
static void start_headers (void);
static void finish_headers (FILE *);
-static int get_header (char *, struct headers *);
+static int get_header (char *, struct headers *) PURE;
static int putadr (char *, char *, struct mailname *, FILE *, unsigned int,
char *, unsigned int);
static void putgrp (char *, char *, FILE *, unsigned int);
static void insert_fcc (struct headers *, char *);
static void make_bcc_file (int);
static void verify_all_addresses (int, int, char *, int, char *);
-static void chkadr (void);
+static void chkadr (void) PURE;
static void sigon (void);
static void sigoff (void);
static void p_refile (char *);
static void fcc (char *, char *);
-static void die (char *, char *, ...);
+static void fatal (char *, char *, ...) CHECK_PRINTF(2, 3);
static void post (char *, int, int, int, char *, int, char *);
static void do_text (char *file, int fd);
static void do_an_address (struct mailname *, int);
if (debug) {
pl ();
done (0);
- } else {
- fclose (out);
}
+ fclose (out);
/*
* Here's how we decide which address to use as the envelope-from
* of MIME encapsulation.
*/
if (filter != NULL) {
- for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
- sleep (5);
+ child_id = fork();
switch (child_id) {
case NOTOK:
adios ("fork", "unable to");
chkadr (void)
{
if (badadr && unkadr)
- die (NULL, "%d address%s unparsable, %d addressee%s undeliverable",
+ fatal (NULL, "%d address%s unparsable, %d addressee%s undeliverable",
badadr, PLURALS(badadr), unkadr, PLURALS(badadr));
if (badadr)
- die (NULL, "%d address%s unparsable", badadr, PLURALS(badadr));
+ fatal (NULL, "%d address%s unparsable", badadr, PLURALS(badadr));
if (unkadr)
- die (NULL, "%d addressee%s undeliverable", unkadr, PLURALS(unkadr));
+ fatal (NULL, "%d addressee%s undeliverable", unkadr, PLURALS(unkadr));
}
chkadr ();
if (rp_isbad (retval = sm_waend ()))
- die (NULL, "problem ending addresses; %s", rp_string (retval));
+ fatal (NULL, "problem ending addresses; %s", rp_string (retval));
}
post (char *file, int bccque, int talk, int eai, char *envelope,
int oauth_flag, char *auth_svc)
{
- int retval, i;
+ int retval;
pid_t child_id;
if (verbose) {
char **argp, *program;
int argc;
- for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
- sleep (5);
+ child_id = fork();
switch (child_id) {
case NOTOK:
adios ("fork", "unable to");
int eightbit = 0;
if (fd == NOTOK) {
- die (file, "unable to re-open");
+ fatal (file, "unable to re-open");
}
if (msgflags & MMIM && cte != UNKNOWN) {
} else {
if (scan_input (fd, &eightbit) == NOTOK) {
close (fd);
- die (file, "problem reading from");
+ fatal (file, "problem reading from");
}
}
oauth_flag ? auth_svc : NULL, tlsflag))
|| rp_isbad (retval = sm_winit (envelope, eai, eightbit))) {
close (fd);
- die (NULL, "problem initializing server; %s", rp_string (retval));
+ fatal (NULL, "problem initializing server; %s", rp_string (retval));
}
do_addresses (bccque, talk && verbose);
verbose, snoop, sasl, saslmech, user,
oauth_flag ? auth_svc : NULL, tlsflag))
|| rp_isbad (retval = sm_winit (envelope, eai, eightbit))) {
- die (NULL, "problem initializing server; %s", rp_string (retval));
+ fatal (NULL, "problem initializing server; %s", rp_string (retval));
}
}
puts(" -- Address Verification Successful --");
if (!whomsw || checksw)
- sm_end (DONE);
+ sm_end (whomsw ? OK : DONE);
fflush (stdout);
sigoff ();
default:
if (!talk)
fprintf (stderr, " %s: ", addr);
- die (NULL, "unexpected response; %s", rp_string (retval));
+ fatal (NULL, "unexpected response; %s", rp_string (retval));
}
fflush (stdout);
while ((state = read (fd, buf, sizeof(buf))) > 0) {
if (rp_isbad (retval = sm_wtxt (buf, state)))
- die (NULL, "problem writing text; %s\n", rp_string (retval));
+ fatal (NULL, "problem writing text; %s\n", rp_string (retval));
}
if (state == NOTOK)
- die (file, "problem reading from");
+ fatal (file, "problem reading from");
switch (retval = sm_wtend ()) {
case RP_OK:
case RP_NO:
case RP_NDEL:
- die (NULL, "posting failed; %s", rp_string (retval));
+ fatal (NULL, "posting failed; %s", rp_string (retval));
break;
default:
- die (NULL, "unexpected response; %s", rp_string (retval));
+ fatal (NULL, "unexpected response; %s", rp_string (retval));
}
}
fcc (char *file, char *folder)
{
pid_t child_id;
- int i, status, argp;
+ int status, argp;
char fold[BUFSIZ];
char **arglist, *program;
printf (" %sFcc %s: ", msgstate == RESENT ? "Resent-" : "", folder);
fflush (stdout);
- for (i = 0; (child_id = fork ()) == NOTOK && i < 5; i++)
- sleep (5);
-
+ child_id = fork();
switch (child_id) {
case NOTOK:
if (!verbose)
*/
static void
-die (char *what, char *fmt, ...)
+fatal (char *what, char *fmt, ...)
{
int err;
va_list ap;