BW whois HISTORY

wew: William E. Weinman -- original author of BW Whois

version 5.0 -- wew 8 August 2006
  Support for special case whois servers that need switches before
    the domain name (e.g., .de requires "-T dn" now)
  Support for multiple outgoing IP addresses
    address selected at random for each connection
  Code cleanup to work with mod_perl
  Now supports both MySQL and PostgreSQL databases through DBI
  Changed init_mysql to init_dbi 
  Fixed problem with finding 'not found' results in .at registry
    thanks to Martin Fischer <hostmaster@atbusiness.net> for 
    pointing out the problem.

version 3.4 -- wew 27 January 2003
  Fixed timeout function to not hang on Win32 machines. 
    thanks to Rob Macleod <rob@natweb.net> for his help with this
    and for making a Win32 server available to me for testing. 
  Fixed referral detection to work with new .org registry
    at whois.publicinterestregistry.net. They terminate lines 
    with a bare CR. 
  Cleaned up .html files in distribution. Added more samples. 
  Added a condition for 'allow_referer *' to turn off referer checking

version 3.3 -- wew 11 December 2002
  Added logging: config parameters logfile, log_level, and log_name
  Added $SELF$ support to errordoc when used with bwInclude
  Fixed up the man page so it prints better from groff

version 3.2 -- wew 28 July 2002
  Added support for a separate "not found" response
  Fixed some syntax for perl 5.8 
    -- thanks to Todd R. Eigenschink <todd@tekinteractive.com>
  Fixed whois.conf -- it still said "stripheader"
    -- thanks to Dave Lugo <dlugo@etherboy.com>
  Several updates to sd.conf (for stripdisclaimer)

version 3.1 -- wew 27 July 2002
  Moved all the configuration files to [/etc/whois/] they were 
    creating too much clutter in [/etc/].
  Rewrote stripheader (now stripdisclaimer)
    The old stripheader was broken by the servers (like whois.opensrs.net) 
    that put their disclaimers at the end of their responses. I decided to 
    rewrite it. It is now called "stripdisclaimer" and it uses 
    /etc/whois/sd.conf as a configuration file to provide regular 
    expressions specifying the beginings and endings of the disclaimers. 
  Fixed _print so that it escapes for HTML in CGI mode
    Some dufuses (dufasim? dufi?) put HTML in their registration 
    records to make their names big or link to thier web sites. It's 
    only a matter of time before they start making javascript popups with 
    porno ads. Sheeesh! This is a preemptive strike. 

