0.90 2008-06-12

+ .EU EPP support: updates for Registration guidelines version 1.1B (changes in contact info/update) + release 5.5 (13 May 2008)
      Added proper methods in DRD/EURid so that remote_object is not needed for .EU operations like transfer from quarantine, trade, undelete, etc.
      See t/606eurid_epp.t especially for trade operations because of change in API
+ .UK full support (except registry notifications, not available at registry), including domain creations, domain updates and account updates
+ .NO ccTLD EPP support added, see t/633norid_epp. Also added a command line EPP client for .NO with some POD documentation, see eg/epp_client_no.pl and also a filter utility eg/xmlfilter.pl to present the xml-sequences (submitted by Trond Haugen)
+ .DE support (contributed by Tonnerre Lombard)
+ .CH/.LI support (contributed by Tonnerre Lombard)
+ .HN/.SC/.VC/.AG/.BZ/.LC/.MN support with Afilias extensions IDNLanguage & Restore (from original work by Tonnerre Lombard)
+ .ME and .CZ support (contributed by Tonnerre Lombard)
+ .TRAVEL UIN support (contributed by Tonnerre Lombard)
+ .TRAVEL whois support (see eg/whois.pl)
= Protocol/EPP/Extensions/PIR* renamed to Protocol/EPP/Extensions/Afilias
= Remove use of remote_object by creating appropriate extra methods in DRD/LU (the same should be done for extensions defining new actions/subjects)
= EPP/Message : better handling of pure extension messages (no command)
= EPP/Core/{Domain,Contact} : better handling of authinfo (2 variants during built when empty, and only parsing RFC defined version during info)
= EPP/Core/{Domain,Contact} : for update() do not bother checking pending changes, this has to be done earlier, in DRD, to make sure all extension cases are taken into account
= EPP/Core/Contact : handling registries not followin EPP RFC by omitting the type parameter for postalinfo data (like .CZ)
= EPP/Message : better handling of pure extension messages (without a command node)
= DRD/ICANN : some gTLD registries are now allowed to create one or two characters domain names
= DRD/VNDS : add .bz/.jobs (contributed by Tonnerre Lombard)
= DRD/*::verify_name_domain() : homogenize error codes (if your code depends on them, please update it based on new values)
= EPP/Extensions/{DNSBE,EURid}/Domain::transferq_request() : use key 'duration' instead of 'period'
= EPP/Extensions/AT/Domain : use of Message cltrid, no need to create a new one
= Transport/Socket : handle registries without greeting, like DENIC
= Data/Changes : added method is_empty()
= Data/Hosts : removal of the roid() accesor, added extra parameters for each nameserver, as a ref hash, which can have, for example, a roid key
= DRD::is_my_tld() is more strict in default case
= DRD::check_name() allow to check multiple cases of number of dots in name being checked
= DRD::*_update() : better take into account all capabilities to check the content of the changes being done (from original bugreport by Tonnerre Lombard)
= DRD::message_count(): we try to use information already gathered (as EPP registries can give information with msgQ during any command response) before attempting a new message retrieve; same for message_waiting which calls message_count ; see end of t/601vnds_epp for example
= DRD::err_invalid_* are now proper class methods
= EPP/Core/RegistryMessage various optimizations
- Updated examples in eg/ for correct use of local_object() : no need to call new() on it
- DRD : fix host_create not to check TLD of hostname being created (from original bugreport by Magnus Lind)
- DRD/NAME : contact internationalization (reported by Tonnerre Lombard)
- DRD::is_thick() removed
- DRD, DRD/NAME : fix test of domain names in registries with multiple zones (number of dots)
- .EPP/Extensions/{AT,ASIA} various bugfixes (contributed by Tonnerre Lombard)
- .FR various bugfixes on domain operations
- Removal of all Protocol/*/Message::get_name_from_message() ugly hack for something less ugly but still kind of an hack.
- Factorization of various verify_rd() methods into Net::DRI::Util::has_key,has_contactset,has_ns,has_auth,has_duration,isa_contactset,isa_contact,isa_hosts,isa_changes ; this simplifies of lot of code under Protocol/*

0.85 2008-02-12

+ .UK EPP support: only some operations for now, see t/626nominet_epp.t (not implemented for now: domain & account updates, domain creations, registry notifications)
+ .AU EPP support (submitted by Rony Meyer)
+ OVH : implemented resellers Web Services API (2 functions only for now: account_list_domains and domain_info), see t/623ovh_ws_live.t
+ BookMyName (aka Free/ProXad/Online/Dedibox/Iliad) : implemented resellers Web Services API (2 functions only for now: account_list_domains and domain_info), see t/624bookmyname_ws_live.t
+ Gandi : implemented resellers Web Services API (2 functions only for now: account_list_domains and domain_info), see t/625gandi_ws_live.t
+ Registry : yet another API for new_profile/new_current_profile ! This should have been the only one since the beginning. See files in eg/*
                      Previous API may be deprecated in the future to keep only two: full one (profile name, transport name, transport params, protocol name, protocol params)
                      and the new one (profile name, profile type, transport params, protocol params)
+ Added Whois support for: .LU .WS .SE .CAT .AT
+ Implemented RFC5076 (ENUM Validation Information) in Net::DRI::Protocol::EPP::Extensions::E164Validation and Net::DRI::Protocol::EPP::Extensions::E164Validation::RFC5076
   (the RFC allows numerous ways to encode validation information,hence the example inside the RFC is handled in a separate module. Other examples from registries are welcome)
+ PIR IDNLanguage extension (work submitted by Tonnerre Lombard, added with modifications)
+ .NAME EmailFwd operations (work submitted by Tonnerre Lombard, added with modifications)
+ .US DRD module (work submitted by Tonnerre Lombard, added with modifications)
+ Added Data/Hosts::as_string() for debugging, and Data/Hosts::roid()
+ Additional API for domain_renew in line with other parts with just a domain name and an optional extension as ref hash; see example in t/622vnds_epp_e164validation.t
= Better handling of EPP contacts internationalization : each DRD module can specify what the registry expects for contacts data.
   By default, all 3 cases allowed, except for : .BE .EU .LU (localized only), .AT (internationalized only) and .BIZ (internationalized only or internationalized and localized together).
   When needed the data is contructed with Contact::int2loc() and Contact::loc2int()
   Contact::_intfirst() is thus removed as useless now
= DRD/NAME : 1 year possible in periods() (reported by Alexander Biehl)
= Protocol/EPP/Extensions/VeriSign/NameStore : taking into account .CC and .TV (reported by Tonnerre Lombard, added with modifications)
= Protocol/EPP/Extensions/US/Contact : update to currently deployed version (work submitted by Tonnerre Lombard)
= Protocol/EPP/Extensions/ASIA/CED : remove extraneous ced hash level in domain_create and fix retrieval of maintainerUrl information (work submitted by Tonnerre Lombard)
= Protocol/EPP/Extensions/ASIA/IPR : add support for parsing domainRoid in domain:create, replace obsolete ipr:phase with ipr:type (work submitted by Tonnerre Lombard)
= Protocol/EPP/Extensions/LU : fix fetching of DNSLU type parameter in certain cases (work submitted by Tonnerre Lombard)
= Protocol/EPP/Extensions/AT : parse more information from .AT messages (work submitted by Tonnerre Lombard)
= Protocol/EPP/Core/Contact : support registries violating EPP with an empty contact:clID (from original bugreport by Alexander Biehl)
= Protocol/EPP : we correctly parse multiple results (in case of errors), and return them if asked for ;
		this had consequences for result_extra_info, see comments in Message (Core+DNSBE+EURid), and NameStore
= Protocol/EPP various parses : better use of date parsing
= Protocol/EPP object can be instanciated with overriding core methods (needed for Nominet)
= Protocol/EPP hosts parsing : we keep all IPs even private ones
= ResultStatus : can handle more than one status, as a linked list (next() method)
= Data/Hosts : we remove the final dot from names if present
= Protocol::reaction : we create the result_status subkey for all elements in cache created by this action, not only the main element
   (this is especially useful for registries giving back a lot of information, like Nominet during a domain:info call giving back information useful for a contact:info or host:info)
= Registry::result_status() gives back the whole ResultStatus object
= Added Registry::get_info_all() and Registry::get_info_keys()
= Modules SOAP::Lite, Net::SMTP, MIME::Entity previously required are now optional because used only by some registries not EPP. t/004load_optional will test their presence,
   warn which are needed for which Net::DRI use, and test their dependencies inside Net::DRI
   Same for new modules: SOAP::WSDL (needs SOAP::Lite) and XMLRPC::Lite (provided by SOAP::Lite)
   Later on, a Bundle::NetDRI could be created to install also all optional modules
   This means for now less hard dependencies for default case, that is EPP registries
= DRD->info() can be called through DRI (from initial report by Tonnerre Lombard)
= Cache::get & Cache::set : we do not force the key in lowercase anymore, as contact IDs may be case sensitive
= No more eval { require }, using UNIVERSAL::require instead
- EPP contacts : use of EPP::Message::core_contact_types() to correctly handle case of .EU/.BE
- Protocol/EPP/Extensions/ASIA/IPR : removing use of Date::Parse::str2time()
- Protocol/EPP/Extensions/LU/Status : allow to use status 'inactive' (registry specific, not in EPP) (from original bugreport by Alexander Biehl), see last test in t/620lu_epp.t
- Protocol/EPP/Extensions/LU/Poll : correctly retrieve the type attribute (from original bugreport by Alexander Biehl)
- DRD/AT : bugfix for is_my_tld() (reported by Tonnerre Lombard)
- README : typos (there is no Net::DRI::Data::Host module) (reported by Trond Haugen)
- t/003critic : better loading of module Test::Perl::Critic which is optional (only needed for tests)
- Gandi Web scraping : totally removed as it was deprecated since a long time, and thus Transport/Web and its WWW::Mechanize dependency (this can be added back later if needed)
- DRD::is_thick : will carp if still used, deprecated
- DRD::root_servers() removed, not used (was only in DRD/VNDS)

0.81 2007-11-07

= Updated all RFCs references related to EPP : RFCs 4930,4931,4932,4933,4934 are now obsoleting RFCs 3730,3731,3732,3733,3734
  xsi:schemaLocation is not removed in messages created, but may be removed in future releases
  we do not add an empty domain:chg any more for pure extension update commands
= Conformity with Perl critic Best Practices (level 5)
+ Added support for .ASIA extensions (work submitted by Tonnerre Lombard)
+ Update for .EU : taking into account new version=2 for domain_info & domain_check (retrieving more data from registry)
  Warning : this changes some registry reply codes, see registry documentation
+ Contact : new method _intfirst() (from suggestion by Rony Meyer)
+ Transport/Socket : new parameter protocol_data, see documentation (from idea by Rony Meyer)
+ DRD/VNDS : also handle .CC & .TV
+ DRD/NAME and DRD/NU : provided by Alexander Biehl 
+ 3 new EPP extensions for CentralNic : WebForwarding, TTL & Domain Release (see t/621centralnic_epp.t for examples of use)
+ Whois support for .MOBI .NAME (see example in eg/whois.pl) 
+ Transport : new way to do logging (send/receive methods receive an extra parameter at beginning, the trid)
= DRD : is_my_tld() correctly handles registries with more than one TLD (from initial bugreport by Rony Meyer)
= Data/Hosts : new method clear() (patch by Tonnerre Lombard)
= Protocol/EPP/Extensions/VeriSign/NameStore : extension not always provided by registry (bugfix from Rony Meyer)
= Protocol/EPP/Extensions/VeriSign/IDNLanguage DRD/ICANN : allow use of xn-- domain names (from suggestion by Rony Meyer)
  [ This may change in the future, depending on how Net::DRI implements IDN ]
- DRD : bugfix in domain_can (bugfix from Tonnerre Lombard)
- Protocol/EPP/* (various parses) : better handling of XML nodes/elements (from initial bugreport by Tonnerre Lombard for .LU)

0.80 2007-04-19

+ DAS support for .EU & .BE : quick lookup of domain availability ; see eg/eurid_das.pl for an example (same interface as domain_check)
+ Whois support (RFC3912) for thick registries (full) and thin registries (only registry part) ; see eg/whois.pl for an example (same interface as domain_info) ;
   parse provided for .COM .NET .ORG .BIZ .INFO .AERO .EU
+ .LU support : all extensions (except startTLS & IDNs) ; we do not enforce policy of only one IPv4 and one IPv6 at most for hosts
+ Transport/Socket : new parameter ssl_version (suggestion from Rony Meyer)
+ Transport/Socket {RRP,EPP}/Protocol/Connection : allow changing password at connection (from initial patch by Rony Meyer)
+ DRD/BIZ (provided by Rony Meyer)
= DateTime::Format::ISO8601 : required version is now 0.06 (0.0403 is also ok, but 0.05 is absolutely not ok, hence we upgraded the required version)
= .AT updates (contributed by Michael Braunoeder from NIC.AT)
= Data/Contact : new as_string() method for quick display
= Data/ContactSet : minor changes, rem as alias to del, add/del/set returns the object itself, as new() (with explicit return)
= Protocol/EPP/Core/{Domain,Host} VeriSign/PollRGP: make sure to lowercase domain names given back by registry (from bugreport by Rony Meyer)
      We advise passing to Net::DRI only domain names and hostnames in lowercase.
- DRD : bugfix in contact_info for cached values (bugfix from Rony Meyer)
- Protocol/EPP/Core/Host : bugfix in parsing IP addresses (bugreport from Rony Meyer)

0.70 2007-03-12

+ .COOP full support : all operations with EPP, see included example in eg/coop_epp.pl and t/619coop_epp.t (with help from registry staff member Dan Maharry)
+ .AT full support : all operations with EPP, contributed by Michael Braunoeder from NIC.AT
+ .EU (DRD/EURid) : added Bulgaria and Romania
+ Transport/Socket : a new trid key whose value is a code ref can be provided to generate transaction ids (from Rony Meyer idea)
+ Transport/Socket : we pass MultiHomed => 1 when opening socket (tcp and tls) in order to try all IPs (suggested by Michael Braunoeder)
+ Transport/Socket : for TLS, a callback can be specified to verify server credentials
+ DRD/INFO DRD/ORG : contributed by Rony Meyer
+ Contact : int2loc() and loc2int() methods to create localized version from internationalized, or the opposite
= .MOBI : maintainer url is not mandatory (bugfix from Rony Meyer)
= Protocol/EPP/Extensions/SecDNS : during domain create, no secdns data is not a fatal error anymore
= Protocol/EPP/Extensions/MOBI/Domain : maintainer_url is not mandatory (bugfix from Rony Meyer)
= Protocol/EPP/Message : for poll replies, id of _current_ message is available, like count (see source)
= DRD/ICANN : operations (except domain creation) on one-letter and two-letter domain names are now possible (not denied) ;
              this should really be handled on a per-registry basis (from suggestion by Rony Meyer)
= Protocol/EPP/Core/Domain : for some registries (like .AT) we send all nameservers' IP, even if nameserver is in domain
= Protocol/EPP/Core/Status : delete/renew/update operations are allowed even if some pending status is set
 		(per draft-hollenbeck-epp-rfc3731bis-05.txt draft-hollenbeck-epp-rfc3732bis-04.txt draft-hollenbeck-epp-rfc3733bis-06.txt)
- Protocol/EPP/Core/RegistryMessage : correctly handle case of no message at all, or message without extra data (bugreport by Elias Sidenbladh) ; see end of t/601vnds_epp.t
- .SE (Data/Contact/SE DRD/SE) : bugfixes by Elias Sidenbladh
- Protocol/EPP/Core/Contact : minor bugfix in contact creation (parse_disclose) from Elias Sidenbladh
- Transport/Socket : ssl_verify was not taken into account, bugfix by Rony Meyer
- Protocol/EPP/Extensions/{DNSBE,Eurid}/Domain : add op="request" for transferq commands (bugreport and fix from Cedric Dubois)
- Transport : use true loops in send() and receive() (bugreport from Elias Sidenbladh)

0.40 2006-09-22

+ .BE full support : all operations with EPP except agent update & info (with help from Roger Heykoop)
+ EPP : better support for <poll> results, we parse all replies for which we already have a parse function registered
+ EPP/Extensions : RGP Notification & Low Balance Notification for VeriSign (poll messages)
+ DRD : new method message_count() to retrieve the number of messages available
+ Transport/Socket : added ping(), with autoreconnection if wanted and necessary
+ EPP & RRP : for all actions returning information, a key action is created whose value is the name of the action that has triggered this reply
            (see 600vnds_rrp.t 601vnds_epp.t 605vnds_epp_nsgroup.t 613cat_epp.t)
= EPP/Core/Contact : correctly handle case of contact:id being chosen by registry during contact:create (see 601vnds_epp.t)
= EPP : uses <hello> instead of <poll> as keepalive message (explicitely allowed in draft-hollenbeck-epp-rfc3730bis-02.txt)
= EPP/Extensions/CAT/DefensiveRegistration : better handling of XML namespace
= Transport : creation time is available through time_creation() like time_open() and time_used()
- Transport : correct month & minutes in logging (bugfix by Rony Meyer & Christian Kratzer)
- DRD/VNDS : verify_domain_transfer does not need a full domain_info with hosts=all, none is enough (bugfix by Rony Meyer)
- DRD : correct retrieval of result status from cache (bug report by Rony Meyer)
- Protocol/EPP/Connection : take into account message language if given by registry (bug report by Rony Meyer)
- Protocol/EPP/Extensions/VeriSign/WhoisInfo : handle default value for indirect domain_info calls (bug report by Rony Meyer)
- Protocol/EPP/Extensions/GracePeriod : correctly takes into account VeriSign breaking its own RFC (bug report by Rony Meyer)

0.30 2006-06-15

+ .FR full support : all operations by email (form version 2.0.0 for both organizations & individuals)
+ .COM .NET full support in EPP with multiple VeriSign extensions:
           Sync (see t/610vnds_epp_sync.t)
           IDN Language (see t/611vnds_epp_idnlang.t)
           Whois Info (see t/612vnds_epp_whoisinfo.t)
           NameStore from original patch by Rony Meyer (see t/616vnds_epp_namestore.t)
     Use Protocol/EPP/Extensions/VeriSign as protocol class to have needed extensions loaded automatically
+ .MOBI full support : Domain extension for maintainer url (see t/615mobi_epp.t)
+ .US full support : Contact extension for NEXUS handling (see t/609vnds_epp_us.t)
+ .AERO full support : Domain & Contact extensions for ENS (see t/614aero_epp.t)
+ .CAT full support : Domain & Contact extensions, and all operations on Defensive Registrations (see t/613cat_epp.t and eg/cat_epp.pl)
             thanks to Klaus Malorny & the .CAT registry
+ Infrastructure ENUM.AT (contributed by Michael Braunoeder from ENUM.AT)
+ Protocol/EPP/Extensions/SecDNS updated to RFC4310
+ .PL updated to latest draft
+ new_profile / new_current_profile : additional API with only 3 parameters (profile name + 2 ref arrays for parameters, both can be empty)
                   using registry default transport & protocol classes (see transport_protocol_default)
+ ResultStatus->trid() can also be called in list context to get back for EPP the svTRID along with the clTRID (suggestion by Elias Sidenbladh)
= DRD : for transfers, like for creations, the duration is in the duration attribute not period
= Protocol/EPP/Extensions/EURid/Domain : multiple nsgroup can be given (patch from Christian Kratzer)
= DRD/ICANN : taking care of some lifted restrictions for newest gTLDs (starting with .TRAVEL)
= Protocol/EPP/Core/Domain : for domain_info, hosts=all is the default, but you can pass another value (sub, del or none) in the hosts attribute (bugfix from Rony Meyer)
= Protocol/EPP/Extensions/E164 : small update to work with IENUMAT relaxed rules from RFC4114
= Util : update in list of country codes, add JE GG IM per http://www.iso.org/iso/en/prods-services/iso3166ma/03updates-on-iso-3166/nlv11-div.html
= Transport/Socket : you can optionnally set the local hostname when connecting (suggestion from Brian Drysdale)
= Protocol/Gandi : currently deactivated since change of website
- Protocol/EPP/Core/Domain : domain:pw may be empty after domain:info for an object we do not own (bugfix from Rony Meyer)
- Protocol/EPP : better handling of registries various XML namespaces

0.22 2006-05-12

+ EPP Poll from prototype by Elias Sidenbladh (Protocol/EPP/Core/RegistryMessage) : new methods message_retrieve() (=poll request)
  message_delete() (=poll ack) and message_waiting() in Net::DRI
  Please see examples at the end of t/601vnds_epp.t on how to retrieve info on a message, and info on all messages (count & first id).
+ Preliminary support for .FR/.RE by email : only domain creation for now, without parsing of registry emails coming back
  (Net::DRI::Data::Contact::AFNIC Net::DRI::Protocol::AFNIC::Email Net::DRI::Protocol::AFNIC::Email::Message
  Net::DRI::Protocol::AFNIC::Email::Domain Net::DRI::Transport::SMTP)
  For all asynchronous operations, the result status is command successful but pending.
+ In all result status, new method trid() that stores the (local/client) transaction identifier of the operation
  that generated this result status, and new method is_pending() to know if the operation has been done
  or is pending review, which will be the case for all asynchronous registries (Protocol/ResultStatus)
= EPP + RRP : we use the nameserver list provided in domain operations only if it is not empty
= Data/Contact/EURid : lower limits for name/org length than in EPP
- Transport/Socket : correctly shut down alarms in end() (thanks to Sten Spans)
- Protocol/EPP/Extensions/EURid/Domain : bugfix for transfer/transferq/trade requests when specifying nameservers,
                                         from bug report by Andreas Wittkemper
- Protocol/EPP/Connection : bugfix when there is no svcExtension (found by Michael Braunoeder)
- Protocol/EPP/Core/Contact : correctly handle all cases of empty fax (and tel for that matter),
                              bug report from Brian

0.21 2006-03-04

+ Support for .SE (based on EPP) thanks to Elias Sidenbladh and the NIC SE team
+ Support for .PL (based on EPP) except the Future object (interoperability with registry not tested)
+ Data/Contact,Protocol/EPP/Core/Contact : we now handle both internationalized and localized data,
  for registries handling both. Changes are backwards compatible with previous version, but make
  sure to test on your systems before installing in production.
+ Protocol/ResultStatus : new print_full() method to have all details from registry
+ Data/Hosts : new set() method
+ Transport : we keep time of last use (idea from Brian), with method time_used()
= Transport/Socket : if sending fails, and retry > 1, we try to reconnect ; this is a crude way to handle registry timeouts
= local_object() enables you to create any kind of local objects, including hosts, contacts, contactsets,
  changes, etc... without having to load and directly call Net::DRI::Data::Hosts,Contact,ContactSet,Changes
  Please see the modified t/606eurid_epp.t for examples
= better error debugging in new_profile() when loading Transport and Protocol classes
= Transport/Socket : do not use IO::Socket::SSL::context_init anymore, it is marked as deprecated in module
- Protocol/EPP/Message : correct creation of <hello/> commands (bug found by Elias Sidenbladh)
- Protocol/{EPP,RRP}/Message : correct encoding of outgoing messages with Encode::encode()
- eg/eurid_epp.pl : the filehandle used for logging must be closed after $dri->end() not before

0.20 2005-12-02

+ EURid/Sunrise : we automatically reconnect after each apply command (successful or not), when needed,
                  since the connection is dropped by registry (bug reported by Lucas Vossberg)
+ Transport/Socket : a client certificate is no more mandatory, the default verification level is lowered,
                     better error message for SSL problems (suggested by Peter van Dijk)
- Protocol/EPP/Extensions/EURid/Sunrise : various bugfixes for documentaryevidence=thirdparty (found by Yves Cartenstadt)
= EURid : the sample provided (eurid_epp.pl) dumps all exchanges to a file

0.19 2005-11-14

+ Updates for conformity with latest EURid specifications :
   # extra information in result of apply during Sunrise (reference, code, crDate)
   # new action apply_info during Sunrise to get back information on previously submitted applications
   (reference, code, crDate, application_status, contact, ns, docsReceivedDate, adr)
+ Protocol/Resultatus : extra information from registry (error messages) is available with info()
+ EPP/Extensions/EURid : we parse eurid:msg for extra information, especially useful if errors
- EPP/Extensions/EURid/Sunrise : invalid call for nsgroup (bug found & fixed by Jørgen Thomsen)
= Data/Hosts has 2 significative changes : you can use get_details with a name and
  you can add a nameserver already in the list, in which case the new IP addresses are added with existing
  ones (without duplicates)

0.18 2005-11-06

+ Many improvements for .EU support : no need to specify empty useless values needed for EPP
  but not used by EURid (domain/contact auth), no status handling for domains, example
  for test systems (eg/eurid_epp.pl)
- EPP/Message : use bytes is necessary for correct length calculation
= Transport : if a server closes the connection on us (at protocol level, not socket one),
  we note the fact and will try to reconnect later if needed
= RRP : take into account PENDINGRESTORE PENDINGDELETE PENDINGTRANSFER status

0.17 2005-10-24

+ Full support for EURid (.EU) with Net::DRI::DRD::EURid, Net::DRI::Data::Contact::EURid,
  Net::DRI::Protocol::EPP::Extensions::EURid and Net::DRI::Protocol::EPP::Extensions::EURid::*
+ Query list of object types managed by registry (ex: domain, contact, etc...) with $dri->has_object()
+ A copy of all exchanges can be sent to the filehandle of your choice
  (see log_fh in Net::DRI::Transport)
- BUGFIX in handling of dates in EPP : we switch to UTC before printing
- BUGFIX in Net::DRI::Protocol::EPP::Connection : data may come in multiple chunks
- BUGFIX in Net::DRI::Protocol::EPP::Core::Domain : handling of hosts as attributes
= Net::DRI::Data::Hosts::add() returns the object itself (useful for chains)
= Net::DRI::Data::Contact::validate() verifies the country code against the list in Util
= No more hardcoding of various xml namespaces names in various modules, the list is
  set during protocol object creation.
= domain_create() : a duration is not mandatory

0.16 2005-10-04

+ Three new EPP extensions : SecDNS (for DNSSEC), E164 (for ENUM) and NSgroup (for .BE & .EU)
+ New registry : .WS
+ New API in addition to the existing one, with Net::DRI::Data::RegistryObject : needed for extensions
  that handle new types of objects, such as NSgroup
+ Take into account new error codes for AFNIC Web Services (technical note RP-20050913/DT-01)
+ Add a name() and loid() accessor in Net::DRI::Data::Hosts
- In EPP, we load host commands only if hosts are handled as an object by the registry
- For domain_info(), host_info() and contact_info() we use data from cache, if we really
  did an *_info() before.
- Various bugfixes in DRD and RRP protocol.
= Rework of Net:DRI::Protocol::ResultStatus & associated classes to handle more cases
  by directly passing the EPP code
= Simpler in-memory XML nodes representation in Net::DRI::Protocol::EPP::Message
= Rework of Net::DRI::Protocol::{EPP,RRP}::Connection & Net::DRI::Transport::Socket (send_login)
  to die with a Net::DRI::Protocol::ResultStatus in case of problems
  + Changes in Net::DRI::Registry::new{,_current}_profile to return a ResultStatus object
= Change in EPP domain_update as RFC3731 is ambigous (text & XML schema do not agree)
  With this change, we now conform to the XML schema, which seems normative per
  provreg mailing-list consensus. This will break with any server implementing the text part

0.15 2005-07-20

+ New protocol: EPP, with Grace Period extension (other can easily be added)
+ Better way to create statuses (no() function in StatusList), see README for domain_update_status_add
  and statuses name are not put in uppercase automatically
+ Handling of contacts : modules Contact & ContactSet + new functions in DRD (contact_*)
+ New functions: domain_check_multi, host_check_multi (if registry supports, check multiple objects at once)
- BUGFIX in Net::DRI::Util::is_ipv6
- BUGFIX : better checks of references with UNIVERSAL::isa instead of pure ref()
= Rework of Net::DRI::Transport::Socket & associated connection classes

0.12 2005-05-31

+ New ``registries'': 
   1) AFNIC (through web services, domain check only)
   2) Gandi (through web site, domain nameservers update only)
+ New transport: SOAP (HTTP/HTTPS only)
+ New transport: Web (Web Scraping)
+ New protocol: Gandi Web Site (domain update only)
+ New protocol: AFNIC web services (domain check only)
+ New way of using profiles in Net::DRI::Registry : an auto switch functionnality is provided
    so that the calling app does not have to call target() explicitely over and over
    (see README for details)
- BUGFIX for RRP : order of elements is now exactly as specified by standard
- BUGFIX for Net::DRI::DRD in host_is_mine: parameters (warning not triggered in some perls)
- BUGFIX for Net::DRI::DRD in err_invalid_domain_name/err_invalid_host_name: correct message 
                                               & really raise an exception if a problem is found !
- BUGFIX for Net::DRI::DRD in check_name: correct count of dots
+ Net::DRI::Transport::Socket : require on the protocol connection class to make sure it works
- DOCFIX for Net::DRI::Data::Hosts (a ] was missing for the ref array of IPs)
+ New tests for Net::DRI::Protocol::RRP::Connection, Net::DRI::Protocol::AFNIC::WS::Message,
   Net::DRI::Protocol::Gandi::Web::Message, Net::DRI::Protocol::Gandi::Web::Connection
- BUGFIX : no more warnings in tests, we use the TODO block of Test::More

0.11 2005-04-25

+ POD NAME section for each file with a short description
- BUGFIX for VERSION (. missing)
+ New files: Changes, TODO
= No changes in code

0.10 2005-04-24

= First version on CPAN
