diff options
| -rw-r--r-- | INSTALL | 4 | ||||
| -rw-r--r-- | Makefile.in | 2 | ||||
| -rw-r--r-- | NEWS | 1 | ||||
| -rw-r--r-- | configure.in | 40 | ||||
| -rw-r--r-- | env.c | 2 | ||||
| -rw-r--r-- | fetchmail-features.html | 6 | ||||
| -rw-r--r-- | fetchmail.c | 14 | ||||
| -rw-r--r-- | imap.c | 1 | 
8 files changed, 36 insertions, 34 deletions
| @@ -58,8 +58,8 @@ can compile it in with `configure --enable-RPA'.  Support for authentication using RFC1731 GSSAPI is available  but also not included by default.  You can compile it in with -`configure --enable-RPA', which looks for GSSAPI support in standard -locations (/usr, /usr/local, /usr/athena).  If you set --enable-GSSAPI=DIR +`configure --with-gssapi', which looks for GSSAPI support in standard +locations (/usr, /usr/local).  If you set --with-GSSAPI=DIR  you can direct the build to look for GSSAPI support under DIR.  If you want to build for debugging,  diff --git a/Makefile.in b/Makefile.in index 20b23d0b..1bd5d05b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -137,7 +137,7 @@ install:  	$(INSTALL_PROGRAM) ${srcdir}/fetchmailconf $(bindir)/fetchmailconf  	@echo "Installing manual page..."  	$(INSTALL_DATA) $(srcdir)/fetchmail.man $(mandir)/fetchmail.$(manext) -	ln -sf $(mandir)/fetchmailconf.$(manext) $(mandir)/fetchmail.$(manext) +	ln -sf $(mandir)/fetchmail.$(manext) $(mandir)/fetchmailconf.$(manext)  uninstall:  	rm -f $(bindir)/fetchmail $(bindir)/fetchmailconf @@ -17,6 +17,7 @@ fetchmail-4.4.9 (Thu Jun  4 00:01:06 EDT 1998):  * Hajimu UMEMOTO <ume@calm.imasy.or.jp> patched the address-rewrite logic to    deal with addresses of the form "John Smith (foo) <jsmith@bar.com>" better.  * POP3 TOP argument reduced to 99999999, the most CompuServe will accept. +* Brendan Cully's fixes for the GSS code.  There are 278 people on fetchmail-friends and 217 on fetchmail-announce. diff --git a/configure.in b/configure.in index 280728c2..b361f998 100644 --- a/configure.in +++ b/configure.in @@ -219,32 +219,22 @@ AC_ARG_ENABLE(netsec,  ###	use option --with-gssapi=DIR to compile in GSSAPI support  AC_ARG_WITH(gssapi, -	[  --with-gssapi[=DIR]  compile in GSSAPI support using libraries in DIR]) -if test "$with-gssapi" = "yes" +	[  --with-gssapi[=DIR]  compile in GSSAPI support using libraries in DIR], +[ +if test "$with_gssapi" != "no"  then -    GSSAPIDIR="/usr /usr/local /usr/athena" -else -    GSSAPIDIR="$with_gssapi" -fi -if test "$GSSAPIDIR" != "" -a "$GSSAPIDIR" != "no" -then -    AC_MSG_CHECKING([for gssapi]) -    for curgssapidir in $GSSAPIDIR -    do -        if test -f $curgssapidir/include/gssapi/gssapi.h -        then -            CEFLAGS="$CEFLAGS -DGSSAPI -I$curgssapidir/include" -            LDEFLAGS="$LDEFLAGS -L$curgssapidir/lib" -            LIBS="$LIBS -lgssapi_krb5 -lkrb5" -            AC_MSG_RESULT([in $curgssapidir]) -            GSSAPIFOUND="yes" -        fi -    done -    if test "$GSSAPIFOUND" != "yes" -    then -        AC_MSG_ERROR([not found]) -    fi -fi +  if test "$with_gssapi" != "yes" -a -n "$with_gssapi" +  then +    CFLAGS="$CEFLAGS -I$with_gssapi/include" +    LDFLAGS="$LDEFLAGS -L$with_gssapi/lib" +  fi +  AC_CHECK_LIB(krb5, krb5_init_context,, +               AC_MSG_ERROR([could not find libkrb5 which is needed for GSSAPI support])) +  AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context,, +               AC_MSG_ERROR([could not find libgssapi_krb5 which is needed for GSSAPI support]), -lkrb5) +  AC_DEFINE(GSSAPI) +  LIBS="$LIBS -lgssapi_krb5 -lkrb5" +fi])  ###	use option --with-kerberos=DIR to point at a Kerberos directory  AC_ARG_WITH(kerberos, @@ -97,7 +97,9 @@ char *showproto(int proto)      case P_POP3: return("POP3"); break;      case P_IMAP: return("IMAP"); break;      case P_IMAP_K4: return("IMAP-K4"); break; +#ifdef GSSAPI      case P_IMAP_GSS: return("IMAP-GSS"); break; +#endif /* GSSAPI */      case P_APOP: return("APOP"); break;      case P_RPOP: return("RPOP"); break;      case P_ETRN: return("ETRN"); break; diff --git a/fetchmail-features.html b/fetchmail-features.html index 05dc4f2d..79ef5fd4 100644 --- a/fetchmail-features.html +++ b/fetchmail-features.html @@ -10,7 +10,7 @@  <table width="100%" cellpadding=0><tr>  <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a>  <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1998/05/27 13:35:43 $ +<td width="30%" align=right>$Date: 1998/06/04 04:28:16 $  </table>  <HR> @@ -18,7 +18,7 @@  <H2>Since 4.0:</H2>  <UL> -<LI> There is now an interactive fetchmail configurator. +<LI> There is now an interactive GUI fetchmail configurator.  <LI> Code is 64-bit clean and Y2K-safe. @@ -148,7 +148,7 @@ get-mail, gwpop, pimp-1.0, pop-perl5-1.2, popc, popmail-1.6 and upop.<P>  <table width="100%" cellpadding=0><tr>  <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a>  <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1998/05/27 13:35:43 $ +<td width="30%" align=right>$Date: 1998/06/04 04:28:16 $  </table>  <P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com"><esr@snark.thyrsus.com></A></ADDRESS> diff --git a/fetchmail.c b/fetchmail.c index 79563ab6..29ba051f 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -339,8 +339,10 @@ int main (int argc, char **argv)  	{  	    if (ctl->server.preauthenticate == A_KERBEROS_V4 ||  		ctl->server.preauthenticate == A_KERBEROS_V5 || -		ctl->server.protocol == P_IMAP_K4 || -		ctl->server.protocol == P_IMAP_GSS) +#ifdef GSSAPI +		ctl->server.protocol == P_IMAP_GSS || +#endif /* GSSAPI */ +		ctl->server.protocol == P_IMAP_K4)  		/* Server won't care what the password is, but there  		   must be some non-null string here.  */  		ctl->password = ctl->remotename; @@ -356,7 +358,11 @@ int main (int argc, char **argv)  		    ctl->password = xstrdup(p->password);  	    } -	    if (ctl->server.protocol != P_ETRN && ctl->server.protocol != P_IMAP_K4 && ctl->server.protocol != P_IMAP_GSS && !ctl->password) +	    if (ctl->server.protocol != P_ETRN && ctl->server.protocol != P_IMAP_K4 +#ifdef GSSAPI +                && ctl->server.protocol != P_IMAP_GSS +#endif /* GSSAPI */ +                && !ctl->password)  	    {  		free(tmpbuf);  #define	PASSWORD_PROMPT	"Enter password for %s@%s: " @@ -1081,7 +1087,9 @@ static int query_host(struct query *ctl)  	break;      case P_IMAP:      case P_IMAP_K4: +#ifdef GSSAPI      case P_IMAP_GSS: +#endif /* GSSAPI */  #ifdef IMAP_ENABLE  	return(doIMAP(ctl));  #else @@ -561,6 +561,7 @@ static int do_gssauth(int sock, char *hostname, char *username)           * credentials. RFC 1731 doesn't specify what to do, and since this           * support is only for authentication, we'll assume the server           * knows enough to flush its own credentials */ +        gss_release_buffer(&min_stat, &send_token);          return PS_SUCCESS;      } | 
