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; } |