X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/eed1bea439a5e3c62958fa1e524d527c4a2fb85d..0e593b90e45687680b8ea9eb6c7643b44abde0fb:/uip/msgchk.c diff --git a/uip/msgchk.c b/uip/msgchk.c index 5551e504..ca3e3826 100644 --- a/uip/msgchk.c +++ b/uip/msgchk.c @@ -5,14 +5,21 @@ * complete copyright information. */ -#include -#include -#include +#include "h/mh.h" +#include "sbr/dtime.h" +#include "sbr/getarguments.h" +#include "sbr/smatch.h" +#include "sbr/ambigsw.h" +#include "sbr/print_version.h" +#include "sbr/print_help.h" +#include "sbr/error.h" +#include "h/mts.h" +#include "h/tws.h" #include "h/done.h" -#include +#include "h/utils.h" #include -#include +#include "popsbr.h" #ifndef CYRUS_SASL # define SASLminc(a) (a) @@ -78,15 +85,20 @@ static int remotemail (char *, char *, char *, char *, int, int, int, int, int main (int argc, char **argv) { - int datesw = 1, notifysw = NT_ALL; - int status = 0, sasl = 0, tls = 0, noverify = 0; - int snoop = 0, vecp = 0; + bool datesw = true; + int notifysw = NT_ALL; + int status = 0; + bool sasl = false; + bool tls = false; + bool noverify = false; + bool snoop = false; + int vecp = 0; char *cp, *host = NULL, *port = NULL, *user = NULL, *proxy = NULL; char buf[BUFSIZ], *saslmech = NULL, *auth_svc = NULL; char **argp, **arguments, *vec[MAXVEC]; struct passwd *pw; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], true, true)) { return 1; } mts_init (); @@ -100,7 +112,7 @@ main (int argc, char **argv) ambigsw (cp, switches); done (1); case UNKWNSW: - adios (NULL, "-%s unknown", cp); + die("-%s unknown", cp); case HELPSW: snprintf (buf, sizeof(buf), "%s [switches] [users ...]", @@ -112,91 +124,91 @@ main (int argc, char **argv) done (0); case DATESW: - datesw++; + datesw = true; continue; case NDATESW: - datesw = 0; + datesw = false; continue; case NOTESW: if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); notifysw |= donote (cp, 1); continue; case NNOTESW: if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); notifysw &= ~donote (cp, 0); continue; case HOSTSW: if (!(host = *argp++) || *host == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); continue; case PORTSW: if (!(port = *argp++) || *port == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); continue; case USERSW: if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); if (vecp >= MAXVEC-1) - adios (NULL, "you can only check %d users at a time", MAXVEC-1); + die("you can only check %d users at a time", MAXVEC-1); user = vec[vecp++] = cp; continue; case SNOOPSW: - snoop++; + snoop = true; continue; case SASLSW: - sasl++; + sasl = true; continue; case NOSASLSW: - sasl = 0; + sasl = false; continue; case SASLMECHSW: if (!(saslmech = *argp++) || *saslmech == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); continue; case INITTLSSW: - tls++; + tls = true; continue; case NOTLSSW: - tls = 0; + tls = false; continue; case CERTVERSW: - noverify = 0; + noverify = false; continue; case NOCERTVERSW: - noverify++; + noverify = true; continue; case AUTHSERVICESW: #ifdef OAUTH_SUPPORT if (!(auth_svc = *argp++) || *auth_svc == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); #else - adios (NULL, "not built with OAuth support"); + die("not built with OAuth support"); #endif continue; case PROXYSW: if (!(proxy = *argp++) || *proxy == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); continue; } } if (vecp >= MAXVEC-1) - adios (NULL, "you can only check %d users at a time", MAXVEC-1); + die("you can only check %d users at a time", MAXVEC-1); vec[vecp++] = cp; } @@ -243,7 +255,7 @@ main (int argc, char **argv) if (!geteuid() || NULL == (home = getenv("HOME"))) { pw = getpwnam (user); if (pw == NULL) - adios (NULL, "unable to get information about user"); + die("unable to get information about user"); home = pw->pw_dir; } status = checkmail (user, home, datesw, notifysw, 1); @@ -284,7 +296,7 @@ donote (char *cp, int ntflag) ambigsw (cp, ntswitches); done (1); case UNKWNSW: - adios (NULL, "-%snotify %s unknown", ntflag ? "" : "no", cp); + die("-%snotify %s unknown", ntflag ? "" : "no", cp); case NALLSW: return NT_ALL; @@ -344,15 +356,16 @@ remotemail (char *host, char *port, char *user, char *proxy, int notifysw, int personal, int snoop, int sasl, char *saslmech, int tls, const char *auth_svc) { - int nmsgs, nbytes, status; + int nmsgs, nbytes; + bool status; if (auth_svc == NULL) { if (saslmech && ! strcasecmp(saslmech, "xoauth2")) { - adios (NULL, "must specify -authservice with -saslmech xoauth2"); + die("must specify -authservice with -saslmech xoauth2"); } } else { if (user == NULL) { - adios (NULL, "must specify -user with -saslmech xoauth2"); + die("must specify -user with -saslmech xoauth2"); } } @@ -378,14 +391,14 @@ remotemail (char *host, char *port, char *user, char *proxy, int notifysw, else notifysw = 0; - status = 0; + status = false; } else { if (notifysw & NT_NMAI) printf (personal ? "You don't %s%s" : "%s doesn't %s", personal ? "" : user, "have any mail waiting"); else notifysw = 0; - status = 1; + status = true; } if (notifysw) printf (" on %s\n", host);