* protect more of the AF_INET6 stuff with #ifdef INET6 (for portability)

* in the main data moving loops only call the initial gettimeofday() if
  rate throttling is enabled (saves a system call per loop when not
  throttling).
This commit is contained in:
lukem 1999-09-21 13:17:22 +00:00
parent 0afae6fc87
commit 84e2c387e7
2 changed files with 25 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: fetch.c,v 1.70 1999/09/21 12:57:51 lukem Exp $ */ /* $NetBSD: fetch.c,v 1.71 1999/09/21 13:17:22 lukem Exp $ */
/*- /*-
* Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc. * Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc.
@ -38,7 +38,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifndef lint #ifndef lint
__RCSID("$NetBSD: fetch.c,v 1.70 1999/09/21 12:57:51 lukem Exp $"); __RCSID("$NetBSD: fetch.c,v 1.71 1999/09/21 13:17:22 lukem Exp $");
#endif /* not lint */ #endif /* not lint */
/* /*
@ -1083,7 +1083,8 @@ fetch_url(url, proxyenv, proxyauth, wwwauth)
struct timeval then, now, td; struct timeval then, now, td;
off_t bufrem; off_t bufrem;
(void)gettimeofday(&then, NULL); if (rate_get)
(void)gettimeofday(&then, NULL);
bufrem = rate_get ? rate_get : BUFSIZ; bufrem = rate_get ? rate_get : BUFSIZ;
while (bufrem > 0) { while (bufrem > 0) {
len = fread(buf, sizeof(char), len = fread(buf, sizeof(char),

View File

@ -1,4 +1,4 @@
/* $NetBSD: ftp.c,v 1.61 1999/09/14 22:49:14 mycroft Exp $ */ /* $NetBSD: ftp.c,v 1.62 1999/09/21 13:17:22 lukem Exp $ */
/* /*
* Copyright (C) 1997 and 1998 WIDE Project. * Copyright (C) 1997 and 1998 WIDE Project.
@ -67,7 +67,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)ftp.c 8.6 (Berkeley) 10/27/94"; static char sccsid[] = "@(#)ftp.c 8.6 (Berkeley) 10/27/94";
#else #else
__RCSID("$NetBSD: ftp.c,v 1.61 1999/09/14 22:49:14 mycroft Exp $"); __RCSID("$NetBSD: ftp.c,v 1.62 1999/09/21 13:17:22 lukem Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -125,12 +125,20 @@ union sockunion {
#endif #endif
u_short si_port; u_short si_port;
#ifndef BSD4_4 #ifndef BSD4_4
u_char si_pad[sizeof(struct sockaddr_in6) - sizeof(u_int)]; u_char si_pad[
#ifdef INET6
sizeof(struct sockaddr_in6)
#else
sizeof(struct sockaddr_in)
#endif
- sizeof(u_int)];
u_char si_len; u_char si_len;
#endif #endif
} su_si; } su_si;
struct sockaddr_in su_sin; struct sockaddr_in su_sin;
#ifdef INET6
struct sockaddr_in6 su_sin6; struct sockaddr_in6 su_sin6;
#endif
}; };
#define su_len su_si.si_len #define su_len su_si.si_len
@ -795,7 +803,8 @@ sendrequest(cmd, local, remote, printnames)
off_t bufrem, bufsize; off_t bufrem, bufsize;
bufsize = sizeof(buf); bufsize = sizeof(buf);
(void)gettimeofday(&then, NULL); if (rate_put)
(void)gettimeofday(&then, NULL);
errno = c = d = 0; errno = c = d = 0;
bufrem = rate_put ? rate_put : bufsize; bufrem = rate_put ? rate_put : bufsize;
while (bufrem > 0) { while (bufrem > 0) {
@ -1150,7 +1159,8 @@ recvrequest(cmd, local, remote, lmode, printnames, ignorespecial)
struct timeval then, now, td; struct timeval then, now, td;
off_t bufrem; off_t bufrem;
(void)gettimeofday(&then, NULL); if (rate_get)
(void)gettimeofday(&then, NULL);
errno = c = d = 0; errno = c = d = 0;
bufrem = rate_get ? rate_get : bufsize; bufrem = rate_get ? rate_get : bufsize;
while (bufrem > 0) { while (bufrem > 0) {
@ -1347,11 +1357,13 @@ initconn()
u_int af, hal, pal; u_int af, hal, pal;
char *pasvcmd = NULL; char *pasvcmd = NULL;
#ifdef INET6
if (myctladdr.su_family == AF_INET6 if (myctladdr.su_family == AF_INET6
&& (IN6_IS_ADDR_LINKLOCAL(&myctladdr.su_sin6.sin6_addr) && (IN6_IS_ADDR_LINKLOCAL(&myctladdr.su_sin6.sin6_addr)
|| IN6_IS_ADDR_SITELOCAL(&myctladdr.su_sin6.sin6_addr))) { || IN6_IS_ADDR_SITELOCAL(&myctladdr.su_sin6.sin6_addr))) {
warnx("use of scoped address can be troublesome"); warnx("use of scoped address can be troublesome");
} }
#endif
reinit: reinit:
if (passivemode) { if (passivemode) {
data_addr = myctladdr; data_addr = myctladdr;
@ -1383,6 +1395,7 @@ reinit:
if (result != COMPLETE) if (result != COMPLETE)
result = command(pasvcmd = "PASV"); result = command(pasvcmd = "PASV");
break; break;
#ifdef INET6
case AF_INET6: case AF_INET6:
result = command(pasvcmd = "EPSV"); result = command(pasvcmd = "EPSV");
/* this code is to be friendly with broken BSDI ftpd */ /* this code is to be friendly with broken BSDI ftpd */
@ -1395,6 +1408,7 @@ reinit:
if (result != COMPLETE) if (result != COMPLETE)
result = command(pasvcmd = "LPSV"); result = command(pasvcmd = "LPSV");
break; break;
#endif
default: default:
result = COMPLETE + 1; result = COMPLETE + 1;
break; break;
@ -1485,6 +1499,7 @@ reinit:
htonl(pack4(addr, 0)); htonl(pack4(addr, 0));
data_addr.su_port = htons(pack2(port, 0)); data_addr.su_port = htons(pack2(port, 0));
break; break;
#ifdef INET6
case AF_INET6: case AF_INET6:
error = sscanf(pasv, error = sscanf(pasv,
"%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u", "%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u",
@ -1522,6 +1537,7 @@ reinit:
} }
data_addr.su_port = htons(pack2(port, 0)); data_addr.su_port = htons(pack2(port, 0));
break; break;
#endif
default: default:
error = 1; error = 1;
} }