version 3.0 -- wew 5 March 2002
  This major new release has important improvements for 
    reliabiltiy and security -- especially in CGI mode to prevent 
    harvesting and hijacking. Caching is also available to prevent 
    overloading downstream whois servers if you are running a busy or 
    publically-available web server. 
  cleaned up a lot of the code
    using a hashref for globals instead of separate variables
  new feature : configuration file
    The default path is </etc/whois.conf>. 
    --config <path>  Can be used to specify an alternate path.
    The environment variable WHOIS_CONFIG can also be used to point to 
    the config file. 
    NOTE: The environment variable BW_WHOIS is no longer used. Please 
    use the config file instead.
  new feature : Referer limits
    In CGI mode, responses are limited to requests that include your domain 
    in the Referer header. This will help prevent abuse of the whois system. 
    The default is to only allow requests from referers in the same domain. 
    Use 'allow_referer' in the config file to broaden the limit. 
    (The traditional erroneous spelling of Referer is used throughout.)
    See the SECURITY section in the man page for more instructions. 
  new feature : caching 
    A MySQL database can be used to cache results in order to reduce 
    traffic to downstream whois servers. Significant performance 
    gains are common for requests that would otherwise go to slow or 
    overloaded whois servers. Requires MySQL and DBI. See man page 
    for instructions. 
  new --refresh flag
    Flushes any matching record from the cache before the request. The 
    new result is stored in the cache. 
  new feature : IP limits
    In CGI mode, limits the number of requests from a given IP address 
    in a particular period. Requires MySQL and DBI. 
    See the SECURITY section in the man page for more instructions. 
  new feature : cookie limits
    Restrict results to those who have made valid requests, identified 
    by a pseudo-random cookie. Each cookie is used only once. A new cookie 
    is given with each page. Requires MySQL and DBI. 
    See the SECURITY section in the man page for more instructions. 
  new feature : SSI in CGI mode
    Apache-style Server-Side Includes can now be parsed in CGI mode. 
    This allows you to better integrate the HTML into your web site. 
    Requires the bwInclude.pm module (included with the program). 
  new feature : timeout
    --timeout <secs>
    Defaults to 60 seconds. Prevents the client from waiting for a server 
    that keeps the socket open but never returns a result. 
  new feature: configurable GTLD server
    you can now override the default GTLD server (only used for domains 
    not included in tld.conf). The default used to be whois.internic.net; 
    it is now whois.crsnic.net.
    use 'default_host' in the config file. 
  new feature: different initial page
    you can now have a different HTML file for the first page a visitor 
    sees when they arrive without a query. 
    use 'htmlfirst' in the config file. 
  verbose mode now shows intermediate results (e.g. the result that 
    refers to the final result). 
  added support for pseudo-TLDs, like centralnic's uk.com domains
    now /etc/tld.conf is always checked if it exists. 
    Thanks to Neil Kemp <neil@elite.uk.net> and many others for pointing 
    this out to me over the past year or so. 
  lots of updates and changes in the tld.conf file
  added in-addr.arpa zones to tld.conf
    Thanks to Christian Felsing <christian@felsing.net> for the idea.

version 2.9 -- wew 19 February 2001
  bugfix: IIS/5.0 is incompatible with <STDIN> method of reading POST 
    results. Thanks to Dean Rath <wrath@sel-net.net> for the fix. 
  changed "connecting ... " message to print when not verbose
  test for name-server requests and return the root-server record. 
    thanks to Marcel <mars9820@yahoo.com> for the suggestion
  updated tld.conf for APNIC region. APNIC no longer supports domain 
    whois. Added individual registrars for .cn, .tw, .kr, and .hk. 
  bugfix: unpacking of packed IP addresses only valid for values 
    greater than 2^24 (16,777,216)
  bugfix: -h didn't work with IP numbers

version 2.8 -- wew 15 December 2000
  added links for domains in HTML mode
  added links for IP addresses in HTML mode
  added --verbose switch
    three progressive modes now: --quiet, normal, and --verbose
  added --nocgi switch to override CGI environment
    useful for CGI programs that used to wrap around a legacy whois 
    thanks to Mark L. DeFoyd <mark@netrocket.com> for the idea    
  new feature: automatically unpacks 32-bit packed IP addresses
    e.g. 3231054869 == 192.149.252.21
    great for spam reports
  tolerate trailing '.' on domain
  tolerate missing Errno.pm

version 2.7 -- wew 26 November 2000
  changed the way the tld.conf file works so that lower-level 
    domains can have different whois servers. This was necessary 
    for the .net.au domain. Thanks to Steve Head <shead@onthe.net.au>
  changed the format of the tld.conf file for the above change. The 
    leading '.' is now required. Please use the new tld.conf file with 
    this code. 

version 2.6 -- wew 24 November 2000
  rewrote all the ARIN stuff -- this works a whole lot better. 
  NETBLK delegation is now handled more intelligently
  rwhois servers now default to port 4321
  fixed case-sensitivity in TLDs. 
    thanks Nicolas St-Pierre <nstpierre@iasl.com>
  moved HTMLization of results to _print 
    to prevent mis-interpretation of results in CGI mode
    thanks to Christian von Roques <roques@mti.ag> for pointing this out
  added quiet option to CGI mode. 
  fixed problems passing optiions in CGI mode
  in CGI mode, handles are only recognized if they are longer than 3 
    characters -- fixes problem with (FAX)
    thanks to Dave Holle <dav@xnet.com> for help identifying CGI problems
  added code to send "/e" to whois.nic.ad.jp
    turn this off with --jpokay (see man page for more info)

