- add defines for comatibility with older FreeBSD releases 3.x and 2.2.8

SHUT_RD, SHUT_WR, SHUT_RDWR
	INET_ADDRSTRLEN
- add dirname() from FreeBSD 4.5
- use utimes instead of futimes fore FreeBSD < 4.x
This commit is contained in:
Dirk Meyer 2002-03-08 20:51:56 +00:00
parent 6c9fcf063c
commit d645ac0bfa
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=55743
3 changed files with 127 additions and 8 deletions

View File

@ -1,5 +1,5 @@
--- includes.h.orig Fri Apr 14 06:30:31 2000 --- includes.h.orig Sat Jan 26 17:44:22 2002
+++ includes.h Sat May 13 12:12:41 2000 +++ includes.h Fri Mar 8 20:59:17 2002
@@ -24,12 +24,12 @@ @@ -24,12 +24,12 @@
#include <sys/select.h> #include <sys/select.h>
#include <sys/param.h> #include <sys/param.h>
@ -22,7 +22,7 @@
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#include <errno.h> #include <errno.h>
@@ -65,5 +64,30 @@ @@ -62,5 +61,46 @@
* client program. Socketpairs do not seem to work on all systems. * client program. Socketpairs do not seem to work on all systems.
*/ */
#define USE_PIPES 1 #define USE_PIPES 1
@ -50,6 +50,22 @@
+ int64_t __ss_align; /* force desired structure storage alignment */ + int64_t __ss_align; /* force desired structure storage alignment */
+ char __ss_pad2[_SS_PAD2SIZE]; + char __ss_pad2[_SS_PAD2SIZE];
+}; +};
+
+/* defines for comatibility with older FreeBSD releases */
+#ifndef SHUT_RD
+#define SHUT_RD 0
+#endif
+#ifndef SHUT_WR
+#define SHUT_WR 1
+#endif
+#ifndef SHUT_RDWR
+#define SHUT_RDWR 2
+#endif
+
+#ifndef INET_ADDRSTRLEN
+#define INET_ADDRSTRLEN 46
+#endif
+
+#endif +#endif
#endif /* INCLUDES_H */ #endif /* INCLUDES_H */

View File

@ -1,8 +1,86 @@
--- auth.c.orig Sat Nov 4 17:30:17 2000 --- auth.c.orig Fri Mar 1 14:12:10 2002
+++ auth.c Sat Nov 4 17:29:00 2000 +++ auth.c Fri Mar 8 20:57:17 2002
@@ -111,6 +111,16 @@ @@ -25,7 +25,77 @@
return 0; #include "includes.h"
} RCSID("$OpenBSD: auth.c,v 1.35 2002/03/01 13:12:10 markus Exp $");
+#if defined(__FreeBSD__) && __FreeBSD__ <= 3
+/*
+ * Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+char *
+dirname(path)
+ const char *path;
+{
+ static char bname[MAXPATHLEN];
+ register const char *endp;
+
+ /* Empty or NULL string gets treated as "." */
+ if (path == NULL || *path == '\0') {
+ (void)strcpy(bname, ".");
+ return(bname);
+ }
+
+ /* Strip trailing slashes */
+ endp = path + strlen(path) - 1;
+ while (endp > path && *endp == '/')
+ endp--;
+
+ /* Find the start of the dir */
+ while (endp > path && *endp != '/')
+ endp--;
+
+ /* Either the dir is "/" or there are no slashes */
+ if (endp == path) {
+ (void)strcpy(bname, *endp == '/' ? "/" : ".");
+ return(bname);
+ } else {
+ do {
+ endp--;
+ } while (endp > path && *endp == '/');
+ }
+
+ if (endp - path + 2 > sizeof(bname)) {
+ errno = ENAMETOOLONG;
+ return(NULL);
+ }
+ (void)strncpy(bname, path, endp - path + 1);
+ bname[endp - path + 1] = '\0';
+ return(bname);
+}
+#else
#include <libgen.h>
+#endif
#include "xmalloc.h"
#include "match.h"
@@ -141,6 +211,16 @@
}
ga_free();
} }
+#ifdef __FreeBSD__ +#ifdef __FreeBSD__
+ /* Fail if the account's expiration time has passed. */ + /* Fail if the account's expiration time has passed. */

View File

@ -0,0 +1,25 @@
--- sftp-server.c.orig Wed Feb 13 01:28:13 2002
+++ sftp-server.c Fri Mar 8 21:15:56 2002
@@ -614,6 +614,9 @@
u_int32_t id;
int handle, fd, ret;
int status = SSH2_FX_OK;
+#if defined(__FreeBSD__) && __FreeBSD__ <= 3
+ char *name;
+#endif
id = get_int();
handle = get_handle();
@@ -634,7 +637,12 @@
status = errno_to_portable(errno);
}
if (a->flags & SSH2_FILEXFER_ATTR_ACMODTIME) {
+#if defined(__FreeBSD__) && __FreeBSD__ <= 3
+ name = handle_to_name(handle);
+ ret = utimes(name, attrib_to_tv(a));
+#else
ret = futimes(fd, attrib_to_tv(a));
+#endif
if (ret == -1)
status = errno_to_portable(errno);
}