aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INSTALL4
-rw-r--r--Makefile.in2
-rw-r--r--NEWS1
-rw-r--r--configure.in40
-rw-r--r--env.c2
-rw-r--r--fetchmail-features.html6
-rw-r--r--fetchmail.c14
-rw-r--r--imap.c1
8 files changed, 36 insertions, 34 deletions
diff --git a/INSTALL b/INSTALL
index 3e4c1530..f6be989e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -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
diff --git a/NEWS b/NEWS
index 55b05aa5..427fdef3 100644
--- a/NEWS
+++ b/NEWS
@@ -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,
diff --git a/env.c b/env.c
index 890ece41..202b69e2 100644
--- a/env.c
+++ b/env.c
@@ -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">&lt;esr@snark.thyrsus.com&gt;</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
diff --git a/imap.c b/imap.c
index 11c64a8b..00efacba 100644
--- a/imap.c
+++ b/imap.c
@@ -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;
}