ChangeLog revision 98247
1Mon Jun 10 08:12:35 UTC 2002 lukem 2 3 * crank FTP_VERSION from 1.6-beta1 to 1.6-beta2 4 5 * replace missing fseeko(), with a wrapper to fseek() which 6 checks that the offset isn't > LONG_MAX 7 8 * #include <regex.h> #if HAVE_REGEX_H 9 10Mon Jun 10 01:27:46 UTC 2002 lukem 11 12 * check for and replace sa_family_t definition 13 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. 21 22 * add back cpp code which #defines REGEX #if HAVE_REGEX_H 23 24Wed Jun 5 14:39:11 UTC 2002 lukem 25 26 * crank FTP_VERSION from 1.6alpha1 to 1.6-beta1 27 28 * implement replacement setprogname() 29 30 * use getprogname() instead of __progname 31 32 * convert to christos' replacement fgetln(), as it's better than mine 33 34 * merge ftp from NetBSD 20020605 to 20020606: 35 - use setprogname() 36 - only support -6 if INET6 is defined 37 38Wed Jun 5 13:08:25 UTC 2002 lukem 39 40 * don't bother checking if <glob.h> is usable (see below). 41 42 * always compile in local glob; it's the best way to ensure that 43 various security issues are fixed 44 45 * update libukem/glob.c from NetBSD's __glob13.c rev 1.22 and rev 1.23 46 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 53 - Close quoting. 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. 66 - Fix a warning. 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 76 christos -- thanks! 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. 80 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 87 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> 96 - update copyrights 97 - minor knf 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 102 careful on strcpy. 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/... 119 directories for now. 120 - Punctuation nits. 121 - Whitespace cleanup. 122 - put "site" in alphabetical order. noted by Mike Barcroft 123 in private email 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, 127 via Mike Heffner. 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() 133 134Thu Mar 14 05:41:49 UTC 2002 lukem 135 136 * ensure all AF_INET6 use is protected with #ifdef INET6 137 138 * remove unnecessary __attribute__ goop 139 140 * libukem/snprintf.c: fix compile errors with gcc 3.x 141 142Tue Apr 17 08:07:29 UTC 2001 lukem 143 144 * autoconf check for %q long long support in *printf() 145 (instead of %ll), define and use HAVE_PRINTF_QD if so 146 147 * ipv6 isn't compatible with socks, so disable the former 148 149 * look for <libutil.h> (instead of <util.h>) and <arpa/nameser.h> 150 151 * don't check for fparseln() twice 152 153 * fix getaddrinfo() checks 154 155 * crank FTP_VERSION from 1.5 to 1.6alpha1 156 157 * always ensure _PATH_BSHELL and _PATH_TMP are defined 158 159 * prototype inet_pton() if its missing 160 161 * don't bother trying to use if_indextoname() in ip6_sa2str() 162 (fixes problems on MacOS X) 163 164 * in inet_pton(), pull in <arpa/nameser.h> for IN6ADDRSZ and INT16SZ, 165 and define if missing 166 167Fri Apr 13 15:24:44 UTC 2001 lukem 168 169 * only include <arpa/nameser.h> if we have it 170 171 * update glob(3) to netbsd-current (20010329), adding support 172 for GLOB_LIMIT and fixing various buffer overflows. 173 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 182 183Mon Nov 27 23:23:40 EST 2000 lukem 184 185 * merge ftp from NetBSD-current (20001127): 186 - implement "mreget"; as per "mget" but uses "reget" instead 187 of "get" 188 - add -N netrc and $NETRC, as methods to select an alternative 189 .netrc file 190 - cache local user name and home directory for further use 191 - in mget(), use docase() instead of a local version to do 192 the case conversion. 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 199 getnameinfo. 200 201Tue Nov 7 00:16:23 EST 2000 lukem 202 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> 206 207Wed Oct 11 14:06:19 EST 2000 lukem 208 209 * released version 1.5 210 211Tue Oct 3 10:22:36 EST 2000 lukem 212 213 * crank to version 1.5 beta6 214 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() 219 or getnameinfo(). 220 - clarify that $ftp_proxy only works for full URLs and can't 221 be used for interactive connections. 222 223Mon Sep 25 21:52:12 EST 2000 lukem 224 225 * crank to version 1.5 beta5 226 227Sun Sep 24 13:31:19 EST 2000 lukem 228 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(!) 233 compiler 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 244 little earlier 245 - removed unused variable `items' in list_vertical() 246 247Sat Sep 23 15:43:34 EST 2000 lukem 248 249 * remove unused sverrno in warnx() and errx() 250 251 * remove unused h_error in getnameinfo() 252 253 * in getaddrinfo(), don't bother declaring in6_addrany[] and 254 in6_loopback #ifndef INET6 255 256Thu Sep 21 11:26:35 EST 2000 lukem 257 258 * in getaddrinfo.c::str_isnumber(), use strtol() and check the 259 result, instead of using strtoul() and not checking the result. 260 261 * define INADDRSZ if it's not found (e.g, HP/UX doesn't seem to have 262 it in <arpa/nameser.h>) 263 264Wed Sep 20 09:23:59 EST 2000 lukem 265 266 * crank to version 1.5 beta4 267 268Mon Sep 18 18:19:54 EST 2000 lukem 269 270 * add AC_AIX test, which defines _ALL_SOURCE under AIX 271 272 * use ANSI # stringization instead of __STRING() 273 274 * define HAVE_RFC2553_NETDB if <netdb.h> defines AI_NUMERICHOST 275 (et al) and has getaddrinfo(). (some systems only implement RFC2133) 276 277 * don't bother with AC_C_CONST as we depend upon ANSI C elsewhere 278 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 281 these in <netdb.h> 282 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> 286 287Fri Sep 15 01:09:10 EST 2000 lukem 288 289 * don't bother defining __P() or __STRING() based on whether 290 __STDC__ is available or not, since these aren't used any more 291 292 * fix mkstemp() prototype 293 294 * declare getpass() if necessary 295 296 * we don't need the readline xxgdb hack in libedit... 297 298 * convert to ansi declarations 299 300 * use ansi prototypes instead of __P() 301 302 * merge in changes from makelist 1.4 -> 1.6: 303 - generate ansi prototypes instead of using __P(). noted by 304 christos 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 310 `EDITOR COMMANDS' 311 312 * merge libedit from NetBSD-current (20000915) 313 * convert to new style guide, which includes: 314 - ansi prototypes & features (such as stdargs) 315 - 8 space indents 316 * history_def_set has a `const int' as a third arg, not an 317 `int'. picked up by the ultrix compiler, reported by 318 simonb@ ... 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. 333 334Tue Aug 29 18:00:08 EST 2000 lukem 335 336 * don't bother testing for #if __STDC__; just assume we have it... 337 338Mon Aug 28 22:45:08 EST 2000 lukem 339 340 * refine tests for IPv6 #defines (EAI_, AI_, NI_, ...). 341 should improve portability on systems which implement 342 RFC 2133 but not RFC 2553. 343 344Wed Aug 9 02:12:51 EST 2000 lukem 345 346 * use #if __STDC__ instead of #ifdef __STDC__ 347 348 * only test 'case NETDB_INTERNAL:' if it's defined 349 350 * fix support for --program-prefix et al 351 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. 355 356Mon Aug 7 08:17:37 EST 2000 lukem 357 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. 368 369Wed Aug 2 23:43:50 EST 2000 lukem 370 371 * crank to version 1.5 beta3 372 373 * define NO_LONG_LONG not NO_QUAD 374 375 * detect if struct sockaddr.sa_len exists (rather than relying upon 376 #ifdef BSD4_4) 377 378 * detect if socklen_t exists, and if not, typedef as unsigned int 379 380 * detect if struct addrinfo exists, and if not declare it and #define 381 associated EAI_, AI_, and NI_ defines. 382 383 * look for & replace: getaddrinfo(), getnameinfo(), inet_ntop(), 384 inet_pton() 385 * look for gethostbyname2() 386 387 * don't bother looking for hstrerror() or inet_aton() anymore 388 389 * include <arpa/nameser.h> and <stddef.h> 390 391 * define USE_SELECT instead of __USE_SELECT 392 393 * always define HAVE_H_ERRNO 394 395 * add Brian Stark to THANKS, for lots of AIX porting feedback 396 397 * improve detection of sin_len for AIX (now part of sa_len test) 398 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() 403 404 * use #if HAVE_ISSETUGID not #ifdef 405 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 412 413Mon Jul 31 10:59:10 EST 2000 lukem 414 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 419 - more KNF 420 421Sun Jul 30 16:55:09 EST 2000 lukem 422 423 * merge ftp from NetBSD-current (20000730): 424 - clean up NO_QUAD support: create helper #defines and use as 425 appropriate: 426 #define NOQUAD ! NOQUAD 427 ------- ------ - ------ 428 QUADF "%ld" "%lld" 429 QUADFP(x) "%" x "ld" "%" x "lld" 430 QUADT long long long 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. 440 441Fri Jul 28 22:11:17 EST 2000 lukem 442 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" 446 don't get bitten 447 448Wed Jul 26 18:59:19 EST 2000 lukem 449 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. 477 478 * check for issetugid() and don't use in libedit if it doesn't exist. 479 480 * merge libedit from NetBSD-current (20000726): 481 * Only look in home directory for .editrc. (Discussed 482 with Christos.) 483 484 * in glob.c #undef TILDE before redefining, because some AIX systems 485 #define TILDE in <sys/ioctl.h> 486 487Mon Jul 10 00:28:51 EST 2000 lukem 488 489 * released lukemftp 1.4 490 491Thu Jun 15 23:28:49 EST 2000 lukem 492 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... 505 506Mon Jun 12 01:16:12 EST 2000 lukem 507 508 * change lukemftp.h to check !HAVE_STRDUP instead of !HAVE_STRSUP. 509 fixes compile problem on systems which have strdup() as a macro. 510 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) 514 515Sun Jun 11 12:19:52 EST 2000 lukem 516 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 523 #ifdef BSD4_4 524 * fix some lint 525 526Mon Jun 5 21:10:31 EST 2000 lukem 527 528 * released lukemftp 1.3 529 530Mon Jun 5 19:53:49 EST 2000 lukem 531 532 * convert various support files to ANSI C 533 534 * look for strtoll() instead of strtoq() 535 536 * update COPYRIGHT, THANKS, NEWS 537 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 541 !def INET6 542 - clarify in the man page that IPv6 support may not be present 543 (for lukemftp :) 544 545 * ensure <vis.h> has VIS_WHITE et al 546 547Sun Jun 4 18:00:07 EST 2000 lukem 548 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 563 Darren Reed. 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 575 via proxy. 576 - fixes from cgd: 577 * sanity check a length (otherwise certain bogus responses 578 can crash ftp) 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 598 translator. 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. 605 606 * merge libedit from NetBSD-current (20000604): 607 - use strtol() (instead of atoi()) for sane error detection 608 609Wed May 31 19:24:53 EST 2000 lukem 610 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. 616 617Thu Feb 3 20:19:40 EST 2000 lukem 618 619 * released lukemftp 1.2 620 621Tue Feb 1 09:47:51 EST 2000 lukem 622 623 * add --enable-ipv6 and --disable-ipv6 to configure 624 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. 628 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... 636 637Wed Jan 26 22:54:38 EST 2000 lukem 638 639 * search for tgetent() in -ltermcap then -lcurses and -lncurses 640 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). 646 647Tue Jan 25 19:09:37 EST 2000 lukem 648 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 655 to RFC2732 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 663 instead of 664 "%04d", tm->tm_year + TM_YEAR_BASE 665 fixes [bin/9289] by jbernard@mines.edu 666 667 * merge libedit from NetBSD-current (20000125): 668 - PR/9244: Kevin Schoedel: libedit dumps bindings 669 inconsistently 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 673 that use editline. 674 675Tue Dec 21 08:59:22 EST 1999 lukem 676 677 * update INSTALL notes for some systems 678 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 681 682 * don't look for <stringlist.h> - always use local prototypes; older 683 NetBSD systems may have conflicting prototypes 684 685Mon Dec 20 11:21:28 EST 1999 lukem 686 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 700 lines... 701 702Sun Nov 28 18:20:41 EST 1999 lukem 703 704 * merge ftp from NetBSD-current (19991128): 705 - implement xsl_init() and xsl_add(); error checking forms of 706 sl_{init,add}() 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 714 like `NLST .'. 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 724 connect 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>] 729 730Mon Nov 15 23:01:58 EST 1999 lukem 731 732 * released lukemftp 1.1 733 734Mon Nov 15 09:07:01 EST 1999 lukem 735 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 739 el->el_rprompt.p_pos 740 741Sat Nov 13 14:42:22 EST 1999 lukem 742 743 * support caching of results in AC_MSG_TRY_{COMPILE,LINK} 744 autoconf tests 745 746 * add NEWS file 747 748 * clarify copyright statement in COPYING 749 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 754 the relevant prompts 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 759 does `/<x>trailing'. 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 768 - bump version 769 - prevent minor memory leak (unnecessary strdup) 770 - implement restarting file:/// non-proxied http:// URLs 771 (with -R). 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: 775 + status command 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 784 output of `status'. 785 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 791 right-side prompt. 792 793 * replace manually managed config.h.in with acconfig.h and use 794 autoheader to generate the former. 795 796 * add missing entry for `#undef write' in acconfig.h (for SOCKS) 797 798 * configure.in: 799 - use `LL' suffix on long long constant used to test 800 snprintf("%lld") 801 - test for EL_RPROMPT instead of EL_EDITMODE, since the 802 former is is a newer required feature 803 804 * in makelist, set LC_ALL="C", in case the locale confuses awk. 805 problem noted by Peter Seebach <seebs@plethora.net> 806 807Wed Oct 27 07:00:00 UTC 1999 lukem 808 809 * released 1.0 810 811 * removed libedit/TEST/test.c; no need to distribute it 812 813Mon Oct 25 21:59:54 EST 1999 lukem 814 815 * released 1.0b7 816 817 * put VERSION string into lukemftp.h, and display with the `status' 818 command 819 820Mon Oct 25 11:36:59 EST 1999 lukem 821 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 828 829 new features: 830 - add `usage'; displays the usage of a command. 831 implemented by calling the c_handler() with argc = 0, argv = 832 "funcname". 833 - add `passive auto'; does the same as $FTPMODE=auto. 834 - add `set [option value]'; display all options, or set an option to 835 a value. 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 844 845 other stuff: 846 - various consistency fixes in the man page. 847 - ensure that the command usage strings in the code and man page 848 match reality. 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. 856 857Sun Oct 24 17:02:59 EST 1999 lukem 858 859 * merge libedit from NetBSD-current (19991024): 860 - don't assume locales are not working - it may not be 861 the case 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 865 is >= 128 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> 869 870Tue Oct 12 18:05:21 EST 1999 lukem 871 872 * install man page from ${srcdir} not from . 873 874Tue Oct 12 17:00:41 EST 1999 lukem 875 876 * released 1.0b6 877 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 884 fromatty. 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 892 and open a new one). 893 894Mon Oct 11 23:06:38 EST 1999 lukem 895 896 * check for working const 897 898 * reorganise addition of -lukem to LIBS (was being added twice) 899 900 * merge from netbsd-current: 901 - use sigjmp_buf instead of jmp_buf for sigsetjmp() buffer 902 903 * libedit: don't bother generating & compiling editline.c, since 904 its component parts are compiled anyway. 905 906Sun Oct 10 12:08:39 EST 1999 lukem 907 908 * released 1.0b5 909 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. 913 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. 925 926 * add preformatted manual page 927 928 * fix --enable-editline 929 930Wed Oct 6 10:19:00 EST 1999 lukem 931 932 * released 1.0b4 933 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 936 937 * rototill signal handling in the actual data xfer routines, and 938 specifically set SIGQUIT to psummary in each one, to override 939 editline's handler 940 941Tue Oct 5 23:48:29 EST 1999 lukem 942 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 945 SIGINFO is defined 946 947 * hijack SIGQUIT to be the same as SIGINFO 948 949 * in {recv,send}request(), factor a lot of duplicated code out into 950 a `cleanup' section at the end 951 952 * rework shell() a bit 953 954 * enhancments from Marc Horowitz <marc@mit.edu> to improve 955 connection timeouts: 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 960 QUIT are not 961 - improve getreply()'s timeout code to take advantage of the 962 above 963 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] 967 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 970 the users 971 972 * always compile in about: support (i.e, remove NO_ABOUT). i'm 973 entitled to some vanity in this program... 974 975 * update copyrights 976 977Mon Oct 4 10:57:41 EST 1999 lukem 978 979 * Invoke ar with `cr' not `cq' 980 981 * Use AC_PROG_RANLIB to find ranlib, and use it on the libraries 982 983 * Remove `makelist' from dependency list for libedit files; re-running 984 configure shouldn't result in rebuilding libedit 985 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> 989 990Sun Oct 3 16:49:01 EST 1999 lukem 991 992 * touch up the README 993 994 * add COPYING, INSTALL, THANKS 995 996 * whitespace consistency 997 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 1000 1001 * change test against GETPGRP_VOID from #ifdef to #if 1002 1003 * snprintf(): in the truncation case, ensure that the length 1004 returned is the actual length, not the needed length 1005 1006Sat Oct 2 00:41:34 EST 1999 lukem 1007 1008 * fix more lossage with $(srcdir) / $(VPATH) stuff; seems to work now 1009 when configured in a separate directory 1010 1011 * actually test the correct variable when determining whether to run 1012 AC_FUNC_GETPGRP 1013 1014Fri Oct 1 19:32:22 EST 1999 lukem 1015 1016 * released 1.0b3 1017 1018 * use AC_PROG_MAKE_SET 1019 1020 * determine setting of NO_QUAD with configure not lukemftp.h 1021 1022 * if have long long and have snprintf, test that snprintf 1023 supports %lld. if it doesn't use private version 1024 1025 * change strtoq from returning off_t to returning long long 1026 1027 * updates from NetBSD mainline: 1028 - only try epsv once per connection (i.e, don't bother again 1029 if it fails) 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" 1034 1035Fri Oct 1 10:08:43 EST 1999 lukem 1036 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 1041 1042 * released 1.0b2 1043 1044 * add %lld and %qd support to snprintf() for displaying long long's 1045 1046 * support VPATH and srcdir 1047 1048Thu Sep 30 17:19:35 EST 1999 lukem 1049 1050 * released 1.0b1 1051 1052 * fix from NetBSD mainline: in empty() FD_ZERO the correct variable 1053 1054Wed Sep 29 23:34:33 EST 1999 lukem 1055 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 1060 src main ftp source 1061 1062Mon Sep 27 00:43:12 EST 1999 lukem 1063 1064 * released 1.0 a6 1065 1066Sun Sep 26 17:17:05 EST 1999 lukem 1067 1068 * released 1.0 a5 1069 1070Sat Sep 25 00:58:28 EST 1999 lukem 1071 1072 * released 1.0 a4 1073 1074Fri Sep 24 17:07:07 EST 1999 lukem 1075 1076 * released 1.0 a3 1077 1078Fri Sep 24 16:18:29 EST 1999 lukem 1079 1080 * released 1.0 a2 1081 1082Tue Sep 21 11:38:49 EST 1999 lukem 1083 1084 * import usr.src/bin/ftp and usr.src/lib/libedit sources from NetBSD 1085