Mercurial > emacs
changeset 21396:fe54b9d8ded1
[MAIL_USE_POP]: Add support for "-g" and "-k"
command-line flags to tell movemail to use GSS-API or Kerberos
authentication if they are supported.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 06 Apr 1998 22:10:30 +0000 |
parents | 57c8bfa789b6 |
children | aa5d46f74b6a |
files | lib-src/movemail.c |
diffstat | 1 files changed, 37 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lib-src/movemail.c Mon Apr 06 22:05:23 1998 +0000 +++ b/lib-src/movemail.c Mon Apr 06 22:10:30 1998 +0000 @@ -188,16 +188,43 @@ char *spool_name; #endif +#ifdef MAIL_USE_POP + int pop_flags = POP_NO_GETPASS | POP_NO_GSSAPI; +# define ARGSTR "gkp" +#else /* ! MAIL_USE_POP */ +# define ARGSTR "p" +#endif /* MAIL_USE_POP */ + delete_lockname = 0; - while ((c = getopt (argc, argv, "p")) != EOF) + /* + 'g' enables Kerberos and disables GSS-API. + 'k' enables GSS-API and disables Kerberos. + + By default, Kerberos is enabled (if it is compiled in) and + GSS-API is disabled, i.e., "-k" is the default. However, I'm + putting the flag in anyway, in case we decide to add new + authentication methods or change the default later. + */ + + while ((c = getopt (argc, argv, ARGSTR)) != EOF) { switch (c) { +#ifdef MAIL_USE_POP + case 'g': + pop_flags |= POP_NO_KERBEROS; + pop_flags &= ~POP_NO_GSSAPI; + break; + case 'k': + pop_flags |= POP_NO_GSSAPI; + pop_flags &= ~POP_NO_KERBEROS; + break; +#endif case 'p': preserve_mail++; break; default: - exit(1); + goto usage; } } @@ -209,11 +236,12 @@ #endif ) { - fprintf (stderr, "Usage: movemail [-p] inbox destfile%s\n", + usage: + fprintf (stderr, "Usage: movemail %s[-p] inbox destfile%s\n", #ifdef MAIL_USE_POP - " [POP-password]" + "[-g|-k] ", " [POP-password]" #else - "" + "", "" #endif ); exit (1); @@ -254,7 +282,7 @@ int status; status = popmail (inname + 3, outname, preserve_mail, - (argc - optind == 3) ? argv[optind+2] : NULL); + (argc - optind == 3) ? argv[optind+2] : NULL, pop_flags); exit (status); } @@ -673,11 +701,12 @@ char obuffer[BUFSIZ]; char Errmsg[80]; -popmail (user, outfile, preserve, password) +popmail (user, outfile, preserve, password, flags) char *user; char *outfile; int preserve; char *password; + int flags; { int nmsgs, nbytes; register int i; @@ -686,7 +715,7 @@ char *getenv (); popserver server; - server = pop_open (0, user, password, POP_NO_GETPASS); + server = pop_open (0, user, password, flags); if (! server) { error (pop_error);