version 2.5a -- wew
  fixed some regex character classes for perl 5.6 
     thanks Todd Eigenschink for pointing this out
  
version 2.5 -- wew 11 April 2000
  split out the documentation into a man page and this HISTORY file
  bugfix -- another NETBLK referrals bugfix, the last one broke
    the referral mechanism entirely. This one works right again. 
  improved the error reporting for the connection to the whois server
  added support for ports other than whois(43). Use --port or 
    request@host:port. Port names (via /etc/services) or numbers 
    are supported. 
  added support for alternate location of tld.conf via --tld or 
    BW_WHOIS="tld=/other/location/tld.conf"

version 2.4 -- never released

version 2.3 -- wew 16 March 2000
  bugfix -- ARIN changed their whois display in a manner 
    broke my referral-detection. I've added a new exception 
    for whois.nic.mil. 
  add environment variable support. 
    BW_WHOIS="stripheader" to default to strip headers
    BW_WHOIS="quiet" to default to quiet mode
    BW_WHOIS="stripheader:quiet" for both
  CGI mode: attempt to build a reasonable link to 
    related records (e.g. NIC handles)
    Note: this feature uses the RFC-954 "!" syntax to 
    look up the handle. Not all registrars support this. 

version 2.21 -- wew 11 March 2000
  bugfix -- uninitialized variable bug

version 2.2 -- wew 10 March 2000
  bugfix: all-numeric addresses were still tested for TLD
  add support for multiple domain names on the command line. 
    thanks to Paul Vincent <paul@anglia-web.co.uk> for 
    suggesting this feature
  generalized the stripheader option
  added support for netblock references (e.g. RIPE, APNIC)

version 2.1 -- wew 6 Jan 2000
  added support for optional TLD table at /etc/tld.conf

version 2.0 -- wew 6 Jan 2000
  first public release of the 2.0 version
  rewrote and cleaned up a whole bunch of stuff
  added CGI support

version 1.4a -- wew 8 Dec 1999 
  whois.corenic.net doesn't undderstand the domain command
    -- I guess the concept of standardization is lost on 
    these folks. Anyway, now I only send the domain command 
    to whois.internic.net. 
    thanks to Cooper Vertz <cooper@cooper8.com> for 
    pointing this out. 

version 1.4 -- wew 8 Dec 1999 
  a hack for a mis-feature in the root whois server 
    at whois.internic.net. it seems to have a small number 
    of records that are not 2nd-level domains but are named 
    the same as existing 2nd-level domains. I added a test 
    for a valid 2nd-level domain in whois_fetch() and have it 
    request the record as a domain. 
    thanks to Rick Macdougall <rickm@axess.com>

version 1.3 -- wew 5 Dec 1999 
  added check for IP numbers or 'NETBLK' and set default to ARIN
    thanks to "Todd R. Eigenschink" <todd@tekinteractive.com>
  fixed an "uninitialized variable" problem. 
    thanks again to "Todd R. Eigenschink" <todd@tekinteractive.com>

version 1.2 -- wew 3 Dec 1999
  added new syntax for specifying a host. can now say:
  whois <request>@<host>   as a synonym for: 
  whois -h <host> <request>
    thanks to Rob Friedman <playerx_@hotmail.com> for suggesting
    this feature. 

version 1.1 -- wew 3 Dec 1999 
  added --stripheader (by popular demand)
    thanks to Bill Shupp <hostmaster@shupp.org> for the concept.
  also -- now prints "Registrar: <host>" line (unless quiet)

version 1.0 -- wew 2 Dec 1999  -- first release

