- Added --with-default-path to specify custom path for server
- Removed #ifdef trickery from acconfig.h into defines.h
diff --git a/ChangeLog b/ChangeLog
index 46765e4..9cf2454 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
- Automatically correct paths in manpages and configuration files. Patch
and script from Andre Lucas <andre.lucas@dial.pipex.com>
- Removed credits from README to CREDITS file, updated.
+ - Added --with-default-path to specify custom path for server
+ - Removed #ifdef trickery from acconfig.h into defines.h
19991226
- Enabled utmpx support by default for Solaris
diff --git a/acconfig.h b/acconfig.h
index 2ed1033..15de345 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,4 +1,7 @@
-/* config.h.in. Generated by hand, don't use autoheader. */
+/* Generated automatically from acconfig.h by autoheader. */
+/* Please make your changes there */
+
+@TOP@
/* SSL directory. */
#undef ssldir
@@ -100,207 +103,11 @@
/* Define if you need to use IP address instead of hostname in $DISPLAY */
#undef IPADDR_IN_DISPLAY
+/* Specify default $PATH */
+#undef USER_PATH
+
@BOTTOM@
/* ******************* Shouldn't need to edit below this line ************** */
-#include <sys/types.h> /* For u_intXX_t */
-#include <sys/socket.h> /* For SHUT_XXXX */
-
-#ifdef HAVE_PATHS_H
-# include <paths.h> /* For _PATH_XXX */
-#endif
-
-#ifdef HAVE_UTMP_H
-# include <utmp.h> /* For _PATH_XXX */
-#endif
-
-#if defined(HAVE_UTMPX_H) && defined(USE_UTMPX)
-# include <utmpx.h> /* For _PATH_XXX */
-#endif
-
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h> /* For timersub */
-#endif
-
-#ifdef HAVE_MAILLOCK_H
-#include <maillock.h>
-#endif
-
-#ifndef SHUT_RDWR
-enum
-{
- SHUT_RD = 0, /* No more receptions. */
- SHUT_WR, /* No more transmissions. */
- SHUT_RDWR /* No more receptions or transmissions. */
-};
-# define SHUT_RD SHUT_RD
-# define SHUT_WR SHUT_WR
-# define SHUT_RDWR SHUT_RDWR
-#endif
-
-/* If sys/types.h does not supply intXX_t, supply them ourselves */
-/* (or die trying) */
-#ifndef HAVE_INTXX_T
-# if (SIZEOF_SHORT_INT == 2)
-# define int16_t short int
-# else
-# error "16 bit int type not found."
-# endif
-# if (SIZEOF_INT == 4)
-# define int32_t int
-# else
-# error "32 bit int type not found."
-# endif
-# if (SIZEOF_LONG_INT == 8)
-# define int64_t long int
-# else
-# if (SIZEOF_LONG_LONG_INT == 8)
-# define int64_t long long int
-# else
-# error "64 bit int type not found."
-# endif
-# endif
-#endif
-
-/* If sys/types.h does not supply u_intXX_t, supply them ourselves */
-#ifndef HAVE_U_INTXX_T
-# ifdef HAVE_UINTXX_T
-# define u_int16_t uint16_t
-# define u_int32_t uint32_t
-# define u_int64_t uint64_t
-# else
-# if (SIZEOF_SHORT_INT == 2)
-# define u_int16_t unsigned short int
-# else
-# error "16 bit int type not found."
-# endif
-# if (SIZEOF_INT == 4)
-# define u_int32_t unsigned int
-# else
-# error "32 bit int type not found."
-# endif
-# if (SIZEOF_LONG_INT == 8)
-# define u_int64_t unsigned long int
-# else
-# if (SIZEOF_LONG_LONG_INT == 8)
-# define u_int64_t unsigned long long int
-# else
-# error "64 bit int type not found."
-# endif
-# endif
-# endif
-#endif
-
-/* If quad_t is not supplied, then supply it now. We can rely on int64_t */
-/* being defined by the above */
-#ifndef HAVE_QUAD_T
-# define quad_t int64_t
-#endif
-
-/* If _PATH_LASTLOG is not defined by system headers, set it to the */
-/* lastlog file detected by autoconf */
-#ifndef _PATH_LASTLOG
-# ifdef LASTLOG_LOCATION
-# define _PATH_LASTLOG LASTLOG_LOCATION
-# endif
-#endif
-
-#ifndef _PATH_UTMP
-# ifdef UTMP_FILE
-# define _PATH_UTMP UTMP_FILE
-# else
-# define _PATH_UTMP "/var/adm/utmp"
-# endif
-#endif
-
-#ifndef _PATH_WTMP
-# ifdef WTMP_FILE
-# define _PATH_WTMP WTMP_FILE
-# else
-# define _PATH_WTMP "/var/adm/wtmp"
-# endif
-#endif
-
-#if defined(HAVE_UTMPX_H) && defined(USE_UTMPX)
-# ifndef _PATH_UTMPX
-# ifdef UTMPX_FILE
-# define _PATH_UTMPX UTMPX_FILE
-# else
-# define _PATH_UTMPX "/var/adm/utmpx"
-# endif
-# endif
-# ifndef _PATH_WTMPX
-# ifdef WTMPX_FILE
-# define _PATH_WTMPX WTMPX_FILE
-# else
-# define _PATH_WTMPX "/var/adm/wtmp"
-# endif
-# endif
-#endif
-
-#ifndef _PATH_BSHELL
-# define _PATH_BSHELL "/bin/sh"
-#endif
-
-#ifndef _PATH_STDPATH
-# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin"
-#endif
-
-#ifndef _PATH_DEVNULL
-# define _PATH_DEVNULL "/dev/null"
-#endif
-
-#ifndef MAILDIR
-# define MAILDIR MAIL_DIRECTORY
-#endif
-
-#if !defined(_PATH_MAILDIR) && defined(MAILDIR)
-# define _PATH_MAILDIR MAILDIR
-#endif /* !defined(_PATH_MAILDIR) && defined(MAILDIR) */
-
-#ifndef MAX
-# define MAX(a,b) (((a)>(b))?(a):(b))
-# define MIN(a,b) (((a)<(b))?(a):(b))
-#endif
-
-#ifndef timersub
-#define timersub(a, b, result) \
- do { \
- (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
- (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
- if ((result)->tv_usec < 0) { \
- --(result)->tv_sec; \
- (result)->tv_usec += 1000000; \
- } \
- } while (0)
-#endif
-
-/* In older versions of libpam, pam_strerror takes a single argument */
-#ifdef HAVE_OLD_PAM
-# define PAM_STRERROR(a,b) pam_strerror((b))
-#else
-# define PAM_STRERROR(a,b) pam_strerror((a),(b))
-#endif
-
-#ifndef __P
-# define __P(x) x
-#endif
-
-#if !defined(__GNUC__) || (__GNUC__ < 2)
-# define __attribute__(x)
-#endif /* !defined(__GNUC__) || (__GNUC__ < 2) */
-
-#if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID)
-# define seteuid(a) setreuid(-1,a)
-#endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */
-
-#ifndef HAVE_INNETGR
-# define innetgr(a,b,c,d) (0)
-#endif /* HAVE_INNETGR */
-
-#ifndef _PATH_RSH
-# ifdef RSH_PATH
-# define _PATH_RSH RSH_PATH
-# endif /* RSH_PATH */
-#endif /* _PATH_RSH */
+#include "defines.h"
diff --git a/configure.in b/configure.in
index 6cfacd2..17b392d 100644
--- a/configure.in
+++ b/configure.in
@@ -267,7 +267,7 @@
dnl Look for lastlog location
AC_ARG_WITH(lastlog,
- [ --with-lastlog Location of lastlog file],
+ [ --with-lastlog=FILE Location of lastlog file],
[
if test "x$withval" = "xno" ; then
AC_DEFINE(DISABLE_LASTLOG)
@@ -396,6 +396,15 @@
]
)
+AC_ARG_WITH(path,
+ [ --with-default-path=PATH Specify default \$PATH environment for server],
+ [
+ if test "x$withval" != "xno" ; then
+ AC_DEFINE_UNQUOTED(USER_PATH, $withval")
+ fi
+ ]
+)
+
dnl Check for mail directory (last resort if we cannot get it from headers)
if test ! -z "$MAIL" ; then
maildir=`dirname $MAIL`
diff --git a/defines.h b/defines.h
new file mode 100644
index 0000000..9d5d17f
--- /dev/null
+++ b/defines.h
@@ -0,0 +1,207 @@
+#include <sys/types.h> /* For u_intXX_t */
+#include <sys/socket.h> /* For SHUT_XXXX */
+
+#ifdef HAVE_PATHS_H
+# include <paths.h> /* For _PATH_XXX */
+#endif
+
+#ifdef HAVE_UTMP_H
+# include <utmp.h> /* For _PATH_XXX */
+#endif
+
+#if defined(HAVE_UTMPX_H) && defined(USE_UTMPX)
+# include <utmpx.h> /* For _PATH_XXX */
+#endif
+
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h> /* For timersub */
+#endif
+
+#ifdef HAVE_MAILLOCK_H
+#include <maillock.h>
+#endif
+
+#ifndef SHUT_RDWR
+enum
+{
+ SHUT_RD = 0, /* No more receptions. */
+ SHUT_WR, /* No more transmissions. */
+ SHUT_RDWR /* No more receptions or transmissions. */
+};
+# define SHUT_RD SHUT_RD
+# define SHUT_WR SHUT_WR
+# define SHUT_RDWR SHUT_RDWR
+#endif
+
+/* If sys/types.h does not supply intXX_t, supply them ourselves */
+/* (or die trying) */
+#ifndef HAVE_INTXX_T
+# if (SIZEOF_SHORT_INT == 2)
+# define int16_t short int
+# else
+# error "16 bit int type not found."
+# endif
+# if (SIZEOF_INT == 4)
+# define int32_t int
+# else
+# error "32 bit int type not found."
+# endif
+# if (SIZEOF_LONG_INT == 8)
+# define int64_t long int
+# else
+# if (SIZEOF_LONG_LONG_INT == 8)
+# define int64_t long long int
+# else
+# error "64 bit int type not found."
+# endif
+# endif
+#endif
+
+/* If sys/types.h does not supply u_intXX_t, supply them ourselves */
+#ifndef HAVE_U_INTXX_T
+# ifdef HAVE_UINTXX_T
+# define u_int16_t uint16_t
+# define u_int32_t uint32_t
+# define u_int64_t uint64_t
+# else
+# if (SIZEOF_SHORT_INT == 2)
+# define u_int16_t unsigned short int
+# else
+# error "16 bit int type not found."
+# endif
+# if (SIZEOF_INT == 4)
+# define u_int32_t unsigned int
+# else
+# error "32 bit int type not found."
+# endif
+# if (SIZEOF_LONG_INT == 8)
+# define u_int64_t unsigned long int
+# else
+# if (SIZEOF_LONG_LONG_INT == 8)
+# define u_int64_t unsigned long long int
+# else
+# error "64 bit int type not found."
+# endif
+# endif
+# endif
+#endif
+
+/* If quad_t is not supplied, then supply it now. We can rely on int64_t */
+/* being defined by the above */
+#ifndef HAVE_QUAD_T
+# define quad_t int64_t
+#endif
+
+/* If _PATH_LASTLOG is not defined by system headers, set it to the */
+/* lastlog file detected by autoconf */
+#ifndef _PATH_LASTLOG
+# ifdef LASTLOG_LOCATION
+# define _PATH_LASTLOG LASTLOG_LOCATION
+# endif
+#endif
+
+#ifndef _PATH_UTMP
+# ifdef UTMP_FILE
+# define _PATH_UTMP UTMP_FILE
+# else
+# define _PATH_UTMP "/var/adm/utmp"
+# endif
+#endif
+
+#ifndef _PATH_WTMP
+# ifdef WTMP_FILE
+# define _PATH_WTMP WTMP_FILE
+# else
+# define _PATH_WTMP "/var/adm/wtmp"
+# endif
+#endif
+
+#if defined(HAVE_UTMPX_H) && defined(USE_UTMPX)
+# ifndef _PATH_UTMPX
+# ifdef UTMPX_FILE
+# define _PATH_UTMPX UTMPX_FILE
+# else
+# define _PATH_UTMPX "/var/adm/utmpx"
+# endif
+# endif
+# ifndef _PATH_WTMPX
+# ifdef WTMPX_FILE
+# define _PATH_WTMPX WTMPX_FILE
+# else
+# define _PATH_WTMPX "/var/adm/wtmp"
+# endif
+# endif
+#endif
+
+#ifndef _PATH_BSHELL
+# define _PATH_BSHELL "/bin/sh"
+#endif
+
+#ifdef USER_PATH
+# ifdef _PATH_STDPATH
+# undef _PATH_STDPATH
+# endif
+# define _PATH_STDPATH USER_PATH
+#endif
+
+#ifndef _PATH_STDPATH
+# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin"
+#endif
+
+#ifndef _PATH_DEVNULL
+# define _PATH_DEVNULL "/dev/null"
+#endif
+
+#ifndef MAILDIR
+# define MAILDIR MAIL_DIRECTORY
+#endif
+
+#if !defined(_PATH_MAILDIR) && defined(MAILDIR)
+# define _PATH_MAILDIR MAILDIR
+#endif /* !defined(_PATH_MAILDIR) && defined(MAILDIR) */
+
+#ifndef MAX
+# define MAX(a,b) (((a)>(b))?(a):(b))
+# define MIN(a,b) (((a)<(b))?(a):(b))
+#endif
+
+#ifndef timersub
+#define timersub(a, b, result) \
+ do { \
+ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
+ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+ if ((result)->tv_usec < 0) { \
+ --(result)->tv_sec; \
+ (result)->tv_usec += 1000000; \
+ } \
+ } while (0)
+#endif
+
+/* In older versions of libpam, pam_strerror takes a single argument */
+#ifdef HAVE_OLD_PAM
+# define PAM_STRERROR(a,b) pam_strerror((b))
+#else
+# define PAM_STRERROR(a,b) pam_strerror((a),(b))
+#endif
+
+#ifndef __P
+# define __P(x) x
+#endif
+
+#if !defined(__GNUC__) || (__GNUC__ < 2)
+# define __attribute__(x)
+#endif /* !defined(__GNUC__) || (__GNUC__ < 2) */
+
+#if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID)
+# define seteuid(a) setreuid(-1,a)
+#endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */
+
+#ifndef HAVE_INNETGR
+# define innetgr(a,b,c,d) (0)
+#endif /* HAVE_INNETGR */
+
+#ifndef _PATH_RSH
+# ifdef RSH_PATH
+# define _PATH_RSH RSH_PATH
+# endif /* RSH_PATH */
+#endif /* _PATH_RSH */