]> andersk Git - openssh.git/commitdiff
- Merged more Solaris support from Marc G. Fournier
authordamien <damien>
Sat, 20 Nov 1999 01:18:40 +0000 (01:18 +0000)
committerdamien <damien>
Sat, 20 Nov 1999 01:18:40 +0000 (01:18 +0000)
   <marc.fournier@acadiau.ca>
 - Wrote autoconf tests for integer bit-types
 - Fixed enabling kerberos support

ChangeLog
TODO
acconfig.h
bsd-daemon.c
bsd-login.c
configure.in

index 7a60cb31879f1cfc861d79532e944d43f1a5e702..0bf1a55756ca6dff6df4c472e9e6ee858dfaee87 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+19991120
+ - Merged more Solaris support from Marc G. Fournier 
+   <marc.fournier@acadiau.ca>
+ - Wrote autoconf tests for integer bit-types
+ - Fixed enabling kerberos support
+
 19991119
  - Merged PAM buffer overrun patch from Chip Salzenberg <chip@valinux.com>
  - Merged OpenBSD CVS changes
diff --git a/TODO b/TODO
index e6a89d3a4aec4a63d8babf51e1a288d70f7e1354..fffdb1caa6cc5c39190a8745d73b723853c6a86a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,6 +8,8 @@
 
 - Fix paths in manpages using autoconf
 
-- Enable libwrap support using autoconf switch
-
 - Better testing on non-PAM systems
+
+- Replace the horror in acconfig.h which tries to comphensate for the 
+  lack of u_intXX_t types. There must be a better way.
+
index d5a12b2bc1e41c26467b517f3c0474cf453c2033..a37c0823c9f5023e3445e7621ed2b43c02e02853 100644 (file)
@@ -6,6 +6,9 @@
 /* Location of lastlog file */
 #undef LASTLOG_LOCATION
 
+/* If lastlog is a directory */
+#undef LASTLOG_IS_DIR
+
 /* Location of random number pool  */
 #undef RANDOM_POOL
 
 /* Define if you want to allow MD5 passwords */
 #undef HAVE_MD5_PASSWORDS
 
+/* Data types */
+#undef HAVE_QUAD_T
+#undef HAVE_INTXX_T
+#undef HAVE_U_INTXX_T
+#undef HAVE_UINTXX_T
+
 @BOTTOM@
 
 /* ******************* Shouldn't need to edit below this line ************** */
 
-#include <sys/types.h> /* For u_intXX_t */
-#include <sys/socket.h> /* For SHUT_XXXX */
-#include <paths.h> /* For _PATH_XXX */
+# 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 
 
 #ifndef SHUT_RDWR
 enum
@@ -71,16 +83,63 @@ enum
 };
 #endif
 
-#if !defined(u_int32_t) && defined(uint32_t)
-#define u_int32_t uint32_t
+/* 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 !defined(u_int16_t) && defined(uint16_t)
-#define u_int16_t uint16_t
+/* 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 !defined(quad_t) && defined(int64_t)
-#define quad_t int64_t
+/* 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
 
 #ifndef _PATH_LASTLOG
index 7b292c126e2efacddd533c8f23472746e190bfa3..fe92b76b6c0c14c26c659ec2c75d8b84c7f60c14 100644 (file)
@@ -40,9 +40,12 @@ static char rcsid[] = "$OpenBSD: daemon.c,v 1.2 1996/08/19 08:22:13 tholo Exp $"
 #endif /* LIBC_SCCS and not lint */
 
 #include <fcntl.h>
-#include <paths.h>
 #include <unistd.h>
 
+#ifdef HAVE_PATHS_H
+# include <paths.h>
+#endif 
+
 int
 daemon(nochdir, noclose)
        int nochdir, noclose;
