-
-/*
- * inc.c -- incorporate messages from a maildrop into a folder
+/* inc.c -- incorporate messages from a maildrop into a folder
*
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
X("saslmech", 0, SASLMECHSW) \
X("initialtls", TLSminc(-10), INITTLSSW) \
X("notls", TLSminc(-5), NOTLSSW) \
+ X("certverify", TLSminc(-10), CERTVERSW) \
+ X("nocertverify", TLSminc(-12), NOCERTVERSW) \
X("authservice", 0, AUTHSERVICESW) \
X("proxy command", 0, PROXYSW) \
const struct Maildir_entry *a = va, *b = vb;
if (a->mtime > b->mtime)
return 1;
- else if (a->mtime < b->mtime)
+ if (a->mtime < b->mtime)
return -1;
- else
- return 0;
+ return 0;
}
int
int chgflag = 1, trnflag = 1;
int noisy = 1, width = -1;
int hghnum = 0, msgnum = 0;
- int sasl = 0, tls = 0;
+ int sasl = 0, tls = 0, noverify = 1;
int incerr = 0; /* <0 if inc hits an error which means it should not truncate mailspool */
char *cp, *maildir = NULL, *folder = NULL;
char *format = NULL, *form = NULL;
tls = 0;
continue;
+ case CERTVERSW:
+ noverify = 0;
+ continue;
+
+ case NOCERTVERSW:
+ noverify++;
+ continue;
+
case AUTHSERVICESW:
#ifdef OAUTH_SUPPORT
if (!(auth_svc = *argp++) || *auth_svc == '-')
if (host && !*host)
host = NULL;
- /* guarantee dropping group priveleges; we might not have done so earlier */
+ /* guarantee dropping group privileges; we might not have done so earlier */
DROPGROUPPRIVS();
/*
* a POP server?
*/
if (inc_type == INC_POP) {
- struct nmh_creds creds = { 0, 0, 0 };
+ int tlsflag = 0;
if (auth_svc == NULL) {
if (saslmech && ! strcasecmp(saslmech, "xoauth2")) {
adios (NULL, "must specify -authservice with -saslmech xoauth2");
}
- nmh_get_credentials (host, user, sasl, &creds);
} else {
if (user == NULL) {
adios (NULL, "must specify -user with -saslmech xoauth2");
}
- creds.user = user;
}
+ if (tls)
+ tlsflag |= P_INITTLS;
+
+ if (noverify)
+ tlsflag |= P_NOVERIFY;
+
/*
* initialize POP connection
*/
- if (pop_init (host, port, creds.user, creds.password, proxy, snoop,
- sasl, saslmech, tls, auth_svc) == NOTOK)
+ if (pop_init (host, port, user, proxy, snoop, sasl, saslmech,
+ tlsflag, auth_svc) == NOTOK)
adios (NULL, "%s", response);
/* Check if there are any messages */
qsort (Maildir, num_maildir_entries, sizeof(*Maildir), maildir_srt);
}
- if ((cp = strdup(newmail)) == (char *)0)
- adios (NULL, "error allocating memory to copy newmail");
-
+ cp = mh_xstrdup(newmail);
newmail = cp;
}
if (!folder)
folder = getfolder (0);
maildir = m_maildir (folder);
-
- if ((maildir_copy = strdup(maildir)) == (char *)0)
- adios (maildir, "error allocating memory to copy maildir");
+ maildir_copy = mh_xstrdup(maildir);
if (!folder_exists(maildir)) {
/* If the folder doesn't exist, and we're given the -silent flag,
if (audfile) {
int i;
if ((i = stat (audfile, &st)) == NOTOK)
- advise (NULL, "Creating Receive-Audit: %s", audfile);
+ inform("Creating Receive-Audit: %s", audfile);
if ((aud = fopen (audfile, "a")) == NULL)
adios (audfile, "unable to append to");
else if (i == NOTOK)
trnflag = 0;
noisy++;
/* advise (cp, "unable to read"); already advised */
- /* fall thru */
+ /* FALLTHRU */
case SCNERR:
case SCNNUM:
case SCNERR:
if (aud)
fputs ("inc aborted!\n", aud);
- advise (NULL, "aborted!"); /* doesn't clean up locks! */
+ inform("aborted!"); /* doesn't clean up locks! */
break;
case SCNNUM:
- advise (NULL, "BUG in %s, number out of range", invo_name);
+ inform("BUG in %s, number out of range", invo_name);
break;
default:
- advise (NULL, "BUG in %s, scan() botch (%d)", invo_name, incerr);
+ inform("BUG in %s, scan() botch (%d)", invo_name, incerr);
break;
case SCNMSG:
*/
(void)snprintf(b, sizeof (b), "%s/%d", maildir_copy, msgnum + 1);
- (void)ext_hook("add-hook", b, (char *)0);
+ (void)ext_hook("add-hook", b, NULL);
if (aud)
fputs (charstring_buffer (scanl), aud);
trnflag = 0;
noisy++;
/* advise (cp, "unable to read"); already advised */
- /* fall thru */
+ /* FALLTHRU */
case SCNERR:
case SCNNUM:
*/
(void)snprintf(b, sizeof (b), "%s/%d", maildir_copy, msgnum + 1);
- (void)ext_hook("add-hook", b, (char *)0);
+ (void)ext_hook("add-hook", b, NULL);
if (aud)
fputs (charstring_buffer (scanl), aud);
if (inc_type == INC_FILE && Maildir == NULL) {
if (trnflag) {
if (stat (newmail, &st) != NOTOK && s1.st_mtime != st.st_mtime)
- advise (NULL, "new messages have arrived!\007");
+ inform("new messages have arrived!\007");
else {
int newfd;
if ((newfd = creat (newmail, 0600)) != NOTOK)
}
if (msgnum == hghnum) {
- admonish (NULL, "no messages incorporated");
+ inform("no messages incorporated, continuing...");
} else {
/*
* Lock the sequence file now, and loop to set the right flags
context_replace (pfolder, folder); /* update current folder */
if ((mp2 = folder_read(folder, 1)) == NULL) {
- admonish(NULL, "Unable to reread folder %s", folder);
+ inform("Unable to reread folder %s, continuing...", folder);
goto skip;
}
if (msgnum >= mp2->hghoff
&& !(mp2 = folder_realloc (mp2, mp2->lowoff, msgnum + 1))) {
- advise (NULL, "unable to reallocate folder storage");
+ inform("unable to reallocate folder storage");
goto skip;
}