aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2004-01-13 07:31:25 +0000
committerEric S. Raymond <esr@thyrsus.com>2004-01-13 07:31:25 +0000
commite765df08b2c8868d4bda6ef660b209c560e4eded (patch)
treec50c23f9d6d6697a55fddecc67baba1522567d88
parent798868f26c1bd20798f4ffc1a011bed9d063de99 (diff)
downloadfetchmail-e765df08b2c8868d4bda6ef660b209c560e4eded.tar.gz
fetchmail-e765df08b2c8868d4bda6ef660b209c560e4eded.tar.bz2
fetchmail-e765df08b2c8868d4bda6ef660b209c560e4eded.zip
Sunil Shetye's fix for SSL configuration.
svn path=/trunk/; revision=3875
-rw-r--r--NEWS2
-rw-r--r--configure.in19
-rw-r--r--env.c5
-rw-r--r--fetchmail.c2
-rw-r--r--fetchmail.h12
-rw-r--r--fetchmail.man3
-rw-r--r--idle.c1
-rw-r--r--odmr.c1
-rw-r--r--sink.c7
-rw-r--r--smtp.h2
-rw-r--r--socket.c12
11 files changed, 38 insertions, 28 deletions
diff --git a/NEWS b/NEWS
index c998e507..7f7e1190 100644
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,8 @@
* Include James Stone's moldremover.py script.
* Enable .fetchmailrc permissions checking under Cygwin.
* Nalin Dahyabai's fix for POP3 strong authentication.
+* HOME_ETC patch for PLD Linux.
+* Sunil Shetye's fix for SSL configuration.
fetchmail-6.2.5 (Wed Oct 15 18:39:22 EDT 2003), 23079 lines:
diff --git a/configure.in b/configure.in
index a13bdf6c..f7137f91 100644
--- a/configure.in
+++ b/configure.in
@@ -25,12 +25,14 @@ AC_AIX
AC_ISC_POSIX
AC_MINIX
AC_HEADER_STDC
+AC_HEADER_TIME
AC_TYPE_SIZE_T
AC_TYPE_PID_T
AC_TYPE_SIGNAL
AC_CHECK_HEADERS(unistd.h termios.h termio.h sgtty.h stdarg.h alloca.h)
AC_CHECK_HEADERS(sys/itimer.h fcntl.h sys/fcntl.h memory.h sys/wait.h sys/shm.h)
AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h resolv.h net/socket.h sys/select.h)
+AC_CHECK_HEADERS(sys/time.h)
AC_C_CONST dnl getopt needs this.
@@ -572,15 +574,18 @@ then
# This will screw up if an OpenSSL install is located in a later
# directory than an older SSLeay install, but the user should fix that
# anyways and he can override on the configure line.
+ # Just testing for directories is not sufficient, /usr exists on
+ # all systems!
for ac_dir in \
/usr/local/ssl \
+ /usr/local \
/usr/ssl \
/usr \
/local/ssl \
/opt/ssl \
; \
do
- if test -d "$ac_dir" ; then
+ if test -r "$ac_dir/include/openssl/ssl.h" ; then
with_ssl=$ac_dir
break;
fi
@@ -600,18 +605,14 @@ then
if test -r $with_ssl/include/openssl/ssl.h
then
### ssl.h found under openssl. Use openssl configuration preferentially,
+ echo "Enabling OpenSSL support in $with_ssl"
+ test "$with_ssl" != "/usr" && CEFLAGS="$CEFLAGS -I$with_ssl/include"
### In Red Hat 9, this file includes a reference to <krb5.h>, so we
### force the Kerberos direcory onto the include path so it will build.
- echo "Enabling OpenSSL support in $with_ssl"
- CEFLAGS="$CEFLAGS -I$with_ssl/include -I/usr/kerberos/include"
+ CEFLAGS="$CEFLAGS -I/usr/kerberos/include"
### OpenBSD comes with ssl headers
- elif test -r /usr/include/ssl/ssl.h
- then
- echo "Enabling SSLeay support in $with_ssl"
- CEFLAGS="$CEFLAGS -I/usr/include/ssl"
else
- echo "Enabling SSLeay support in $with_ssl"
- test "$with_ssl" != "/usr" && CEFLAGS="$CEFLAGS -I$with_ssl/include"
+ AC_ERROR([SSL support enabled, but OpenSSL not found])
fi
LDEFLAGS="$LDEFLAGS -L$with_ssl/lib"
LIBS="$LIBS -lssl -lcrypto"
diff --git a/env.c b/env.c
index 8fe2103d..d578f0c6 100644
--- a/env.c
+++ b/env.c
@@ -23,12 +23,10 @@
#include <netdb.h>
#endif /* HAVE_GETHOSTBYNAME */
#include <sys/types.h>
-#include <time.h>
#include "fetchmail.h"
#include "i18n.h"
#if defined(HAVE_SETLOCALE) && defined(ENABLE_NLS) && defined(HAVE_STRFTIME)
-#include <time.h>
#include <locale.h>
#endif
@@ -107,7 +105,8 @@ void envquery(int argc, char **argv)
}
/* compute user's home directory */
- if (!(home = getenv("HOME")))
+ home = getenv("HOME_ETC");
+ if (!home && !(home = getenv("HOME")))
home = pwp->pw_dir;
/* compute fetchmail's home directory */
diff --git a/fetchmail.c b/fetchmail.c
index 2901bb67..fd093690 100644
--- a/fetchmail.c
+++ b/fetchmail.c
@@ -25,7 +25,6 @@
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/time.h> /* needed for Sun 4.1.2 */
#ifdef HAVE_SETRLIMIT
#include <sys/resource.h>
#endif /* HAVE_SETRLIMIT */
@@ -99,7 +98,6 @@ static void dropprivs(void)
#endif
#if defined(HAVE_SETLOCALE) && defined(ENABLE_NLS) && defined(HAVE_STRFTIME)
-#include <time.h>
#include <locale.h>
static char *timestamp (void)
{
diff --git a/fetchmail.h b/fetchmail.h
index 7d73032a..8f016ad3 100644
--- a/fetchmail.h
+++ b/fetchmail.h
@@ -8,6 +8,18 @@
/* We need this for size_t */
#include <sys/types.h>
+/* We need this for time_t */
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
/* constants designating the various supported protocols */
#define P_AUTO 1
#define P_POP2 2
diff --git a/fetchmail.man b/fetchmail.man
index 8d29fefb..dd78270b 100644
--- a/fetchmail.man
+++ b/fetchmail.man
@@ -2167,6 +2167,9 @@ home directory (and lose the leading dots on their names). The
\&.netrc file is looked for in the the invoking user's home directory
regardless of FETCHMAILHOME's setting.
+If the HOME_ETC variable is set, file $HOME_ETC/.fetchmailrc is used
+instead of ~/.fetchmailrc.
+
.SH SIGNALS
If a
.I fetchmail
diff --git a/idle.c b/idle.c
index 35f22018..4ea21a3c 100644
--- a/idle.c
+++ b/idle.c
@@ -21,7 +21,6 @@ MIT license. Compile with -DMAIN to build the demonstrator.
#include <unistd.h>
#include <signal.h>
#include <errno.h>
-#include <sys/time.h>
#include <fetchmail.h> /* for ROOT_UID */
#ifndef TRUE
diff --git a/odmr.c b/odmr.c
index 4f4aeca9..29d3d865 100644
--- a/odmr.c
+++ b/odmr.c
@@ -16,7 +16,6 @@
#include <net/socket.h>
#endif
#include <sys/types.h>
-#include <sys/time.h>
#ifdef HAVE_NET_SELECT_H /* AIX needs this */
#include <net/select.h>
#endif
diff --git a/sink.c b/sink.c
index df3c3781..cf79a0f7 100644
--- a/sink.c
+++ b/sink.c
@@ -15,7 +15,6 @@
#include <errno.h>
#include <string.h>
#include <signal.h>
-#include <time.h>
#ifdef HAVE_MEMORY_H
#include <memory.h>
#endif /* HAVE_MEMORY_H */
@@ -31,12 +30,10 @@
#include <varargs.h>
#endif
#include <ctype.h>
-#include <time.h>
/* for W* macros after pclose() */
#define _USE_BSD
#include <sys/types.h>
-#include <sys/time.h>
#include <sys/resource.h>
#include <sys/wait.h>
@@ -224,7 +221,7 @@ int smtp_open(struct query *ctl)
else if (ctl->smtphost && ctl->smtphost[0] != '/')
{
char * cp;
- if (cp = strchr (ctl->smtphost, '/'))
+ if ((cp = strchr (ctl->smtphost, '/')))
{
/* As an alternate port for smtphost is specified, we
need to strip it from domain name. */
@@ -702,7 +699,7 @@ int stuffline(struct query *ctl, char *buf)
n = 0;
if (ctl->mda || ctl->bsmtp)
- n = fwrite(buf, 1, last - buf, sinkfp);
+ n = fwrite(buf, last - buf, 1, sinkfp);
else if (ctl->smtp_socket != -1)
n = SockWrite(ctl->smtp_socket, buf, last - buf);
diff --git a/smtp.h b/smtp.h
index ef5d03d3..3dc874ff 100644
--- a/smtp.h
+++ b/smtp.h
@@ -7,7 +7,7 @@
#ifndef _POPSMTP_
#define _POPSMTP_
-#include <time.h>
+#include "config.h"
#define SMTPBUFSIZE 256
diff --git a/socket.c b/socket.c
index 13901729..4b1b3203 100644
--- a/socket.c
+++ b/socket.c
@@ -200,7 +200,6 @@ static int handle_plugin(const char *host,
#endif /* HAVE_SOCKETPAIR */
#ifdef __UNUSED__
-#include <sys/time.h>
int SockCheckOpen(int fd)
/* poll given socket; is it selectable? */
@@ -502,10 +501,11 @@ va_dcl {
}
#ifdef SSL_ENABLE
-#include "openssl/ssl.h"
-#include "openssl/err.h"
-#include "openssl/pem.h"
-#include "openssl/x509.h"
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/pem.h>
+#include <openssl/x509.h>
+#include <openssl/rand.h>
static SSL_CTX *_ctx = NULL;
static SSL *_ssl_context[FD_SETSIZE];
@@ -759,7 +759,7 @@ int SSL_verify_callback( int ok_return, X509_STORE_CTX *ctx, int strict )
int err, depth;
unsigned char digest[EVP_MAX_MD_SIZE];
char text[EVP_MAX_MD_SIZE * 3 + 1], *tp, *te;
- EVP_MD *digest_tp;
+ const EVP_MD *digest_tp;
unsigned int dsz, i, esz;
X509_NAME *subj, *issuer;