Merge branch 'vendor/TNFTP'
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 8 Jan 2012 20:43:07 +0000 (12:43 -0800)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 8 Jan 2012 20:43:07 +0000 (12:43 -0800)
1  2 
contrib/tnftp/cmds.c
contrib/tnftp/fetch.c
contrib/tnftp/util.c

diff --combined contrib/tnftp/cmds.c
@@@ -1,4 -1,4 +1,4 @@@
- /*    $NetBSD: cmds.c,v 1.131 2010/01/12 06:50:04 lukem Exp $ */
+ /*    $NetBSD: cmds.c,v 1.132 2011/09/16 15:39:26 joerg Exp $ */
  
  /*-
   * Copyright (c) 1996-2009 The NetBSD Foundation, Inc.
@@@ -96,7 -96,7 +96,7 @@@
  #if 0
  static char sccsid[] = "@(#)cmds.c    8.6 (Berkeley) 10/9/94";
  #else
- __RCSID("$NetBSD: cmds.c,v 1.131 2010/01/12 06:50:04 lukem Exp $");
+ __RCSID("$NetBSD: cmds.c,v 1.132 2011/09/16 15:39:26 joerg Exp $");
  #endif
  #endif /* not lint */
  
  #include <paths.h>
  #include <stddef.h>
  #include <stdio.h>
 +#include <libutil.h>
  #include <stdlib.h>
  #include <string.h>
  #include <time.h>
@@@ -143,7 -142,7 +143,7 @@@ static struct types 
  static sigjmp_buf      jabort;
  
  static int    confirm(const char *, const char *);
static void   mintr(int);
__dead static void    mintr(int);
  static void   mabort(const char *);
  static void   set_type(const char *);
  
diff --combined contrib/tnftp/fetch.c
@@@ -1,4 -1,4 +1,4 @@@
- /*    $NetBSD: fetch.c,v 1.193 2010/03/05 07:41:10 lukem Exp $        */
+ /*    $NetBSD: fetch.c,v 1.195 2011/12/10 05:53:58 lukem Exp $        */
  
  /*-
   * Copyright (c) 1997-2009 The NetBSD Foundation, Inc.
@@@ -34,7 -34,7 +34,7 @@@
  
  #include <sys/cdefs.h>
  #ifndef lint
- __RCSID("$NetBSD: fetch.c,v 1.193 2010/03/05 07:41:10 lukem Exp $");
+ __RCSID("$NetBSD: fetch.c,v 1.195 2011/12/10 05:53:58 lukem Exp $");
  #endif /* not lint */
  
  /*
  #include <arpa/ftp.h>
  #include <arpa/inet.h>
  
+ #include <assert.h>
  #include <ctype.h>
  #include <err.h>
  #include <errno.h>
  #include <netdb.h>
  #include <fcntl.h>
  #include <stdio.h>
 +#include <libutil.h>
  #include <stdlib.h>
  #include <string.h>
  #include <unistd.h>
@@@ -75,7 -75,7 +76,7 @@@ typedef enum 
        CLASSIC_URL_T
  } url_t;
  
void          aborthttp(int);
__dead static void    aborthttp(int);
  #ifndef NO_AUTH
  static int    auth_url(const char *, char **, const char *, const char *);
  static void   base64_encode(const unsigned char *, size_t, unsigned char *);
@@@ -1126,6 -1126,7 +1127,7 @@@ fetch_url(const char *url, const char *
        (void)xsignal(SIGQUIT, psummary);
        oldintr = xsignal(SIGINT, aborthttp);
  
+       assert(rcvbuf_size > 0);
        if ((size_t)rcvbuf_size > bufsize) {
                if (xferbuf)
                        (void)free(xferbuf);
  /*
   * Abort a HTTP retrieval
   */
- void
static void
  aborthttp(int notused)
  {
        char msgbuf[100];
diff --combined contrib/tnftp/util.c
@@@ -1,4 -1,4 +1,4 @@@
- /*    $NetBSD: util.c,v 1.155 2010/06/05 13:59:39 lukem Exp $ */
+ /*    $NetBSD: util.c,v 1.156 2011/12/10 05:53:58 lukem Exp $ */
  
  /*-
   * Copyright (c) 1997-2009 The NetBSD Foundation, Inc.
@@@ -64,7 -64,7 +64,7 @@@
  
  #include <sys/cdefs.h>
  #ifndef lint
- __RCSID("$NetBSD: util.c,v 1.155 2010/06/05 13:59:39 lukem Exp $");
+ __RCSID("$NetBSD: util.c,v 1.156 2011/12/10 05:53:58 lukem Exp $");
  #endif /* not lint */
  
  /*
@@@ -1080,6 -1080,32 +1080,32 @@@ strsuftoi(const char *arg
  void
  setupsockbufsize(int sock)
  {
+       socklen_t slen;
+       if (0 == rcvbuf_size) {
+               slen = sizeof(rcvbuf_size);
+               if (getsockopt(sock, SOL_SOCKET, SO_RCVBUF,
+                   (void *)&rcvbuf_size, &slen) == -1)
+                       err(1, "Unable to determine rcvbuf size");
+               if (rcvbuf_size <= 0)
+                       rcvbuf_size = 8 * 1024;
+               if (rcvbuf_size > 8 * 1024 * 1024)
+                       rcvbuf_size = 8 * 1024 * 1024;
+               DPRINTF("setupsockbufsize: rcvbuf_size determined as %d\n",
+                   rcvbuf_size);
+       }
+       if (0 == sndbuf_size) {
+               slen = sizeof(sndbuf_size);
+               if (getsockopt(sock, SOL_SOCKET, SO_SNDBUF,
+                   (void *)&sndbuf_size, &slen) == -1)
+                       err(1, "Unable to determine sndbuf size");
+               if (sndbuf_size <= 0)
+                       sndbuf_size = 8 * 1024;
+               if (sndbuf_size > 8 * 1024 * 1024)
+                       sndbuf_size = 8 * 1024 * 1024;
+               DPRINTF("setupsockbufsize: sndbuf_size determined as %d\n",
+                   sndbuf_size);
+       }
  
        if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF,
            (void *)&sndbuf_size, sizeof(sndbuf_size)) == -1)
@@@ -1500,7 -1526,8 +1526,7 @@@ voi
  ftp_sl_add(StringList *sl, char *i)
  {
  
 -      if (sl_add(sl, i) == -1)
 -              err(1, "Unable to add `%s' to stringlist", i);
 +      sl_add(sl, i);
  }
  
  /*