index 4b6ebf147789d1c5f61a4eb4ffbade422e2b4890..2f0ee3f3dd6a2b06b252d09de84cd1f82741476b 100644 (file)
@@ -58,6 +58,7 @@ login(utp)
 
        tty = ttyslot();
        if (tty > 0 && (fd = open(_PATH_UTMP, O_RDWR|O_CREAT, 0644)) >= 0) {
+#ifdef HAVE_HOST_IN_UTMP
                (void)lseek(fd, (off_t)(tty * sizeof(struct utmp)), SEEK_SET);
                /*
                 * Prevent luser from zero'ing out ut_host.
@@ -70,6 +71,7 @@ login(utp)
                    strncmp(old_ut.ut_line, utp->ut_line, UT_LINESIZE) == 0 &&
                    strncmp(old_ut.ut_name, utp->ut_name, UT_NAMESIZE) == 0)
                        (void)memcpy(utp->ut_host, old_ut.ut_host, UT_HOSTSIZE);
+#endif /* HAVE_HOST_IN_UTMP */
                (void)lseek(fd, (off_t)(tty * sizeof(struct utmp)), SEEK_SET);
                (void)write(fd, utp, sizeof(struct utmp));
                (void)close(fd);
index 649c789dc180fe12b96dff662a5a1452cf53603b..2a4a2c7de1952e7095afdd6d164e9c1822cdbc40 100644 (file)
@@ -70,6 +70,57 @@ AC_CHECK_FUNC(daemon,
        [AC_CHECK_LIB(bsd, daemon, [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_DAEMON)])]
 )
 
+dnl Checks for data types
+AC_CHECK_SIZEOF(short int, 2)
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long int, 4)
+AC_CHECK_SIZEOF(long long int, 8)
+
+dnl More checks for data types
+AC_MSG_CHECKING([For quad_t])
+AC_TRY_COMPILE(
+       [#include <sys/types.h>], 
+       [quad_t a; a = 1235;], 
+       [
+               AC_DEFINE(HAVE_QUAD_T)
+               AC_MSG_RESULT(yes)
+       ],
+       [AC_MSG_RESULT(no)]
+) 
+
+AC_MSG_CHECKING([For intXX_t types])
+AC_TRY_COMPILE(
+       [#include <sys/types.h>], 
+       [int16_t a; int32_t b; a = 1235; b = 1235;], 
+       [
+               AC_DEFINE(HAVE_INTXX_T)
+               AC_MSG_RESULT(yes)
+       ],
+       [AC_MSG_RESULT(no)]
+) 
+
+AC_MSG_CHECKING([For u_intXX_t types])
+AC_TRY_COMPILE(
+       [#include <sys/types.h>], 
+       [u_int16_t c; u_int32_t d; c = 1235; d = 1235;], 
+       [
+               AC_DEFINE(HAVE_U_INTXX_T)
+               AC_MSG_RESULT(yes)
+       ],
+       [AC_MSG_RESULT(no)]
+) 
+
+AC_MSG_CHECKING([For uintXX_t types])
+AC_TRY_COMPILE(
+       [#include <sys/types.h>], 
+       [uint16_t c; uint32_t d; c = 1235; d = 1235;], 
+       [
+               AC_DEFINE(HAVE_UINTXX_T)
+               AC_MSG_RESULT(yes)
+       ],
+       [AC_MSG_RESULT(no)]
+) 
+
 dnl Check whether use wants to disable the external ssh-askpass
 INSTALL_ASKPASS="yes"
 AC_MSG_CHECKING([whether to enable external ssh-askpass support])
@@ -158,14 +209,23 @@ dnl Look for lastlog location
 AC_MSG_CHECKING([location of lastlog file])
 for lastlog in /var/log/lastlog /var/adm/lastlog /etc/security/lastlog ; do
        if test -f $lastlog ; then
-               gotlastlog="yes"
-               AC_MSG_RESULT($lastlog)
-               AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$lastlog")
+               gotlastlog="file"
+               break
+       fi
+       if test -d $lastlog ; then
+               gotlastlog="dir"
                break
        fi
 done
 if test -z "$gotlastlog" ; then
        AC_MSG_ERROR([*** Cannot find lastlog ***])
+else
+       if test "x$gotlastlog" = "xdir" ; then
+               AC_DEFINE(LASTLOG_IS_DIR)
+               AC_MSG_ERROR([*** Directory-based lastlogs are not yet supported ***])
+       fi
+       AC_MSG_RESULT($lastlog)
+       AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$lastlog")
 fi     
 
 AC_MSG_CHECKING([whether libc defines __progname])
@@ -191,7 +251,7 @@ AC_ARG_WITH(kerberos4,
 )
 
 dnl Check whether user wants AFS support
-AC_ARG_WITH(kerberos4,
+AC_ARG_WITH(afs,
        [  --with-afs              Enable AFS support],
        [
                AC_DEFINE(AFS)
This page took 0.091423 seconds and 5 git commands to generate.