+20011126
+ - (tim) [contrib/cygwin/README, openbsd-compat/bsd-cygwin_util.c,
+ openbsd-compat/bsd-cygwin_util.h, openbsd-compat/daemon.c]
+ Allow SSHD to install as service under WIndows 9x/Me
+ [configure.ac] Fix to allow linking against PCRE on Cygwin
+ Patches by Corinna Vinschen <vinschen@redhat.com>
+
20011115
- (djm) Fix IPv4 default in ssh-keyscan. Spotted by Dan Astoorian
<djast@cs.toronto.edu> Fix from markus@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
-$Id: ChangeLog,v 1.1665 2001/11/15 12:16:50 djm Exp $
+$Id: ChangeLog,v 1.1666 2001/11/27 01:19:43 tim Exp $
-# $Id: configure.ac,v 1.4 2001/11/03 19:09:33 tim Exp $
+# $Id: configure.ac,v 1.5 2001/11/27 01:19:43 tim Exp $
AC_INIT
AC_CONFIG_SRCDIR([ssh.c])
AC_DEFINE(DISABLE_LASTLOG)
;;
*-*-cygwin*)
- LIBS="$LIBS -lregex /usr/lib/textmode.o"
+ LIBS="$LIBS /usr/lib/textmode.o"
AC_DEFINE(HAVE_CYGWIN)
AC_DEFINE(USE_PIPES)
AC_DEFINE(DISABLE_SHADOW)
# We don't want to check if we did an pcre override.
if test -z "$no_comp_check" ; then
AC_CHECK_FUNC(regcomp,
- [ AC_DEFINE(HAVE_REGCOMP)],
[
- AC_CHECK_LIB(pcre, pcre_info,
+ AC_CHECK_FUNC(regsub,
+ [
+ has_regcomp=no
+ ],
+ [
+ AC_DEFINE(HAVE_REGCOMP)
+ has_regcomp=yes
+ ]
+ )
+ ],
+ [
+ has_regcomp=no
+ ]
+ )
+ # Either regcomp wasn't defined or regsub is defined (which means
+ # that the libc regex is probably an old non-POSIX implementation.
+ # Now check for -lregex and -lpcreposix to find some usable regex
+ # implementation.
+ if test "$has_regcomp" = "no" ; then
+ AC_CHECK_LIB(regex, regcomp,
[
- AC_DEFINE(HAVE_LIBPCRE)
- LIBS="$LIBS -lpcreposix -lpcre"
+ AC_DEFINE(HAVE_REGCOMP)
+ LIBS="$LIBS -lregex"
],
[
- AC_MSG_ERROR([*** No regex library found.])
- ])
- ]
- )
+ AC_CHECK_LIB(pcre, pcre_info,
+ [
+ AC_DEFINE(HAVE_LIBPCRE)
+ LIBS="$LIBS -lpcreposix -lpcre"
+ ],
+ [
+ AC_MSG_ERROR([*** No regex library found.])
+ ])
+ ]
+ )
+ fi
fi
dnl UnixWare 2.x
This package is the actual port of OpenSSH to Cygwin 1.3.
+===========================================================================
+Important change since 3.0.1p1-2:
+
+This version introduces the ability to register sshd as service on
+Windows 9x/Me systems. This is done only when the options -D and/or
+-d are not given.
+===========================================================================
+
===========================================================================
Important change since 2.9p2:
--prefix=/usr \
--sysconfdir=/etc \
- --libexecdir='${exec_prefix}/sbin \
- --with-pcre
+ --libexecdir='${exec_prefix}/sbin'
You must have installed the zlib, openssl and regex packages to
-be able to build OpenSSH! The `--with-pcre' option requires
-the installation of the pcre package.
+be able to build OpenSSH!
Please send requests, error reports etc. to cygwin@cygwin.com.
#include "includes.h"
-RCSID("$Id: bsd-cygwin_util.c,v 1.5 2001/07/18 16:19:49 mouring Exp $");
+RCSID("$Id: bsd-cygwin_util.c,v 1.6 2001/11/27 01:19:44 tim Exp $");
#ifdef HAVE_CYGWIN
return 0;
}
+void register_9x_service(void)
+{
+ HINSTANCE kerneldll;
+ DWORD (*RegisterServiceProcess)(DWORD, DWORD);
+
+ /* The service register mechanism in 9x/Me is pretty different from
+ * NT/2K/XP. In NT/2K/XP we're using a special service starter
+ * application to register and control sshd as service. This method
+ * doesn't play nicely with 9x/Me. For that reason we register here
+ * as service when running under 9x/Me. This function is only called
+ * by the child sshd when it's going to daemonize.
+ */
+ if (is_winnt)
+ return;
+ if (! (kerneldll = LoadLibrary("KERNEL32.DLL")))
+ return;
+ if (! (RegisterServiceProcess = (DWORD (*)(DWORD, DWORD))
+ GetProcAddress(kerneldll, "RegisterServiceProcess")))
+ return;
+ RegisterServiceProcess(0, 1);
+}
+
#endif /* HAVE_CYGWIN */
* binary mode on Windows systems.
*/
-/* $Id: bsd-cygwin_util.h,v 1.4 2001/04/13 14:28:43 djm Exp $ */
+/* $Id: bsd-cygwin_util.h,v 1.5 2001/11/27 01:19:44 tim Exp $ */
#ifndef _BSD_CYGWIN_UTIL_H
#define _BSD_CYGWIN_UTIL_H
int binary_pipe(int fd[2]);
int check_nt_auth(int pwd_authenticated, uid_t uid);
int check_ntsec(const char *filename);
+void register_9x_service(void);
#define open binary_open
#define pipe binary_pipe
case -1:
return (-1);
case 0:
+#ifdef HAVE_CYGWIN
+ register_9x_service();
+#endif
break;
default:
#ifdef HAVE_CYGWIN