[sshconnect.c] disconnect if getpeername() fails
- OpenBSD's changes to sshd.c broke the PAM stuff, re-merged it.
- Various small cleanups to bring diff (against OpenBSD) size down.
+ - Merged more Solaris compability from Marc G. Fournier
+ <marc.fournier@acadiau.ca>
+ - Wrote autoconf tests for __progname symbol
19991114
- Solaris compilation fixes (still imcomplete)
/* SSL directory. */
#undef ssldir
-/* Random number pool */
+/* Location of lastlog file */
+#undef LASTLOG_LOCATION
+
+/* Location of random number pool */
#undef RANDOM_POOL
/* Are we using the Entropy gathering daemon */
/* Define is libutil has login() function */
#undef HAVE_LIBUTIL_LOGIN
-/* Define if you *don't* want to use an external ssh-askpass */
+/* Define if you want external askpass support */
#undef USE_EXTERNAL_ASKPASS
+/* Define if libc defines __progname */
+#undef HAVE___PROGNAME
+
@BOTTOM@
/* ******************* Shouldn't need to edit below this line ************** */
};
#endif
+#include <sys/types.h> /* For u_intXX_t */
+#include <paths.h> /* For _PATH_XXX */
+
#if !defined(u_int32_t) && defined(uint32_t)
#define u_int32_t uint32_t
#endif
#if !defined(u_int16_t) && defined(uint16_t)
#define u_int16_t uint16_t
#endif
+
+#ifndef _PATH_LASTLOG
+# ifdef LASTLOG_LOCATION
+# define _PATH_LASTLOG LASTLOG_LOCATION
+# endif
+#endif
+
+#ifndef _PATH_UTMP
+# ifdef UTMP_FILE
+# define _PATH_UTMP UTMP_FILE
+# endif
+#endif
+
+#ifndef _PATH_WTMP
+# ifdef WTMP_FILE
+# define _PATH_WTMP WTMP_FILE
+# 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_MAILDIR
+# ifdef MAILDIR
+# define _PATH_MAILDIR MAILDIR
+# endif
+#endif
AC_CHECK_LIB(pam, pam_authenticate, , )
dnl Checks for header files.
-AC_CHECK_HEADERS(pty.h endian.h paths.h lastlog.h shadow.h netgroup.h)
-
-dnl Check for ut_host field in utmp
-AC_MSG_CHECKING([whether utmp.h has ut_host field])
-AC_EGREP_HEADER(ut_host, utmp.h,
- [AC_DEFINE(HAVE_HOST_IN_UTMP) AC_MSG_RESULT(yes); ],
- [AC_MSG_RESULT(no)]
-)
+AC_CHECK_HEADERS(pty.h endian.h paths.h lastlog.h shadow.h netgroup.h maillock.h)
dnl Checks for library functions.
AC_CHECK_FUNCS(openpty strlcpy mkdtemp arc4random setproctitle setlogin)
AC_MSG_ERROR([No random device found, and no EGD random pool specified])
fi
+dnl Check for ut_host field in utmp
+AC_MSG_CHECKING([whether utmp.h has ut_host field])
+AC_EGREP_HEADER(ut_host, utmp.h,
+ [AC_DEFINE(HAVE_HOST_IN_UTMP) AC_MSG_RESULT(yes); ],
+ [AC_MSG_RESULT(no)]
+)
+
+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
+ AC_MSG_RESULT($lastlog)
+ AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$lastlog")
+ break
+ fi
+done
+
+AC_MSG_CHECKING([whether libc defines __progname])
+AC_TRY_LINK([],
+ [extern char *__progname;],
+ [
+ AC_DEFINE(HAVE___PROGNAME)
+ AC_MSG_RESULT(yes)
+ ],
+ [
+ AC_MSG_RESULT(no)
+ ]
+)
+
AC_OUTPUT(Makefile)
#include "xmalloc.h"
#include "ssh.h"
+#ifdef HAVE___PROGNAME
+extern char *__progname;
+#else /* HAVE___PROGNAME */
+const char *__progname = "sshd";
+#endif /* HAVE___PROGNAME */
+
static LogLevel log_level = SYSLOG_LEVEL_INFO;
static int log_on_stderr = 0;
static int log_facility = LOG_AUTH;
char fmtbuf[MSGBUFSIZE];
char *txt = NULL;
int pri = LOG_INFO;
- extern char *__progname;
if (level > log_level)
return;
int askpass(const char *filename, RSA *key, const char *saved_comment, char **comment);
#endif /* USE_EXTERNAL_ASKPASS */
+#ifdef HAVE___PROGNAME
+extern char *__progname;
+#else /* HAVE___PROGNAME */
+const char *__progname = "ssh-add";
+#endif /* HAVE___PROGNAME */
+
void
delete_file(AuthenticationConnection *ac, const char *filename)
{
/* check if RSA support exists */
if (rsa_alive() == 0) {
- extern char *__progname;
fprintf(stderr,
"%s: no RSA support in libssl and libcrypto. See ssl(8).\n",
#include <ssl/md5.h>
#endif
+#ifdef HAVE___PROGNAME
+extern char *__progname;
+#else /* HAVE___PROGNAME */
+const char *__progname = "ssh-agent";
+#endif /* HAVE___PROGNAME */
+
typedef struct
{
int fd;
void
usage()
{
- extern char *__progname;
-
fprintf(stderr, "ssh-agent version %s\n", SSH_VERSION);
fprintf(stderr, "Usage: %s [-c | -s] [-k] [command {args...]]\n",
__progname);
/* check if RSA support exists */
if (rsa_alive() == 0) {
- extern char *__progname;
fprintf(stderr,
"%s: no RSA support in libssl and libcrypto. See ssl(8).\n",
__progname);
#include "ssh.h"
#include "xmalloc.h"
+#ifdef HAVE___PROGNAME
+extern char *__progname;
+#else /* HAVE___PROGNAME */
+const char *__progname = "ssh-keygen";
+#endif /* HAVE___PROGNAME */
+
/* Generated private key. */
RSA *private_key;
/* check if RSA support exists */
if (rsa_alive() == 0) {
- extern char *__progname;
fprintf(stderr,
"%s: no RSA support in libssl and libcrypto. See ssl(8).\n",
#include "readconf.h"
#include "uidswap.h"
+#ifdef HAVE___PROGNAME
+extern char *__progname;
+#else /* HAVE___PROGNAME */
+const char *__progname = "ssh";
+#endif /* HAVE___PROGNAME */
+
/* Flag indicating whether debug mode is on. This can be set on the
command line. */
int debug_flag = 0;
/* check if RSA support exists */
if (rsa_alive() == 0) {
- extern char *__progname;
fprintf(stderr,
"%s: no RSA support in libssl and libcrypto. See ssl(8).\n",
#include "uidswap.h"
#include "compat.h"
+#ifdef HAVE_MAILLOCK_H
+# include <maillock.h>
+#endif
+
#ifdef LIBWRAP
#include <tcpd.h>
#include <syslog.h>