X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/90edb255effd0d29d94e662ca5bf3e9eda7ed122..cf57870921b26703aad420c6741c524b33736ff1:/uip/inc.c diff --git a/uip/inc.c b/uip/inc.c index aadfe98b..1973a6af 100644 --- a/uip/inc.c +++ b/uip/inc.c @@ -75,6 +75,8 @@ 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) \ @@ -176,10 +178,9 @@ maildir_srt(const void *va, const void *vb) 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 @@ -188,7 +189,7 @@ main (int argc, char **argv) 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; @@ -364,6 +365,14 @@ main (int argc, char **argv) tls = 0; continue; + case CERTVERSW: + noverify = 0; + continue; + + case NOCERTVERSW: + noverify++; + continue; + case AUTHSERVICESW: #ifdef OAUTH_SUPPORT if (!(auth_svc = *argp++) || *auth_svc == '-') @@ -413,6 +422,8 @@ main (int argc, char **argv) * a POP server? */ if (inc_type == INC_POP) { + int tlsflag = 0; + if (auth_svc == NULL) { if (saslmech && ! strcasecmp(saslmech, "xoauth2")) { adios (NULL, "must specify -authservice with -saslmech xoauth2"); @@ -423,11 +434,17 @@ main (int argc, char **argv) } } + if (tls) + tlsflag |= P_INITTLS; + + if (noverify) + tlsflag |= P_NOVERIFY; + /* * initialize POP connection */ if (pop_init (host, port, user, proxy, snoop, sasl, saslmech, - tls, auth_svc) == NOTOK) + tlsflag, auth_svc) == NOTOK) adios (NULL, "%s", response); /* Check if there are any messages */ @@ -673,7 +690,7 @@ go_to_it: trnflag = 0; noisy++; /* advise (cp, "unable to read"); already advised */ - /* fall thru */ + /* FALLTHRU */ case SCNERR: case SCNNUM: @@ -834,7 +851,7 @@ go_to_it: trnflag = 0; noisy++; /* advise (cp, "unable to read"); already advised */ - /* fall thru */ + /* FALLTHRU */ case SCNERR: case SCNNUM: