1 Mon Jun 10 08:12:35 UTC 2002 lukem
3 * crank FTP_VERSION from 1.6-beta1 to 1.6-beta2
5 * replace missing fseeko(), with a wrapper to fseek() which
6 checks that the offset isn't > LONG_MAX
8 * #include <regex.h> #if HAVE_REGEX_H
10 Mon Jun 10 01:27:46 UTC 2002 lukem
12 * check for and replace sa_family_t definition
14 * don't bother checking for issetugid(); it was only used in the
15 internal libedit to prevent $HOME/.editrc from being used if
16 running set-id, and the newer libedit code wouldn't even read
17 $HOME/.editrc if issetugid() wasn't available. as many target
18 operating systems don't have issetugid(), and lukemftp isn't
19 likely to be run set-id (and $HOME/.netrc is used in any case),
20 the issetugid() check has been disabled in libedit.
22 * add back cpp code which #defines REGEX #if HAVE_REGEX_H
24 Wed Jun 5 14:39:11 UTC 2002 lukem
26 * crank FTP_VERSION from 1.6alpha1 to 1.6-beta1
28 * implement replacement setprogname()
30 * use getprogname() instead of __progname
32 * convert to christos' replacement fgetln(), as it's better than mine
34 * merge ftp from NetBSD 20020605 to 20020606:
36 - only support -6 if INET6 is defined
38 Wed Jun 5 13:08:25 UTC 2002 lukem
40 * don't bother checking if <glob.h> is usable (see below).
42 * always compile in local glob; it's the best way to ensure that
43 various security issues are fixed
45 * update libukem/glob.c from NetBSD's __glob13.c rev 1.22 and rev 1.23
47 * merge libedit from NetBSD 20010413 to 20020606:
48 - constify; passes all gcc and lint strict checks.
49 - add config.h [Jason Evans], to create a portable version of
50 libedit that can be easily compiled on other OS's.
51 - PR/12963:Jason Waterman: Fix signed cast problems.
52 - Fixed an __P remnant
54 - Generate <>& symbolically.
55 - Punctuation and whitespace nits, fix a typo.
56 - PR/14188: Anthony Mallet: Provide an opaque data
57 pointer to client programs.
58 - a couple of minor fixes. originally by Ruslan Ermilov
59 <ru@FreeBSD.org>, highlighted to me by way of Mike Barcroft
60 <mike@FreeBSD.org> (thanks!)
61 - PR/14067: Anthony Mallet: Provide a programmatic way
62 to set the read_char function via a new el_set() operation.
63 Thanks, nicely done :-)
64 - `existent', not `existant'
65 - Don't use HAVE_ yet.
67 - Remove an unused variable.
68 - If term_init() fails, cleanup and return NULL. This
69 avoids other lossage. Pointed by charles.
70 - va_{start,end} audit: Make sure that each va_start has one
71 and only one matching va_end, especially in error cases.
72 If the va_list is used multiple times, do multiple
73 va_starts/va_ends. If a function gets va_list as argument,
74 don't let it use va_end (since it's the callers
75 responsibility). Improved by comments from enami and
77 - history_def_enter: fix off-by-one mistake in delete
78 condition (the behaviour to keep at least one entry on the
79 history list is retained). This fixes lib/9704 by Phil Nelson.
81 * merge ftp from NetBSD 20020524 to 20020605:
82 - when showing the final progress bar, replace "00:00 ETA"
83 with the elapsed time. (suggested by simonb)
84 - actually display transfer stats after a URL fetch.
85 (bug introduced a *long* time ago)
86 - update copyright & version
88 * merge ftp from NetBSD 20001127 to 20020524:
89 - Use "r+" instead of "r+w", since the latter is not standard.
90 Noted by <Steve.McClellan@radisys.com> in private email.
91 - Only send port number in HTTP/1.1 Host: request if port !=
92 80. Fixes [bin/15415] from Takahiro Kambe
93 <taca@sky.yamashina.kyoto.jp>
94 - Fix bad mode passed by mls() to recvrequest(). Fixes
95 [bin/16642] from <steve.mcclellan@radisys.com>
98 - invoke cmdtab.c_handler()s with argv[0] == c_name instead
99 of the supplied name. that way the full (unambiguous) name
100 is displayed in error messages and usage strings.
101 - line2 may overrun if line is too long (> 200). be more
103 - Handle URLs without files correctly (e.g, when using '-o -').
104 Fix from Anders Dinsen <anders@dinsen.net> in [bin/13768]
105 - portnum is unsigned, use %u instead of %d
106 - Add -4 to force IPv4 and -6 to force IPv6 address usage.
107 From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
108 - use u_char instead of char in base64_encode().
109 problem noticed by Jorgen Lundman in private mail.
110 - don't make broken file with -R option.
111 - handle "*" in Content-Range properly.
112 - If no_proxy condition is true && urltype == FTP_URL_T,
113 use fetch_ftp to retrieve
114 - convert to use getprogname()
115 - Fix description for "form", "mode", and "struct" commands.
116 Inspired by [bin/16736] from Steve McClellan
117 <steve.mcclellan@radisys.com>
118 - Generate <>& symbolically. I'm avoiding .../dist/...
121 - Whitespace cleanup.
122 - put "site" in alphabetical order. noted by Mike Barcroft
124 - avoid buffer overrun on PASV from malicious server.
125 - Large file ASCII mode support by using fseeko()
126 instead of fseek(). From Andrey A. Chernov of FreeBSD,
128 - Deal with const'ification if el_parse().
129 - call setlocale() on startup
130 - display a limited progress bar (containing bytes xferred
131 and xfer rate) when the file size is unknown
132 - disable progress bar during remglob()
134 Thu Mar 14 05:41:49 UTC 2002 lukem
136 * ensure all AF_INET6 use is protected with #ifdef INET6
138 * remove unnecessary __attribute__ goop
140 * libukem/snprintf.c: fix compile errors with gcc 3.x
142 Tue Apr 17 08:07:29 UTC 2001 lukem
144 * autoconf check for %q long long support in *printf()
145 (instead of %ll), define and use HAVE_PRINTF_QD if so
147 * ipv6 isn't compatible with socks, so disable the former
149 * look for <libutil.h> (instead of <util.h>) and <arpa/nameser.h>
151 * don't check for fparseln() twice
153 * fix getaddrinfo() checks
155 * crank FTP_VERSION from 1.5 to 1.6alpha1
157 * always ensure _PATH_BSHELL and _PATH_TMP are defined
159 * prototype inet_pton() if its missing
161 * don't bother trying to use if_indextoname() in ip6_sa2str()
162 (fixes problems on MacOS X)
164 * in inet_pton(), pull in <arpa/nameser.h> for IN6ADDRSZ and INT16SZ,
165 and define if missing
167 Fri Apr 13 15:24:44 UTC 2001 lukem
169 * only include <arpa/nameser.h> if we have it
171 * update glob(3) to netbsd-current (20010329), adding support
172 for GLOB_LIMIT and fixing various buffer overflows.
174 * update editline from NetBSD 20000915 -> NetBSD 20010413
175 - Enlarge editline buffers as needed to support arbitrary
176 length lines. This also addresses lib/9712 by Phil Nelson.
177 - consistently check for allocation failures and return -1,
178 if we could not get more memory.
179 - add support for home and end keys.
180 - improve debugging support
181 - el_line_t: make 'limit' const
183 Mon Nov 27 23:23:40 EST 2000 lukem
185 * merge ftp from NetBSD-current (20001127):
186 - implement "mreget"; as per "mget" but uses "reget" instead
188 - add -N netrc and $NETRC, as methods to select an alternative
190 - cache local user name and home directory for further use
191 - in mget(), use docase() instead of a local version to do
193 - format string cleanups
194 - be more explicit that $ftp_proxy and $http_proxy are not
195 supported for interactive sessions
196 - cope with 2553bis getnameinfo (always attach scope id)
197 getnameinfo error check.
198 - use NI_MAXHOST with getnameinfo. we can assume presence of
201 Tue Nov 7 00:16:23 EST 2000 lukem
203 * libukem/snprintf.c had a non-functional `%s' due to a
204 function declaration mismatch. problem found and fixed
205 by Hubert Feyrer <hubert@feyrer.de>
207 Wed Oct 11 14:06:19 EST 2000 lukem
209 * released version 1.5
211 Tue Oct 3 10:22:36 EST 2000 lukem
213 * crank to version 1.5 beta6
215 * merge ftp from NetBSD-current (20001003)
216 - explicitly use SOCK_STREAM with socket() instead of
217 res->ai_socktype, because it appears that linux with glibc
218 doesn't set the latter correctly after one of getaddrinfo()
220 - clarify that $ftp_proxy only works for full URLs and can't
221 be used for interactive connections.
223 Mon Sep 25 21:52:12 EST 2000 lukem
225 * crank to version 1.5 beta5
227 Sun Sep 24 13:31:19 EST 2000 lukem
229 * merge ftp from NetBSD-current (20000924)
230 - since everything else here uses ANSI C, we might as well
231 replace __STRING() with the ANSI C stringization stuff...
232 - base64_encode should be static. picked up by hp/ux(!)
234 - It appears that whilst Apache 1.3.9 incorrectly puts a
235 trailing space after the chunksize (before the \r\n),
236 Apache 1.3.11 puts *multiple* trailing spaces after the
237 chunksize. I 'm fairly certain that this is contrary to
238 RFC 2068 section 3.6, but whatever...
239 Found by David Brownlee <abs@mono.org>
240 - always include <netdb.h>, not just when INET6 is defined.
241 resolves PR [bin/10970] by Richard Earnshaw
242 <rearnsha@cambridge.arm.com>>
243 - in progressmeter() perform the check for foregroundproc() a
245 - removed unused variable `items' in list_vertical()
247 Sat Sep 23 15:43:34 EST 2000 lukem
249 * remove unused sverrno in warnx() and errx()
251 * remove unused h_error in getnameinfo()
253 * in getaddrinfo(), don't bother declaring in6_addrany[] and
254 in6_loopback #ifndef INET6
256 Thu Sep 21 11:26:35 EST 2000 lukem
258 * in getaddrinfo.c::str_isnumber(), use strtol() and check the
259 result, instead of using strtoul() and not checking the result.
261 * define INADDRSZ if it's not found (e.g, HP/UX doesn't seem to have
262 it in <arpa/nameser.h>)
264 Wed Sep 20 09:23:59 EST 2000 lukem
266 * crank to version 1.5 beta4
268 Mon Sep 18 18:19:54 EST 2000 lukem
270 * add AC_AIX test, which defines _ALL_SOURCE under AIX
272 * use ANSI # stringization instead of __STRING()
274 * define HAVE_RFC2553_NETDB if <netdb.h> defines AI_NUMERICHOST
275 (et al) and has getaddrinfo(). (some systems only implement RFC2133)
277 * don't bother with AC_C_CONST as we depend upon ANSI C elsewhere
279 * when HAVE_RFC2553_NETDB isn't set, and we're #defining various EAI_,
280 AI_, and NI_ items, #undef first incase a system partially implements
283 * look for tgetent() in -ltinfo before -lncurses, because ncurses 5.0
284 has been split up into multiple libraries.
285 from Arkadiusz Miskiewicz <misiek@pld.org.pl>
287 Fri Sep 15 01:09:10 EST 2000 lukem
289 * don't bother defining __P() or __STRING() based on whether
290 __STDC__ is available or not, since these aren't used any more
292 * fix mkstemp() prototype
294 * declare getpass() if necessary
296 * we don't need the readline xxgdb hack in libedit...
298 * convert to ansi declarations
300 * use ansi prototypes instead of __P()
302 * merge in changes from makelist 1.4 -> 1.6:
303 - generate ansi prototypes instead of using __P(). noted by
305 - fix a couple of comments
306 - add -m option to makelist, which generates an mdoc table
307 with the key bindings and their descriptions
308 - manually add the output of 'sh ./makelist -m vi.c ed.c
309 common.c' to a new section in editrc(5) called
312 * merge libedit from NetBSD-current (20000915)
313 * convert to new style guide, which includes:
314 - ansi prototypes & features (such as stdargs)
316 * history_def_set has a `const int' as a third arg, not an
317 `int'. picked up by the ultrix compiler, reported by
319 * generate ansi prototypes instead of using __P(). noted by
320 christos. fix a couple of comments
321 * make xxgdb and a gdb linked with libedit's readline emulation
322 work properly together. xxgdb communicates with a gdb
323 running on a pty that it sets to -echo,-onlcr prior to
324 forking the gdb process. GNU readline preserves the -echo
325 setting while libedit was undoing it (setting the tty to a
326 sane state and totally confusing xxgdb's parser).
327 this diff simply disables libedit if both readline emulation
328 and "stty -echo" are used/set. that is enough to make
329 xxgdb work once again, but (XXX) this is not how GNU readline
330 handles stty -echo (it does not echo anything, but editing
331 commands like ^A,^K, etc. still work), so the readline
332 emulation isn't perfect.
334 Tue Aug 29 18:00:08 EST 2000 lukem
336 * don't bother testing for #if __STDC__; just assume we have it...
338 Mon Aug 28 22:45:08 EST 2000 lukem
340 * refine tests for IPv6 #defines (EAI_, AI_, NI_, ...).
341 should improve portability on systems which implement
342 RFC 2133 but not RFC 2553.
344 Wed Aug 9 02:12:51 EST 2000 lukem
346 * use #if __STDC__ instead of #ifdef __STDC__
348 * only test 'case NETDB_INTERNAL:' if it's defined
350 * fix support for --program-prefix et al
352 * only include <arpa/nameser.h> in the files that need it, because
353 the DELETE define in some system's implementations causes name
354 collisions in libedit.
356 Mon Aug 7 08:17:37 EST 2000 lukem
358 * merge ftp from NetBSD-current (20000807)
359 * implement parseport(), which takes a string and attempts to
360 convert it to a numeric port number
361 * use parseport() in parse_url() and hookup()
362 * don't try and lookup the port number using getaddrinfo(),
363 as it's too hard to separate a failed host name lookup from
364 a failed service name lookup. this was causing lossage on
365 systems that don't have `http' in services(5) (such as
366 solaris), but only crept in when we started using
367 getaddrinfo() unconditionally.
369 Wed Aug 2 23:43:50 EST 2000 lukem
371 * crank to version 1.5 beta3
373 * define NO_LONG_LONG not NO_QUAD
375 * detect if struct sockaddr.sa_len exists (rather than relying upon
378 * detect if socklen_t exists, and if not, typedef as unsigned int
380 * detect if struct addrinfo exists, and if not declare it and #define
381 associated EAI_, AI_, and NI_ defines.
383 * look for & replace: getaddrinfo(), getnameinfo(), inet_ntop(),
385 * look for gethostbyname2()
387 * don't bother looking for hstrerror() or inet_aton() anymore
389 * include <arpa/nameser.h> and <stddef.h>
391 * define USE_SELECT instead of __USE_SELECT
393 * always define HAVE_H_ERRNO
395 * add Brian Stark to THANKS, for lots of AIX porting feedback
397 * improve detection of sin_len for AIX (now part of sa_len test)
399 * add functions needed by recent ftp import:
400 getaddrinfo(), getnameinfo(), inet_ntop(), inet_pton()
401 remove functions not needed anymore:
402 hstrerror(), inet_aton()
404 * use #if HAVE_ISSETUGID not #ifdef
406 * update from NetBSD-current (20000802):
407 - rename NO_QUAD to NO_LONG_LONG, QUAD* -> LL* and add ULL*
408 (unsigned) equivalents. name change suggested by Klaus
409 Klein <kjk@netbsd.org>
410 - change defined(BSD4_4) || HAVE_SIN_LEN tests into
411 HAVE_SOCKADDR_SA_LEN, and set the latter if BSD4_4 exists
413 Mon Jul 31 10:59:10 EST 2000 lukem
415 * merge ftp from NetBSD-current (20000731)
416 - we can't just rename BSD4_4 -> HAVE_SIN_LEN, since bsd
417 systems define BSD4_4; change tests to test for either
418 defined(BSD4_4) or HAVE_SIN_LEN
421 Sun Jul 30 16:55:09 EST 2000 lukem
423 * merge ftp from NetBSD-current (20000730):
424 - clean up NO_QUAD support: create helper #defines and use as
426 #define NOQUAD ! NOQUAD
427 ------- ------ - ------
429 QUADFP(x) "%" x "ld" "%" x "lld"
431 STRTOL(x,y,z) strtol(x,y,z) strtoll(x,y,z)
432 - always use getaddrinfo() and getnameinfo() instead of
433 maintaining two code paths.
434 - rename __USE_SELECT to USE_SELECT
435 - rename BSD4_4 to HAVE_SIN_LEN
436 - replace union sockunion {} with struct sockinet {}, and
437 modify the code accordingly. this is possibly more portable,
438 as it doesn't rely upon the structure alignment within the
439 union for our own stuff.
441 Fri Jul 28 22:11:17 EST 2000 lukem
443 * merge ftp from NetBSD-current (20000728):
444 - no trailing , on last item (FEAT_max) in enum
445 - rename "opts" to "remopts", so people used to "o host"
448 Wed Jul 26 18:59:19 EST 2000 lukem
450 * merge ftp from NetBSD-current (20000726):
451 - add support for FEAT and OPTS commands with `features' and
452 `opts'. (from RFC 2389).
453 - add support for MLST & MLSD (machine parseble listings)
454 with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands.
455 (from draft-ietf-ftpext-mlst-11)
456 - rename remotesyst() to getremoteinfo(), and modify to parse
457 the result from FEAT (if supported), and take into account
458 the support for the various extensions such as MDTM, SIZE,
459 REST (STREAM), MLSD, and FEAT/OPTS.
460 - put each feature into one of the following categories:
461 - known to work (explicit FEAT)
462 - unknown but assume works until explicit failure,
463 when it's then tagged as `known not to work'.
464 - known not to work (FEAT succeeded but didn't return
465 anything, or was unknown and then explicit failure)
466 assign results into features[] matrix.
467 - add support to getreply() so that an optional callback will
468 be called for each line received from the server except for
469 the first and last. this is used in FEAT (and MLST) parsing.
470 - modify various commands to check if REST (STREAM), MDTM and
471 SIZE are explicitly or implicitly supported before using.
472 - fix `syst' when verbose is off.
473 - minor knf (indent goto labels by one space, etc).
474 - simply various command usage handlers by assuming that
475 argv != NULL except for quit() and disconnect().
476 - errx?/warnx? audit. do not pass variable alone, use %s.
478 * check for issetugid() and don't use in libedit if it doesn't exist.
480 * merge libedit from NetBSD-current (20000726):
481 * Only look in home directory for .editrc. (Discussed
484 * in glob.c #undef TILDE before redefining, because some AIX systems
485 #define TILDE in <sys/ioctl.h>
487 Mon Jul 10 00:28:51 EST 2000 lukem
489 * released lukemftp 1.4
491 Thu Jun 15 23:28:49 EST 2000 lukem
493 * merge ftp from NetBSD-current (20000615):
494 * migrate the SYST parsing from setpeer() into a separate
495 remotesyst(). call remotesyst() only when login has been
496 successful some servers don't let you run SYST until you've
497 successfully logged in.
498 * in fetch_ftp(), always call setpeer() with autologin
499 disabled, and use the following ftp_login() to DTRT. this
500 prevents ftp from trying to login a second time if the
501 first autologin fails when connecting to a remote site
502 anonymously using autofetch.
503 * reset unix_proxy and unix_server in cleanuppeer()
504 * missed a function conversion in the KNF sweep...
506 Mon Jun 12 01:16:12 EST 2000 lukem
508 * change lukemftp.h to check !HAVE_STRDUP instead of !HAVE_STRSUP.
509 fixes compile problem on systems which have strdup() as a macro.
511 * merge ftp from NetBSD-current (20000612):
512 from itojun: better fix for previous (doesn't need
513 in_addr_t or u_int32_t)
515 Sun Jun 11 12:19:52 EST 2000 lukem
517 * merge ftp from NetBSD-current (20000611):
518 portability fixes for lukemftp:
519 * initconn(): use in_addr_t instead of u_int32_t when
520 manipulating IPv6 addresses (and assume anything with ipv6
521 has in_addr_t; if not, i'll add an autoconf test for it)
522 * ai_unmapped(): not all systems have sin_len; so only set
526 Mon Jun 5 21:10:31 EST 2000 lukem
528 * released lukemftp 1.3
530 Mon Jun 5 19:53:49 EST 2000 lukem
532 * convert various support files to ANSI C
534 * look for strtoll() instead of strtoq()
536 * update COPYRIGHT, THANKS, NEWS
538 * merge ftp from NetBSD-current (20000605):
539 - fix ai_unmapped() to be a no-op in the !def INET6 case
540 - display `(-INET6)' at the end of the version string if
542 - clarify in the man page that IPv6 support may not be present
545 * ensure <vis.h> has VIS_WHITE et al
547 Sun Jun 4 18:00:07 EST 2000 lukem
549 * merge ftp from NetBSD-current (20000604):
550 - Change `ls' to use the `LIST' and not `NLST' FTP protocol
551 command. Now that after many years on not caring we find
552 certain popular ftp servers are starting to obey RFC959 to
553 the letter of the law and will only return a list of
554 filenames (not directories or other filetypes) in the
555 output of `NLST', then `LIST' is more useful in this case.
556 (Note that the aforementioned pedanticness means that
557 filename completion isn't as useful as it could be...)
558 Fixes [bin/8937] by David A. Gatwood
559 <dgatwood@deepspace.mklinux.org>
560 - convert to ANSI KNF
561 - Add support for `fget localfile', which reads a list of
562 filenames to retrieve from localfile. Based on work by
564 - Update copyright dates.
565 - s/strtoq/strtoll/ (the latter is standardised)
566 - Add support for 'ftp -u url file ...', to upload a list of
567 files to given url. Mostly based on [bin/10019] by Scott
568 Aaron Bamford <sab@ansic.net>
569 - convert IPv4 mapped address (::ffff:10.1.1.1) into real IPv4
570 address before touching it. IPv4 mapped address complicates
571 too many things in FTP protocol handling.
572 - do not pass scoped IPv6 address notation on Host: directive,
573 since scope identifier is local to the originating node.
574 do not allow scoped IPv6 address notation in URL, if it is
577 * sanity check a length (otherwise certain bogus responses
579 * allow a transfer encoding type of `binary'; certain
580 firewall vendors return this bogus type...
581 - make debugging output unambiguous on IPv6 numeric addrs
582 (don't use host:port)
583 - http://[::1]:8080/ is legal.
584 - send Host: directive with RFC2732 bracket notation for IPv6
585 numeric, otherwise "host:port" is ambiguous to servers
586 (clarification will be submitted as update to RFC2732).
587 - only use getaddrinfo() et al if both NI_NUMERICHOST *and*
588 INET6 are defined... (allows --disable-ipv6 in lukemftp's
589 configure script to disable this as well, which is good for
590 testing when it appears getaddrinfo() is borken)
591 - updated comment on IPv4 mapped address. sync with kame.
592 - Fix examples on using pipes in local filenames. AFAICT,
593 ftp has always required `dir . |more' not as `dir |more'
594 treats `|more' as the remote filename. Resolves [bin/9922]
595 by Geoff Wing <mason@primenet.com.au>
596 - ftp(1): treats IPv4 mapped destination as IPv4 peer, not
597 native IPv6 peer. this does not support network with SIIT
599 - inhibit too-noisy message for scoped address data transfer
600 (will be enabled in "debug" mode).
601 - only use IPTOS_ setsockopt()s if they're defined (e.g, SunOS
602 doesn't). from Havard.Eidnes@runit.sintef.no
603 - allow IPv6 extended numeric address in host part.
604 (draft-ietf-ipngwg-scopedaddr-format-01.txt). fixes PR 9616.
606 * merge libedit from NetBSD-current (20000604):
607 - use strtol() (instead of atoi()) for sane error detection
609 Wed May 31 19:24:53 EST 2000 lukem
611 * merge libedit from NetBSD-current (20000531):
612 - Fix refresh glitches when using auto-margin.
613 - Don't dump core on empty .editrc files.
614 - el_insertstr takes a "const char *" not "char *" now as it
615 doesn't modify the argument.
617 Thu Feb 3 20:19:40 EST 2000 lukem
619 * released lukemftp 1.2
621 Tue Feb 1 09:47:51 EST 2000 lukem
623 * add --enable-ipv6 and --disable-ipv6 to configure
625 * modify libedit/sig.? to use sigfunc instead of sig_t, and
626 deprecate autoconf tests for retsigtype and sig_t.
627 This fixes portability problems with Digital UNIX 5.0.
629 * merge ftp from NetBSD-current (20000201):
630 - define private type `sigfunc' as
631 typedef void (*sigfunc) __P((int));
632 and replace use of sig_t and void (*)(int).
633 certain other OSes define sig_t differently to that (they
634 add extra arguments), and it causes problems due to
635 function mismatches, etc...
637 Wed Jan 26 22:54:38 EST 2000 lukem
639 * search for tgetent() in -ltermcap then -lcurses and -lncurses
641 * merge ftp from NetBSD-current (20000126):
642 - roll back to using sscanf() instead of strptime() to parse
643 `yyyymmddhhmmss' strings, since the latter technically can't
644 parse dates without non alphanumerics between the elements
645 (even though NetBSD's strptime() copes).
647 Tue Jan 25 19:09:37 EST 2000 lukem
649 * merge ftp from NetBSD-current (20000125):
650 - complete_ambiguous(): be consistent about completing
651 unambiguous matches; if the word is already complete then
652 return CC_REFRESH so that the higher layer may append a
653 suffix if necessary. Fix from Launey Thomas <ljt@alum.mit.edu>
654 - change references from draft-ietf-ipngwg-url-literal-01.txt
656 - work around bug in apache 1.3.9 which incorrectly puts a
657 trailing space after the chunksize. noted by Jun-ichiro
658 itojun Hagino <itojun@itojun.org> in [bin/9096]
659 - work around lame ftpd's that don't return a correct post-Y2K
660 date in the output of `MDTM'. obviously the programmer of
661 aforementioned lame ftpd's did something like
662 "19%02d", tm->tm_year
664 "%04d", tm->tm_year + TM_YEAR_BASE
665 fixes [bin/9289] by jbernard@mines.edu
667 * merge libedit from NetBSD-current (20000125):
668 - PR/9244: Kevin Schoedel: libedit dumps bindings
670 - PR/9243: Kevin Schoedel: libedit ignores repeat count
671 - Add support for automatic and magic margins (from tcsh)
672 This makes the rightmost column usable on all programs
675 Tue Dec 21 08:59:22 EST 1999 lukem
677 * update INSTALL notes for some systems
679 * if sl_init() exists, check return value of sl_add() is int and
680 compile in a replacement copy if it's not the case
682 * don't look for <stringlist.h> - always use local prototypes; older
683 NetBSD systems may have conflicting prototypes
685 Mon Dec 20 11:21:28 EST 1999 lukem
687 * merge ftp from NetBSD-current (19991220):
688 - Move version from ftp_var.h to version.h
689 - Fix chunked support; probably broke after rate limiting was added.
690 Problem noticed/debugging assisted by giles lean
691 <giles@nemeton.com.au>.
692 - remove unnecessary freeaddrinfo(res), since res0 was changed to be
693 freed earlier in itojun's last commit. fixes [bin/8948].
694 - remove `const char *reason'; it was being assigned but not used.
695 - fix memory leak in fetch_url (no freeaddrinfo was there).
696 sync with recent KAME.
697 - separate out the main `data pump' loop into two: one that supports
698 rate limiting and one that doesn't. simplifies the code, and speeds
699 up the latter case a bit, at the expense of duplicating a few
702 Sun Nov 28 18:20:41 EST 1999 lukem
704 * merge ftp from NetBSD-current (19991128):
705 - implement xsl_init() and xsl_add(); error checking forms of
707 - fix bug where the second press of <TAB> on an empty word (i.e, list
708 all options) may have resulted in an strncmp() against NULL.
709 (detected by _DIAGASSERT())
710 - in cleanuppeer(), reset username to NULL after free()ing it.
711 fixes [bin/8870] by Wolfgang Rupprecht <wolfgang@wsrcc.com>
712 - complete_remote(): use remglob("", ...) instead of remglob(".", ...),
713 for listings of the current working directory; some ftp servers don't
715 [noted by Giles Lean <giles@nemeton.com.au>]
716 - recvrequest(): treat remote=="" as remote==NULL when calling
717 command(). (to support the above change)
718 - support `[user@]' in `[user@]host' and `[user@]host[:][path]'.
719 [based on idea (and initial code) from David Maxwell <david@fundy.ca>]
720 - `idle' may be invoked without any args
721 - reformat some comments
722 - reformat usage string in program and man page
723 - call updateremotepwd() after successful login, not after successful
725 - always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if
726 defined(IPPROTO_IP) doesn't work on certain foreign systems where
727 enums instead of #defines are used...
728 [noted by Matthias Pfaller <leo@dachau.marco.de>]
730 Mon Nov 15 23:01:58 EST 1999 lukem
732 * released lukemftp 1.1
734 Mon Nov 15 09:07:01 EST 1999 lukem
736 * merge libedit from NetBSD-current (19991115):
737 - instead of using a private coord_t global variable to store
738 the size of the rprompt, use the previously unused coord_t
741 Sat Nov 13 14:42:22 EST 1999 lukem
743 * support caching of results in AC_MSG_TRY_{COMPILE,LINK}
748 * clarify copyright statement in COPYING
750 * merge ftp from NetBSD-current (19991113):
751 - implement `set rprompt'; right side version of `set prompt'.
752 depends on EL_RPROMPT support i added to editline(3).
753 - allow $FTPPROMPT and $FTPRPROMPT to override defaults for
755 - move `%' formatting code from prompt() to expandbuf().
756 - implement `%.' and `%c', similar to the same % codes in
757 tcsh(1) (functionality I added to tcsh nearly 6 years ago),
758 except that `%.' always does `...trailing' and `%c' always
760 - unknown `%foo' codes get printed as `%foo'
761 - implement updateremotepwd(); update the global variable
762 `remotepwd' to contain the remote working directory.
763 - add `set prompt', a user configurable prompt. (defaults to
764 `ftp> '). the following escape characters a la tcsh(1) are
765 supported: %/, %m, %M, and %n.
766 - add global var `username'; used by prompt code
767 - fix a couple of minor memory leaks
769 - prevent minor memory leak (unnecessary strdup)
770 - implement restarting file:/// non-proxied http:// URLs
772 - fix a semicolono which stopped file:/// from working
773 - split the version string into product and version
774 - be consistent about reporting the version between:
776 + about:version URL fetch
777 + User-agent sent in http requests
778 - hookup(): when using getservbyname() (when getaddrinfo()
779 isn't available), if the provided port is a valid number
780 use that rather than trying to do getservbyname() against
781 it. fixes a problem on foreign systems noted by Chuck
782 Silvers <chuq@chuq.com>
783 - support `about:version'. also display the version in the
786 * merge libedit from NetBSD-current (19991113):
787 - implement printing a right-side prompt. code derived from
788 similar work I wrote for tcsh(1) three years ago.
789 - implement EL_RPROMPT, which allows a setting/getting of a
790 function which returns a string to be used as the
793 * replace manually managed config.h.in with acconfig.h and use
794 autoheader to generate the former.
796 * add missing entry for `#undef write' in acconfig.h (for SOCKS)
799 - use `LL' suffix on long long constant used to test
801 - test for EL_RPROMPT instead of EL_EDITMODE, since the
802 former is is a newer required feature
804 * in makelist, set LC_ALL="C", in case the locale confuses awk.
805 problem noted by Peter Seebach <seebs@plethora.net>
807 Wed Oct 27 07:00:00 UTC 1999 lukem
811 * removed libedit/TEST/test.c; no need to distribute it
813 Mon Oct 25 21:59:54 EST 1999 lukem
817 * put VERSION string into lukemftp.h, and display with the `status'
820 Mon Oct 25 11:36:59 EST 1999 lukem
822 * merge ftp from NetBSD-current (19991025):
823 - fix up confirm() (broke `a' and `p' in last commit)
824 - simplify main loop (don't need `top' variable any more)
825 - use a struct sockaddr_in6.sin6_addr for the result from inet_pton(),
826 rather than u_char buf[16]
827 - add a few more comments
830 - add `usage'; displays the usage of a command.
831 implemented by calling the c_handler() with argc = 0, argv =
833 - add `passive auto'; does the same as $FTPMODE=auto.
834 - add `set [option value]'; display all options, or set an option to
836 - add `unset option'; unset an option.
837 - add getoptionvalue() to retrieve an option's value, and replace a few
838 global variables with calls to this.
839 - implement cleanuppeer(), which resets various bits of state back to
840 `disconnected'. call in disconnect() and lostpeer().
841 - support completing on `options'.
842 - improve recovery after a SIGINT may have closed the connection.
843 XXX: there's still a couple to fix
846 - various consistency fixes in the man page.
847 - ensure that the command usage strings in the code and man page
849 - mput/mget: check that the connection still exists before each xfer.
850 - minor cosmetic changes in confirm().
851 - set code correctly in sizecmd() and modtime()
852 - don't need \n in err() strings.
853 - change lostpeer to take an argument (rather than casting
854 (sig_t)lostpeer in signal handlers)
855 - knf and whitespace police.
857 Sun Oct 24 17:02:59 EST 1999 lukem
859 * merge libedit from NetBSD-current (19991024):
860 - don't assume locales are not working - it may not be
862 - re_refresh(): cast the character passed to re_addc() to
863 unsigned char, so we don't end up calling isprint() with
864 negative value when chars are signed and character value
866 - Fix pointer arithmatic (caused problems on LP64, including
867 ftp dumping core when `edit' was turned off then on).
868 Problem solved by David Huggins-Daines <dhd@eradicator.org>
870 Tue Oct 12 18:05:21 EST 1999 lukem
872 * install man page from ${srcdir} not from .
874 Tue Oct 12 17:00:41 EST 1999 lukem
878 * merge from NetBSD-current (19991012):
879 a few user interface and cosmetic tweaks:
880 - confirm(): move from util.c to cmds.c. display mnemonic
881 string in its prompt. add support for `q' (terminate
882 current xfer), `?' (show help list)
883 - in various signal handlers, output a linefeed only if
885 - if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin)
886 because you don't want future fgets to fail. this is not
887 done for the fgets() in the main command loop, since ftp
888 will quit at that point.
889 - unless ftp is invoked with -a, don't retain the anonftp
890 setting between hosts (`ftp somehost:' sets anonftp, but
891 you don't want that to `stick' if you close that connection
894 Mon Oct 11 23:06:38 EST 1999 lukem
896 * check for working const
898 * reorganise addition of -lukem to LIBS (was being added twice)
900 * merge from netbsd-current:
901 - use sigjmp_buf instead of jmp_buf for sigsetjmp() buffer
903 * libedit: don't bother generating & compiling editline.c, since
904 its component parts are compiled anyway.
906 Sun Oct 10 12:08:39 EST 1999 lukem
910 * in libedit, use xsignal_restart() (from src/util.c) instead of
911 signal(); the isn't guaranteed to work on some foreign systems
912 (e.g, IRIX) if sigaction() is used in the same program.
914 * merge from netbsd-current:
915 - use sigsetjmp()/siglongjump() instead of setjmp()/longjmp();
916 the latter don't save the signal mask on some foreign systems.
917 - ensure signal handlers don't use stdio and do reset errno
918 if they don't exit with siglongjmp()
919 - use a common SIGINT handler for {send,recv}request()
920 - allow a second SIGINT during the "xfer aborted. waiting for
921 remote to finish abort." stage. if this occurs, just call
922 lostpeer() to close the connection. whilst this might be
923 considered brutal, it's also extremely handy if you're
924 impatient or there's lossage at the remote end.
926 * add preformatted manual page
928 * fix --enable-editline
930 Wed Oct 6 10:19:00 EST 1999 lukem
934 * don't defining SIGINFO to SIGQUIT if the former doesn't exist; the
935 code now supports both as a method of getting the transfer stats
937 * rototill signal handling in the actual data xfer routines, and
938 specifically set SIGQUIT to psummary in each one, to override
941 Tue Oct 5 23:48:29 EST 1999 lukem
943 * factor out SIGINFO setting into a handler that is always active
944 (but only prints out info if bytes > 0). only set the handler if
947 * hijack SIGQUIT to be the same as SIGINFO
949 * in {recv,send}request(), factor a lot of duplicated code out into
950 a `cleanup' section at the end
952 * rework shell() a bit
954 * enhancments from Marc Horowitz <marc@mit.edu> to improve
956 - implement xsignal_restart(), which only sets the SA_RESTART
957 flag if specifically requested
958 - xsignal() is now a wrapper to xsignal_restart(). INFO,
959 USR1, USR2 and WINCH are restartable, ALRM, INT, PIPE and
961 - improve getreply()'s timeout code to take advantage of the
964 * improve wording of how globbing works for `classic' URLs (host:path)
965 suggested by John Refling <johnr@imageworks.com> in relation to PRs
966 [bin/8519] and [bin/8520]
968 * always compile in the `edit' command even if NO_EDITCOMPLETE defined
969 it's just a no-op in the latter case, which is more consistent to
972 * always compile in about: support (i.e, remove NO_ABOUT). i'm
973 entitled to some vanity in this program...
977 Mon Oct 4 10:57:41 EST 1999 lukem
979 * Invoke ar with `cr' not `cq'
981 * Use AC_PROG_RANLIB to find ranlib, and use it on the libraries
983 * Remove `makelist' from dependency list for libedit files; re-running
984 configure shouldn't result in rebuilding libedit
986 * Add support for --{en,dis}able-editcomplete (defaults to enabled),
987 which prevents libedit support from being compiled in.
988 From Chris G. Demetriou <cgd@netbsd.org>
990 Sun Oct 3 16:49:01 EST 1999 lukem
992 * touch up the README
994 * add COPYING, INSTALL, THANKS
996 * whitespace consistency
998 * in config.h, replace NO_QUAD with HAVE_QUAD_SUPPORT, and in
999 lukemftp.h define the former if the latter is non zero
1001 * change test against GETPGRP_VOID from #ifdef to #if
1003 * snprintf(): in the truncation case, ensure that the length
1004 returned is the actual length, not the needed length
1006 Sat Oct 2 00:41:34 EST 1999 lukem
1008 * fix more lossage with $(srcdir) / $(VPATH) stuff; seems to work now
1009 when configured in a separate directory
1011 * actually test the correct variable when determining whether to run
1014 Fri Oct 1 19:32:22 EST 1999 lukem
1018 * use AC_PROG_MAKE_SET
1020 * determine setting of NO_QUAD with configure not lukemftp.h
1022 * if have long long and have snprintf, test that snprintf
1023 supports %lld. if it doesn't use private version
1025 * change strtoq from returning off_t to returning long long
1027 * updates from NetBSD mainline:
1028 - only try epsv once per connection (i.e, don't bother again
1030 - improve description of rate command
1031 - fix up global vars; they're now externed in ftp_var.h
1032 except when main.c includes it
1033 - remove "pathnames.h"
1035 Fri Oct 1 10:08:43 EST 1999 lukem
1037 * updates from NetBSD mainline:
1038 - fix determining of homedir
1039 - parse_url(): fix checking of portnum
1040 - move kame copyrights after bsd/tnfi ones
1044 * add %lld and %qd support to snprintf() for displaying long long's
1046 * support VPATH and srcdir
1048 Thu Sep 30 17:19:35 EST 1999 lukem
1052 * fix from NetBSD mainline: in empty() FD_ZERO the correct variable
1054 Wed Sep 29 23:34:33 EST 1999 lukem
1056 * major rework; reimport code from NetBSD-current 1999/09/29 into
1057 separate subdirectories and build from there. organisation is now:
1058 libedit replacement libedit
1059 libukem replacements for missing functions
1062 Mon Sep 27 00:43:12 EST 1999 lukem
1066 Sun Sep 26 17:17:05 EST 1999 lukem
1070 Sat Sep 25 00:58:28 EST 1999 lukem
1074 Fri Sep 24 17:07:07 EST 1999 lukem
1078 Fri Sep 24 16:18:29 EST 1999 lukem
1082 Tue Sep 21 11:38:49 EST 1999 lukem
1084 * import usr.src/bin/ftp and usr.src/lib/libedit sources from NetBSD