-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathChanges
More file actions
1502 lines (1380 loc) · 120 KB
/
Changes
File metadata and controls
1502 lines (1380 loc) · 120 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Net::DRI changelog from newest to oldest changes
0.13-tdw 2020-03-25 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_09. See https://metacpan.org/release/Net-DRI !!
!! Many gTLDs have been migrated between registry backends, I won't detail except for change of DRD.
!! Credit to Paulo Jorge for dozens and dozens of minor changes.
= Neustar/Narwal corrected, renamed to Neustar/Narwhal
= Neustar/BIZ now Neustar/Narwhal
= Afilias/DotAsia now Afilias::Shared
= DotAsia modules removed, use Afilias/Shared. Old .asia specific extensions no longer in use.
= DNSBelgium moved to DNSBelgium/BE and DNSBelgium/GTLD
= VeriSign/NAME now VeriSign/NameStore
= UnitedTLD/Rightside and UnitedTLD/Donuts merged into single DRD Donuts
+ Updates for .de (RRI-3.0), .eu, .pl, .it, from Paulo Jorge
+ Added .cl, .sk, .fi, .tw, and .pt support, from Paulo Jorge
+ Added UniRegistry::EPS support, from Paulo Jorge
0.12-tdw 2017-06-28 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_09. See http://search.cpan.org/dist/Net-DRI/ !!
!! Note, this release includes the restructure of DRDs from Net-DRI-0.96_09, meaing that you will need to change your scripts.
!! See http://cpansearch.perl.org/src/PMEVZEK/Net-DRI-0.96_09/Changes, along with the note:
!! "This version changes almost all DRD module names, you will need to change your scripts.
!! This is a consequence of an old design decision that no DRD module should have a TLD as name.
!! Now, by default a DRD of a TLD registry will have the sponsor name as listed on IANA website."
!! Note3, While the upstream favours the Registry name for DRD, I favour the BackendOperator::Platform Naming
!! So instead of (.travel) Tralliance, I use Neustar::Tralliance, though there is variation in here I am still working on!
= Fix a few warnings redundant argument in sprintf/namespace issues
= For perl 5.23+ I have fixed all push & shift on scalar reference errors
+ standalone DRDs have been added for all New gTLDs (previous using NGTLD DRD)
= ARI is now Neustar/Narwal
= AE is now TRA/AE
= AERO is now SITA
= AFNIC is now AFNIC/AFNIC
= AFNIC_GTLD is now AFNIC/GTLD
= AG is now Afilias/Shared
= ASIA is now Afilias/DotAsia
= AT is now NicAT/AT
= AU is now auDA
= BE is now DNSBelgium
= BH is now TRA/BH
= BIZ is now Neustar/BIZ
= BR is now CGIBR/BR
= BZ is now Afilias/Shared
= CAT is now puntCAT
= CentralNic is now CentralNic/CentralNic
= CentralNicGW is now CentralNic/Gateway
= CIRA is now CIRA/CA
= CO is now Neustar/COInternet
= CoCCA is now CoCCA/CoCCA
= COOP is now DotCooperation
= CORENIC is now TangoRS/CORE
= COZA is now ZACR
= CN is now CNNIC/CN
= CNNIC is now CNNIC/CN
= CZ is now CZNIC
= DK is now DKHostmaster
= DONUTS is now UnitedTLD/Donuts
= EC is now NICEC
= ES is now RedES
= GL is now TELEGreenland
= GMO is now GMORegistry/GMORegistry
= HN is now RDS
= ID is now PANDI
= IM is now Domicilium
= IN is now Afilias/IN
= INFO is now Afilias/Afilias
= IT is now IITCNR
= LC is now Afilias/Shared
= LU is now RESTENA
= LV is now LVRegistry
= MAM is now Nominet/MMX
= ME is now Afilias/Shared
= MN is now Afilias/Shared
= MOBI is now Afilias/Afilias
= MSKIX is now TCI/MSKIX
= MX is now NICMexico
= MX_GTLD is now ECOMLAC
= NAME is now VeriSign/NAME
= NO is now NORID
= Nominet is now Nominet/UK
= NU is now IIS
= NZ is now InternetNZ
= ORG is now Afilias/PIR
= PH is now CoCCA/PH
= PL is now NASK
= PRO is now Afilias/Afilias
= PT is now DNSPT
= RegBox is now NicAT/RegBox
= RF is now TCI/RF
= RO is now NICRO
= RU is now TCI/RU
= SC is now Afilias/Shared
= SE is now IIS
= SIDN is now SIDN/NL
= SIDN_GTLD is now SIDN/GTLD
= SO is now SONIC
= SU is now TCI/SU
= TANGO is now TangoRS/TangoRS
= TCI is now TCI/TCI
= TCI_gTLD is now TCI/GTLD
= Telnic is now Neustar/Narwal
= TRAVEL is now Neustar/Tralliance
= UNIREG is now UniRegistry
= UNITEDTLD is now UnitedTLD/Rightside
= UA is now HostmasterUA
= US is now Neustar/US
= VC is now Afilias/Shared
= DRD/NAME is now DRD/VeriSign/NAME
= DRD/VNDS is now splitted into DRD/VeriSign/COM_NET and DRD/VeriSign/NameStore
= WS is now GDI
0.11-tdw 2017-05-15 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_08. See http://search.cpan.org/dist/Net-DRI/ !!
!! Note 2, the next release will include the restructure of DRDs, and hopefully a cleanup with it.
!! See http://cpansearch.perl.org/src/PMEVZEK/Net-DRI-0.96_09/Changes
= A number of new TLDs have been added in various places
= Many TLDs have migrated between providers since the last release. Lots of Afilias and Neustar/ARI movements, Nominet-MMX movements.
= Some EPP Servers only allow TLS1.2 and the DRD's have been updated to force this (Switch, Nominet, GMO, SIDN... )
= A number of registries have updated their fee extension implementations (Afilias, GMO, Verisign...)
= Various bug fixes from David Makuni and Paulo Jorge
= Eurid updated to latest release extensions
+ .NAME DefReg extension added
+ .NAME EmailFws extension update by Paulo Jorge
+ Additional Fee extension support (0.11) from Patrick Mevzek
+ Update to .PL renewals/reactivation from Marcus Fauré
+ Additional TCI ccTLD and gTLD DRDs and updates from Dmitry Belyavsky
+ Added .IN, .RO support from David Makuni
+ Added CZNic's FRED support from David Makuni for .CZ, .MW, .AO, .TZ, .CR, .AL, .MK, .AR
0.10-tdw 2016-06-20 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_08. See http://search.cpan.org/dist/Net-DRI/ !!
+ Added gTLD Support for Amsterdam(SIDN), LAT (NicMX), Amazon(Neustar) (Paulo Jorge)
+ Added ccTLD DRDs and Support for AfiliasGRS AE DK EC LV PH UA (David Makuni)
+ Added ccTLD DRDs and Support for CN NZ (Paulo Jorge)
+ Added Unireg Market Extension (Paulo Jorge)
+ Added AFNIC gTLD PremiumDomain extension
+ Added MAM Qualified Lawyer extension
+ Added CentralNIC AuxContact, RegType
+ Added CoCCA offline update extension
+ Added Cornic/Tango promotion extension
= Updated versions of draft-ietf-eppext-launchphase-07
= Updated draft-ietf-eppext-tmch-smd-06, note this is now rfc7848 but we have not updated yet
= Updated draft-brown-epp-fees-06 (fee-0.9) - note, fee-0.11 has been published but not yet implemented
= Various gTLDs switched to draft-brown-fees, PIR/Afilias/Neustar/CoCCA/Unireg/KS/KNET/RegBox
= Updated Eurid modules, poll-1.2, domain-2.0, and added tld .xn--e1a4c
= domain_check_price updated for phase support
= Small changes/fixes (.es, .no, .nl,
= Various TLD lists updated in NGTLD.DRD
= Log files can change name without crashing now
+ hold_down option for registry transport to leave a connection disable for X seconds
0.9-tdw 2015-06-02 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_05 with updates from 0.96_06. See http://search.cpan.org/dist/Net-DRI/ !!
+ TCI nGTLD Support (Thanks to patches from Dmitry Belyavsky and Paulo Jorge)
+ .MX EPP support, from Paulo Jorge
+ .PL Polling updates, from Paulo Jorge
+ .PL Obsolete domain code cleanup (using domain $self->{info}->{host_as_ns}=1;)
+ Afilias JSON Messge parse, from Paulo Jorge
+ Afilias Validation extension
+ ServiceMessage extension (Michael Braunoeder)
+ .ES host fix (Paulo Jorge)
+ Tango-RS added support for draft-brown-fees for .nrw (Paulo Jorge)
+ ARI updated to Price-1.2, added Block-1.0
+ draft-brown-epp-fees-03 (fee-0.7)
0.8-tdw 2014-10-30 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_05 with updates from 0.96_06. See http://search.cpan.org/dist/Net-DRI/ !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRP) or transports *might* not work in this version, however EPP over HTTPS is working as is RRI
+ Added support for draft-brown-epp-fees-03 (fee-0.6) for CRR (Paulo Jorge)
= Minor TMCH protocol fixes
+ LaunchPhase extension: updated to draft-ietf-eppext-launchphase-02
+ Fix some issues arising from Hash Randomisation
= NGTLD DRD TLD Corrections/Additions
+ EPP lang defaults to en at login if server supports it instead of first mentioned language
+ AFNIC gTLD: RegistryMessage parser to create LaunchPhase action from panData
+ NGTLD.DRD disable verify_icann_reserved() until its been updated as ICANN has changed some policies with 2 character labels
+ Added support for nic.br (.rio, .final, .bom)
+ ZA, fixes with greeting parse, add SecDNS support, and minor updates on COZADOMAIN extension
0.7-tdw 2014-10-30 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_05 with updates from 0.96_06. See http://search.cpan.org/dist/Net-DRI/ !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRP) or transports *might* not work in this version, however EPP over HTTPS is working as is RRI
+ Added Support for Afnic ngTLDs (Paulo Jorge) & Nominet & OpenRegistry
+ Minor fixes on LaunchPhase and Centralnic::Fee extensions
+ TMCH message codes added
+ Added extension Tago/CoreNIC AugmentedMark (Paulo Jorge)
+ VNDS Premium domains check_multi added (Paulo Jorge)
+ VNDS Registry Extension - Experimental (Paulo Jorge)
+ TLD corrections in NGTLD.DRD
0.6-tdw 2014-09-16 DEVELOPMENT RELEASE
!! Note, this is not an official release; it is based on Net-DRI-0.96_05 with updates from 0.96_06. See http://search.cpan.org/dist/Net-DRI/ !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRP) or transports *might* not work in this version, however EPP over HTTPS is working as is RRI
= Changed versioning to Net-DRI-0.X-tdw. Rather than rebasing from Net-DRI-0.96_06, I will import changes are required and called this version a fork.
+ Merged in various updates from Net-DRI-0.96_06 including EU, UK, PT, CZ, NL, CH, FR (Removed Email) DE, (Removed DCHK), OpenSRS TCI, ISPAPI, KeyRelay-03
= LaunchPhase, allow custom phases for claims check form
0.96_06_tdw_05 2014-09-08 DEVELOPMENT RELEASE
!! Note, this is not an official release !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRI,RRP) or transports *might* not work in this version, however EPP over HTTPS is working.
#### Core
+ $dri->get_info() now tries [de]camelized version of the request too
+ Customisable {domain/host/contact}_check_limit
+ force_native_idn option for DRDs where registry uses idn instead of puny in domain:name (expiremental, required for .IT)
#### New gTLDS
+ Added CNNIC/Extensions
+ Added KNET/Extensions
+ Added ZACR/Extensions
+ NGTLD WHOIS protocol working for pretty much all
+ NGTLD Premium standardisation ($dri->get_info('is_premium / price_create / price_renew ...
+ Experimental domain_check_claims and domain_check_price methods
= Minds & Machines: Split into mam(mamown) / mamclient / mamparter(mamsrs) for different systems
= GMO, Adde gmogeo to geoTLDs
= ARI TMCHApplication extension fixes
+ CantralNIC Fee Extension support 0.4 and 0.5, but needs work!
= Afilias IDN bug fix
= Afilias Validation & Price extensions (Paulo Jorge)
+ Verisign NameStore extension uses current_product for contacts/hosts
#### ccTLDs
+ Added .CO DRD/Extension
+ Nominet - DirectRights extension + .UK sLD added
+ AT GracePeriod extension loads by default
+ IT IDNs fixed (force_native_idn)
+ DE added force_native_idn usage
0.96_06_tdw_04 2014-05-12 DEVELOPMENT RELEASE
!! Note, this is not an official release !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRI,RRP) or transports *might* not work in this version, however EPP over HTTPS is working.
#### New gTLDS
= Fix UniRegistry Contacts/Polls issue
+ Added CRR (Charleston Road Regisry) DRD and to NGTLD drd
+ Add KSRegistry (NGTLD only)
= Split MAM to MAM and MAMSRS as the latter are their clients have have dedicated EPP servers
+ Add NYC (Neustar) Nexus contact extension
= Split KS into StartingDot and KS as StartingDot is shared while other KS tlds are dedicated
+ Updated TMCH to API v2 (Michael Holloway/Paulo Jorge)
#### ccTLDs
= Protocol/EPP/Extensions/NO/Domain : bugfix on the deleteDate parameter handling - form Net-DRI-0.96_05.no.1.0.1_1 (Jørgen Thomsen/Trond Haugen)
= Added Depricated versions of SE DRD and Contact objects for backwards compatability (Jan Saell)
+ Updated .PL to NASK v2 API, and added Future Extension (Paulo Jorge)
0.96_06_tdw_03 2014-03-28 DEVELOPMENT RELEASE
!! Note, this is not an official release !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRI,RRP) or transports *might* not work in this version, however EPP over HTTPS is working.
#### Core
+ DRI option identify_client (disabled by default) will prepend the Net-DRI version to the clTRID
#### New gTLDS
= Updated launch/idnmap/smd drafts (versions only, no real changes)
= Enabled CoreNIC Launchphase
= Fix NGTLD default object types + PIR & CORENIC
= Updated NGTLD: split Afilias int Afilias, Afilias-SRS, and PIR, and added bep_type for shared/dedicated beps to detect tlds etc.
= IDN object now detects extlang (eg zh-tw)
= LaunchPhase extension updated to support multiple launch extensions in create command (e.g. for DPML override)
= NGTLD DRD updates _has_bep_key and verify name rules updates
+ Neustar FEE extension
+ CentralNIC Fee Extension (from Paulo Jorge)
+ GMO DRD
#### gTLDS
= Updated Neustar+Afilias_Verisign IDN units to accept the IDN object, or if not avail fall back to $rd->{language}
= Merged some afilias/neustar test files
0.96_06_tdw_02 2014-03-11 DEVELOPMENT RELEASE
!! Note, this is not an official release !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRI,RRP) or transports *might* not work in this version, however EPP over HTTPS is working.
#### New gTLDS
+ Added NGTLD SuperDRD, once DRD to rule them [ngTLDs] all
+ UnitedTLD Finance extension : registrar_balance command for Donuts/UnitedTLD (Rightside)
+ RegBox (Nic.at) DRD from Michael Braunoeder
+ AfiliasSRS DRD + Extensions
#### ccTLDs
= Imported .NO changed from Net-DRI-0.96_05.no.1.0.1 (By Norid)
- eg/epp_client_no.pl: added support for bulk operation by specifying a -I option which should point to a file with a list of domains
- lib/Net/DRI/Protocol/EPP/Extensions/NO/Result.pm: When parse() is now also called for a 'session' (login sequence), $oname is undef, and we set it to $otype to remove a perl warning.
- lib/Net/DRI/Protocol/EPP/Extensions/NO.pm: Activated secDNS extensions
- eg/epp_client_no.pl: added support for secDNS parameters
- t/633norid_epp.t: added secDNS tests
#### Other
= Can now send a DRI object (i.e. preconfigured) to Net::DRI::Shell->run({dri=>$dri});
0.96_06_tdw_01 2014-03-04 DEVELOPMENT RELEASE
!! Note, this is not an official release !!
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (Whois,DAS,RRI,RRP) or transports *might* not work in this version, however EPP over HTTPS is working.
#### Core
= Transport/HTTP : allow for persistent connections (has_state=1) to replicate Transport/Socket behaviour
= Protocol/EPP/Connection : Better handling of disconnects
= Protocol/RRI/Connection : Better handling of disconnects
+ Logging : added options suppress_keepalive, trim_headers
+ Logging/Files : added option format_filename
+ Protocol/EPP : added nameserver method host_as_ns to build <domain:ns>ns1.test.com</..>, currently utilised by ES
+ Data/IDN : A new IDN object to try and make a common method of creating / parsing domains with IDNs. Requires Net::IDN::Encode
= EPP/Core/Contact : use $ns for namespace instead of 'contact', allowing external extensions to use the parser
+ Util : Added functions xml2perl and perl2xml to convert variable naming convention, requires Hash::KeyMorpher
#### ccTLDs
+ New EPP DRD added for ES (they also support a SOAP interface, but not implemented)
+ Nominet - Updated to Nominet Standard EPP (2013 patch)
+ IT - Various updates to their system in 2013
= BE - Enabled IDNs
= COZA - Fix contacts, fix registrar_balance, couple of other minor fixes
= Switch - Fix contacts
= SE - DRDs (and Extensions) renamed to IIS as this now supports *.se and .nu
= CentralNIC : removed obsolete extensions
= Eurid : Fix namespace issue in transfers
= DENIC : idn fixes (note, DENIC now supports graceperiods which is not implemented)
#### New gTLDs
+ EPP/Extensions/LaunchPhase : implememted LaunchPhase extension to latest draft-ietf-eppext-launchphase-00. Thanks to Michael Braunoeder for big fix
+ New EPP DRDs and extensions added for AFNIC_GTLD,ARI,CORENIC,DONUTS,MAM,NEUSTAR,TANGO,UNIREG,UNITEDTLD,ZACR (in progress, Afilias, CentralNic, RegBox, CRC)
= EPP/Extensions/Icann/MarkSignedMark : minor fixes, up to date according to draft-lozano-tmch-smd-03, but I believe this has been moved to a new WG draft
= EPP/Extensions/IDN : now compatible with Data::IDN object. Up to date according to draft-obispo-epp-idn-03, but I believe this has been moved to a new WG draft
#### gTLDs
+ Afilias/Registrar : Afilias Registrar Info Extension (from Paulo Jorge)
+ Neulevel/Message : parser for NeuLevels extmessage
#### TMCH
+ Added Protocol for TMCH using tmch-1.0 (which is unfortunately end of life from 01/01/14 at least with Deloitte).
+ Added TMCH DRD using Deloitte.pm (there are supposodely more to come, but currently not sure how it will work).
#### TMDB
+ Added Protocol for TMDB which supports SMDRL and CNIS only
+ Added TMDB DRD using TMDB.pm
0.96_09 2016-05-22 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
This version changes almost all DRD module names, you will need to change your scripts.
This is a consequence of an old design decision that no DRD module should have a TLD as name.
Now, by default a DRD of a TLD registry will have the sponsor name as listed on IANA website.
= DRD/AERO is now DRD/SITA
= DRD/AG is now DRD/UHSA
= DRD/ASIA is now DRD/DotAsia
= DRD/AT is now DRD/NicAT, and add co.at and or.at in list of tlds supported
= DRD/AU is now DRD/auDA
= DRD/BE is now DRD/DNSBelgium
= DRD/BH is now DRD/TRA
= DRD/BIZ is now DRD/Neustar/BIZ
= DRD/BR is now DRD/CGIBR
= DRD/BZ is now DRD/BelizeNIC
= DRD/CAT is now DRD/puntCAT
= DRD/COOP is now DRD/DotCooperation
= DRD/COZA is now DRD/ZACR, and add .org.za, .net.za and .web.za in list of tlds supported
= DRD/CZ is now DRD/CZNIC
= DRD/GL is now DRD/TELEGreenland
= DRD/HN is now DRD/RDS
= DRD/ID is now DRD/PANDI
= DRD/INFO is now DRD/Afilias
= DRD/IT is now DRD/IITCNR
= DRD/LU is now DRD/RESTENA
= DRD/MOBI is now DRD/dotMOBI
= DRD/NO is now DRD/NORID
= DRD/NU is now DRD/IUSN
= DRD/ORG is now DRD/PIR
= DRD/PL is now DRD/NASK
= DRD/PRO is now DRD/RegistryPro
= DRD/PT is now DRD/DNSPT
= DRD/SC is now DRD/VCS
= DRD/SE is now DRD/IIS
= DRD/SO is now DRD/SONIC, and add edu.so, gov.so and me.so in list of tlds supported
= DRD/TRAVEL is now DRD/Tralliance
= DRD/WS is now DRD/GDI
= DRD/MN is now DRD/Datacom
= DRD/IM is now DRD/Domicilium, and add ac.im, plc.co.im, ltd.co.im and remove net.im in list of tlds supported
= DRD/LC is now DRD/NicLC, and add edu.lc, gov.lc and remove l.lc and p.lc in list of tlds supported
= DRD/ME is now DRD/doMEn
= DRD/VC is now DRD/SaintVincentGrenadines
= DRD/US is now DRD/Neustar/US
= DRD/NAME is now DRD/VeriSign/NAME
= DRD/VNDS is now splitted into DRD/VeriSign/COM_NET and DRD/VeriSign/NameStore
0.96_08 2016-03-31 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
+ Data/LanguageTag : new module to implement RFC 5646 ("Tags for Identifying Languages") parsing (everything possible offline without access to the registry)
+ Protocol/EPP/Extensions/ChangePoll : new module to implement draft-gould-change-poll-04
+ Protocol/EPP/Extensions/CNNIC/Bundling : new module to implement draft-kong-eppext-bundling-registration-02
+ Protocol/EPP/Extensions/AusRegistry/Price : new module to implement https://ausregistry.github.io/doc/price-1.2/price-1.2.html
+ Protocol/EPP/Extensions/AusRegistry/Sync : new module to implement http://ausregistry.github.io/doc/Domain%20Expiry%20Synchronisation%20Extension%20Mapping%20for%20the%20Extensible%20Provisioning%20Protocol.docx
+ Protocol/EPP/Extensions/UnitedTLD/Charge : new module to implement http://rightside.co/fileadmin/downloads/policies/Rightside_Price_Categories.pdf
+ Protocol/EPP/Extensions/ICANN/RegistrarExpirationDate : new module to implement draft-lozano-ietf-eppext-registrar-expiration-date-00
+ Protocol/EPP/Extensions/Reverse : new module to implement draft-brown-epp-reverse-00
+ Protocol/EPP/Extensions/ContactVerification : new module to implement draft-wang-eppext-contact-verification-01
+ Protocol/EPP/Extensions/DomainVerification : new module to implement draft-wang-eppext-domain-verification-01
= Protocol/EPP/Extensions/ICANN/MarkSignedMark : flag to enable/disable local XML validation as needed, adapt tests
= Protocol/EPP/Extensions/ICANN/MarkSignedMark : updated to draft-ietf-eppext-tmch-smd-06
= Protocol/EPP/Extensions/KeyRelay : updated to draft-ietf-eppext-keyrelay-11
= Protocol/EPP/Extensions/ResellerObject : updated to draft-zhou-eppext-reseller-mapping-03
= Protocol/EPP/Extensions/ResellerInfo : updated to draft-zhou-eppext-reseller-03
= Protocol/EPP/Extensions/AllocationToken : updated to draft-gould-allocation-token-02
= Protocol/EPP/Extensions/VeriSign/Sync : internal simplification
= DRD/ICANN : 2 characters are now allowed in .xxx
= DRD/AFNIC : direct creation with nameservers is allowed
= Protocol/EPP/Extensions/AFNIC : updated to frnic-1.4
= Protocol/EPP/Extensions/AT/Domain : parsing keydate (patch by from Michael Braunoeder)
= Protocol/EPP/Extensions/ARNES : various updates for .SI (patch by Benjamin Zwittnig)
= Protocol/EPP/Core/Domain : slight reorganization inside renew() without functional changes
- Protocol/EPP/Core/RegistryMessage : taking hash keys order better into account, in order to not trigger problems with newer Perl versions
- Protocol : create_local_object() does not accept an unknown factory anymore
- Util : be more strict on XML types validation, refusing Perl references
- Transport/Socket : better handling of socket close to prevent message "Warning: unable to close filehandle properly: Bad file descriptor during global destruction"
- Shell : correct parsing of options with a '=' sign inside the value
0.96_07 2015-05-25 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
+ bump minimum perl version required to 5.10.0 (using // and state operator)
+ ExtUtils::MakeMaker version 6.64 at least is needed
+ Protocol/EPP/Extensions/ResellerInfo : new module to implement draft-zhou-eppext-reseller-00
+ Protocol/EPP/Extensions/ResellerObject : new module to implement draft-zhou-eppext-reseller-mapping-00
+ Protocol/EPP/Extensions/ServiceMessage : new module to implement draft-mayrhofer-eppext-servicemessage-00
+ Protocol/EPP/Extensions/CIRA/IDN : new module to implement draft-wilcox-cira-idn-eppext-00
+ Protocol/EPP/Extensions/AllocationToken : new module to implement draft-gould-allocation-token-01
+ Protocol/EPP/Extensions/KeyRelay : updated to draft draft-ietf-eppext-keyrelay-02
+ Protocol/EPP/Extensions/IDN : updated to draft draft-ietf-eppext-idnmap-02
+ Protocol/EPP/Extensions/ICANN/MarkSignedMark : updated to draft draft-ietf-eppext-tmch-smd-01
+ Protocol/EPP/Extensions/ICANN/MarkSignedMark : add full local XMLsec validation (for that you need: Crypt::OpenSSL::X509 Crypt::OpenSSL::RSA Digest::SHA XML::LibXML::XPathContext)
= various updates to simplify operations, specifically tests, and convert to more modern perl
= sort all keys of associative arrays, to take into account randomization in newer perl versions
= Util : update list of country codes
= Protocol::_load() : allow to remove classes to load from default list of extensions (see examples of use in various test files)
= Protocol/EPP/Extensions/VeriSign : load NameStore by default (as suggested by Michael Holloway)
= Protocol/EPP/Extensions/ISPAPI : handling updates (patch by Anthony Schneider)
= reorganization of tests under t/ : each test has the same name as the module it tests, when possible
= DRD/ICANN::ALLOW2 updates (taking into account new gTLDs)
= Protocol/EPP/Core/RegistryMessage : forward data about notification messages too
- Protocol/RRP was loading EPP extensions instead of RRP ones
- Protocol/EPP/Extensions/COOP/Contact : bugfix in sprintf use
- Protocol/EPP/Extensions/VeriSign/ZoneManagement : fix typo in error message (ttl instead of tll)
- Protocol/EPP/Core/Domain & other modules parsing domain:info replies : do not duplicate contacts with same id, make sure to re-use the objects
0.96_06 2014-09-10 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
+ better Perl Kwalitee support (less POD errors, better list of files to skip, etc…)
+ Nominet : various updates from registry, switching to standard EPP (patch by Michael Holloway, with minor changes)
+ Protocol/EPP/Extensions/IDN : upgrade to draft-obispo-epp-idn-03
= DRD/PL : add waw in list of TLD (cherry-pick of ea06a142d0ed238b2722798a2c28ac543b10b811 from Jimmy Bergman)
= DRD/OpenSRS : update list of supported TLDs
= DRD/DENIC : remove D-CHK support as service was removed by registry
= Protocol/EPP/Connection : better handling of connectivity issues (patch by Michael Holloway)
= Protocol/EPP/Extensions/KeyRelay : implement draft version -03
= Protocol/EPP/Extensions/CZ : version bump at the FRED registry (cherry-pick of c909ead7caed43f6f0aeff2edd0ddff28b72e5d4 and f367c5c71653652134f595cc841cca0f46ce7a3f from Tonnerre Lombard)
= Protocol/EPP/Extensions/SWITCH : load GracePeriod extension by default (cherry-pick of 620096e6dd97c57baf90653f30e016d478ac2780 from Tonnerre Lombard)
= Protocol/EPP/Message + Protocol/OpenSRS/XCP/Domain : make date parsing more forgiving (cherry-pick of 604c714c7245f3abbc88a6ac585344ea3d3e9fd2 from Jimmy Bergman)
= Protocol/EPP/Extensions/PL : add SecDNS by default (cherry-pick of 760a32b65a4eadc52c4cf97fec1291e4566082bd from Jimmy Bergman)
= Protocol/EPP/Extensions/BIZ : add SecDNS by default (cherry-pick of 6bc4a3c87d3ceb9999c8aba5f7a865f3f6a32072 from Jimmy Bergman)
= Protocol/OpenSRS/XCP/Domain : allow f_bypass_confirm (cherry-pick of 99362c0e39acfe5e506f89ec5de3484cb0cd8095 from Jimmy Bergman)
= Protocol/EPP/Extensions/ISPAPI : add SecDNS by default (bugreport by Tobias Mädel)
= Protocol/EPP/Extensions/ICANN/MarkSignedMark : upgrade to draft-lozano-tmch-smd-03
= Protocol/EPP/Extensions/SIDN : add KeyRelay extension by default
= .PT bugfixes (cherry-pick from a9ca927b54d993f5bf8ae440e376ea9acabd0501 by Jimmy Bergman)
= Fix IDN support for .BIZ (cherry-pick of dc8ab4e0cabca57bddc1878cbda948a4107faaf6 from Jimmy Bergman, and adaptations)
= EURid updates for registry changes (patch by Michael Kefeder)
= AFNIC : completely remove support for emails, as service not offered anymore by registry
- Protocol/EPP/Extensions/FCCN/Domain : pass perlcritic level 4
- Data/Contact/OpenSRS : BUGFIX in regex found with perl 5.17 ( http://www.cpantesters.org/cpan/report/3456cc8e-b24c-11e2-b2b7-fe16c1508286 )
- DRD/ASIA : fix whois server hostname (cherry-pick of e6a82f7f16a628959ff0ca6bdfad5e81bce64ec8 from Tonnerre Lombard)
- DRD/{TCI,OpenSRS} : bugfix in list of object_types
- Shell : better protection during dates handling
0.96_05 2013-05-01 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
+ Net::DRI (all modules in distribution) pass Perl Best Practices level 4; xt/003critic.t now uses level 4 by default
+ .TEL EPP support, from patch by Michael Holloway
+ .XXX EPP support, from patch by Michael Holloway
+ Protocol/EPP/Extensions/ICANN/MarkSignedMark : new EPP extension implementing of draft-lozano-tmch-smd-02
+ Protocol/EPP/Extensions/KeyRelay : new EPP extension implementing draft-gieben-epp-keyrelay-02
+ Protocol/EPP/Extensions/AusRegistry/Variant : new EPP extension (used in some new gTLDs applications)
+ Protocol/EPP/Extensions/AusRegistry/IDN : new EPP extension (used in some new gTLDs applications)
+ Protocol/EPP/Extensions/AusRegistry/KeyValue : new EPP extension (used in some new gTLDs applications)
+ Protocol/EPP/Extensions/IDN : implementation of draft-obispo-epp-idn-02 (used in some new gTLDs applications)
+ Protocol/EPP/Extensions/VeriSign/Balance : new EPP extension (https://www.verisigninc.com/assets/epp-balance-mapping.pdf)
+ DRD/UPU : .POST registry
= Better support for Perl 5.17+ : removal of deprecated 'use encoding' feature, force various hashes keys ordering
= Replace UNIVERSAL::require with Module::Load and a nice wrapper in Net::DRI::Util::load_module()
= DRD/ICANN : allow .ORG 1 & 2 characters domain names
= DRD/CentralNic : updated TLDs list
= DRD/SE : add .NU as handled TLD, from instructions by Ulrich Wisser
= .NAME : add SecDNS EPP extension
= .AT : add SecDNS EPP extension, from patch by Michael Braunoeder
= .EU : various updates/bugfixes by Michael Kefeder
= .NO : various updates by Jørgen Thomsen
= .ASIA .XXX .ME .MOBI (Afilias IPR/Association) updates by Michael Holloway : adds support for oxrs-1.1, updates for ipr-1.1, .XXX support with Association extension
= Protocol/EPP/Extensions/EURid/Domain : change of API for domain_delete, deleteDate => undef is replaced by cancel => 1, from suggestion by Michael Kefeder
= Protocol/EPP/Extensions/NO/Domain : use only the 1.1 EPP schema version for all domain extension commands
= Protocol/EPP/Extensions/NO/Domain : support parsing of applicantDataset from Domain info
= Protocol/EPP/Extensions/NO : support 1.1 version of domain extension schema, and support 'set' of applicantdataset
= Protocol/EPP/Extensions/NO/Domain : added support for new domain-1.1 extension for applicantDataset
= eg/epp_client_no.pl : support 'applicantdataset' and 'applicantdatasetfile' arguments
= eg/epp_client_no.pl : dump more information about each transaction; '-F' option added to control dump format
= Data/Contact/NO : added support for the anonymousPersonIdentifier
= Data/Contact/NO : fixed a bug introduced in 0.96
= .NO Result.pm : use a new API method available in 0.96: Also return conditions by the new add_to_extra_info method
= .NO Host.pm : modified to support multiple host contacts, as the host schema says (Any restrictions in number is from now on up to registry policy. Note that the host_info() now returns an array for the host contact(s), so clients may need to be adapted.)
= t/633norid_epp.t : adjusted to the host change
= eg/epp_client_no.pl : adjusted to the host change
= Logging::Syslog : removed concatenation of facility to priority as it does not seem to work
= Util::xml_child_content() : can only be used in scalar context, hence simplify API
= Net::DRI : remove never used option global_timeout
= Net::DRI & Net::DRI::Exceptions->new() : always pass a refhash, nothing else
= Protocol::build_strptime_parser() : use dedicated ASCII char (1E = Record Separator) for scalar key generation from list of args
= Shell : docfix for output
= Shell : handle XML::LibXML::Error case
= Protocol/EPP/Extensions/SecDNS : use new API for command_extension_register, and rename local alias to secDNS
= Protocol/EPP/Connection : take into account fragmented length also, patch by Cedric Dubois
= Protocol/RRI : various updates from Michael Holloway
= Protocol/EPP/Extensions/DNSBE : various updates (adding Notifications) from Michael Holloway
= .BIZ EPP updates : explicit use of Neulevel::IDNLanguage, patch by Michael Holloway
= Transport : for SSL handling, take into account SSL_hostname for SNI, patch by Michael Holloway
= Protocol/EPP/Extensions/VeriSign : add documentation to explain NameStore is not loaded by default, while it should, from suggestion by Michael Holloway
- DRD/NO : return 'no' and not 'NO' in tlds()
- Protocol/EPP/Core/Domain : clone DateTime object passed before chaning its timezone
- DRD::host_update_status() : missing else clause
- Protocol::build_strptime_parser() bugfix dealing with input params
- Protocol/EPP/Extensions/SecDNS : 2 BUGFIXES in join use
0.96_04 2012-11-20 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
+ EURid : preliminary upgrade to registry release 9.0; major changes everywhere specially around transfers (updates have not been extensively tested, please give feedback)
+ .ID basic support with EPP
+ EPP/VeriSign/ZoneManagement
+ EPP/VeriSign/TwoFactorAuth
+ Shell : implement history persistence across executions
+ Logging/Files : allow to specify the filename (output_filename parameter)
= Enable SecDNS in .NL
= OpenSRS/XCP : various updates (patch by Dmitry Belyavsky)
= DENIC updates, various patches from Michael Holloway detailed below
= DENIC updates : added remarks field
= DENIC updates : Fixed Disclose (add disclose attributes to relevant elements instead of creating a a separate disclose element
= DENIC updates : Added DNSSec support for Domains
= DENIC updates : Added commands ( transit, migrate_descr, create_authinfo, delete_authinfo) for Domains
= DENIC updates : tests updated
= DENIC updates : validate secDNS date for Domains
= DENIC updates : Make withProver disabled by default in domain_info as this is limited by the registry. $dri->domain_info('dom.de',{withProver=>1}) to get withProvider info
= DENIC updates : Fixed bug parsing response on domain info withProvider (contact data not always returned caused a getData exception)
= Logging + EPP/Message : option to allow removal of session passwords
= (internal) EPP/Message : enhance nsattrs & command_extension_register (API simplification to be ported to all modules)
- Sys::Syslog is not mandatory anymore (does not exist on Windows)
- SecDNS : bugfix in keyData/dsData split (bugreport from Andreas Wittkemper)
0.96_03 2012-04-15 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
+ .FR/.RE/.YT/.TF/.WF/.PM various updates : updates to frnic-1.2, handling qualification process, new legal form ids, change of EPP test server hostname, DCHK support, etc.
+ TCI updates submitted by Dmitry Belyavsky
+ .PL extreport EPP extension
+ .CAT registrant disclosure extension
+ .EU : remove DSS extension at login by default
+ EPP new way to specify extensions 1/3 : "only_local_extensions" to announce to server only what we enabled locally as extensions
+ EPP new way to specify extensions 2/3 : "extensions" with ref array to add, remove or specify absolutely what extensions we want
+ EPP new way to specify extensions 3/3 : "extensions_filter" to pass a coderef getting all extensions and returning back the list we want to use
= IO::Socket::SSL is required to be at least at version 1.31 (previously we required only version 0.90 or more)
= DRI : use client_id when creating new instance, not clID anymore, from warning by Gerben Versluis
= Exception : take into account little change in Carp output introduced in Carp 1.25 (perl 5.15.8)
= Transport/Socket : test $sock->connected() before $sock->print(), from bugreport & suggestion by Joris van de Sande
= Shell : in batch commands, test local executable before local file
= Shell : better output in batch commands (more aggregation, less empty spaces)
= Protocol/EPP/Core/Session : server id is in server_id not anymore in id
= Protocol/Whois/Domain/common : contact ID is put in srid, not in roid + add contact only if it really exists (not empty)
= ContactSet : new can be called with an hash or ref hash with keys being contact types and value being a ref array of items or only one item, with items being contact ids or contact objects
= ContactSet new methods : contact_admin contact_tech contact_billing etc. automatically created for all contact types existing
= .FR/.RE/.YT/.TF/.WF/.PM : remove all email support, as not supported anymore by registry
- Registry : correct transport handling (really send EPP <logout/>), from bugreport by Gerben Versluis
- Transport : make a working ping method directly through the $dri object, from bugreport by Gerben Versluis
- ResultStatus : incorrect call to normalize_name, from bugreport by Michael Kefeder
- Util : use initial empty value not undef in xml_indent, from bugreport by Dmitry Belyavsky
- ContactSet : has_type returns 1 only if they really are some contacts for that type
- Protocol/EPP/Extensions/VeriSign/WhoisInfo : handle case of .CC/.TV domains, from bugreport by Michael Kefeder
- Protocol/EPP/Extensions/EURid/Notifications : handle EPP notifications without domain names, from bugreport from Gerben Versluis
- Protocol/ResultStatus : error 2004 is PARAMETER_VALUE_RANGE_ERROR and not PARAMETER_VAMUE_RANGE_ERROR !
0.96_02 2011-10-01 DEVELOPMENT RELEASE
See warning in 0.96_01: this version enables only EPP over TCP/TLS and IRIS DCHK over UDP,
other protocols (DAS,RRI,RRP) or transports (EPP over HTTPS) will not work in this version.
+ .CO.ZA : new TLD supported with EPP Domain & Contact extensions
+ .RU/.SU/.РФ : new registry aka TCI (provided by Dmitry Belyavsky)
+ .SO with CloudRegistry/LaunchPhase EPP extension (submitted by Wil Tan, https://github.com/cloudregistry/net-dri/commit/7e795f3c91b66639a2f881cb081b523c3374cfcf )
+ .FR various updates : switch to frnic-1.1 namespace (and select only that one at login), handle SecDNS & keepDS, use auto-discover for IRIS DCHK
+ .EU : switch to release 8.0 standard EPP, fix tryout server name, use port 700, allow domain_renew, parse more information in pendingTransaction block, overwriteDeleteDate during domain:delete is not allowed anymore, parse removedDeletionDate in renew reply
+ DRD/BH : contributed by Michael Braunoeder
+ Protocol/EPP/Extensions/GL : enable GracePeriod and CoCCA::IPVerification extensions (reported by Jørgen Thomsen)
+ Protocol/EPP/Extensions/CentralNic/Pricing : new EPP extension
+ Protocol/EPP/Extensions/VeriSign/ClientAttributes : new EPP extension
+ Protocol/EPP/Extensions/CoCCA/IPVerification : added CoCCA IP Verification EPP extension
+ bin/drish : as a wrapper around Net::DRI::Shell for easier calling
+ Added information in META.yml: optional_features, keywords, resources
+ Added information in Makefile.PL : build_requires with Test::More & Test::LongString
+ Test and verify during installation that the minimum perl version (5.8.0) is available
+ Moving author tests in xt/ subdirectory : 002pod 003critic 004kwalitee 005perl_minimum_version
= Removed all trace of CVS handling (tags), the source has switched to GIT
= Sources files are converted to UTF8 encoding almost everywhere, and otherwise encoding is explicitely written
= Util : added SS as a country code
= DRD/ICANN : remove restriction on digits & hyphens in .NAME per RSEP #2010010
= DRD/ICANN : allow 1 & 2 chars in .ASIA per RSEP #2011003
= DRD/ICANN : specific rules for .TEL per RSEP #2010012
= DRD/AFNIC : remove all uses of webservices (not available at registry since 2011-08-01)
= DRD/PL : allow .PL transfer_query and transfer_cancel (from https://github.com/jimmybergman/Net-DRI/commit/7709095d23598a8a00c97a77407c514aa15be0bc )
= DRD/SIDN : contact_transfer_* are not allowed
= DRD/CentralNic : TLS certificates are now mandatory
= Protocol/EPP/Core/Session : log lang announced by server
= Protocol/EPP/Core/Session : warn if version mismatch or more than version announced
= Protocol/EPP/Core/Session : handle case of server not sending a version at all (reported by Thomas Moroder)
= Protocol/EPP/Extensions/AERO : enabled SecDNS EPP extension per RSEP #2010013
= Protocol/EPP/Extensions/AFNIC/Status : add pendingTrade & pendingRecover status values
= Protocol/EPP/Extensions/PL/Contact : parsing contact:info indiviual & consentForPublishing + better tests (from bugreport by Denis Lepesqueur)
= Protocol/EPP/Extensions/PL/contact : allow to pass roid during contact:info (submitted by Denis Lepesqueur)
= Protocol/EPP/Extensions/SIDN/Domain : parse sidn trnData pw node
= Protocol/EPP/Extensions/SE : upgrade to latest iis version upon login, and use iis-1.2 as default
= Protocol/EPP/Extensions/SE/Extensions : parse clientDelete
= Protocol/EPP/Extensions/SE/Extensions : updates submitted by Jørgen Thomsen, parse dom:trnData
= Data/StatusList : enhance list_status()
= Data/Contact/NO : add anonymousPersonIdentifier as valid Contact identity type (submitted by Trond Haugen)
= Data/Contact/SIDN : correct list of Contact legal_form attribute values (submitted by Gerben Versluis)
= eg/epp_client_se.pl : upgrade to .SE v3 EPP server, add option F (client certificate) and w (certificate password), remove use of domain_create_only & domain_delete_only that does not exist anymore
= eg/epp_client_se.pl : new K option to pass key file (submitted by Jørgen Thomsen)
= eg/epp_client_se.pl : convert line endings to Unix
= Makefile.PL : force LWP::UserAgent version 6.02 at least (needed for local_address & ssl_opts)
= Transport/HTTP : use LWP::UserAgent version 6.02 at least, so it is possible to use LWP::UserAgent->local_address()
= Transport/Socket : do not enable SSL_use_cert, as this is handled directly by IO::Socket::SSL as needed
= Transport/Socket : move SSL options parsing in Transport
= Transport/HTTP : use LWP::UserAgent->ssl_opts() & Transport common parsing routine, so SSL options are handled the same way as in Transport/Socket (same options names) + no need to hack around %ENV anymore
- Per PBP, remove all "return sort" constructs
- Remove reblessing in subclasses, as it is correctly done in superclass
- .IT and .PL both need same treatment in tests, as both are EPP over HTTPS
- Shell : better display of return statuses when more than one
- epp_client_{no,se} : correct utf8 source encoding + remove extra whitespaces
- t/102util : defined %hash is deprecated, so change test
- t/* : better handling of Test::LongString test before use in order not to trigger warnings under use strict
- DRI : correct handling of external Logging modules, by stripping starting '+' (problem reported by Trond Haugen)
- DRD::domain_create() : explicitely test of definedness of exist attribute when pure_create!=1
- DRD/{BE,EURid} : remove all references to contact_check_multi that does not exist anymore
- Data/Contact/AT : correct length for Contact fax attribute (submitted by Michael Kefeder)
- Protocol/IRIS/DCHK/Domain : subStatus is a string without children
- Protocol/IRIS/DCHK/Domain : domain exists only if success + status is active or inactive
- Protocol/EPP/Message : handle EPP extensions with XML attributes in top extension node or without children (ex: COZA)
- Protocol/EPP/Extensions/AFNIC/Contact : allow contact creation without identification data for admin/tech contacts (bugreport by Denis Lepesqueur)
- Protocol/EPP/Extensions/PL/Domain : bugfix for update (from https://github.com/jimmybergman/Net-DRI/commit/56c85840a524ab27013b9cc2f47de6f4b0bf579a )
- Protocol/EPP/Extensions/SIDN/Message : field can be empty, handle it + protect in ResultStatus
- Protocol/EPP/Extensions/SE/Extensions : use node_resdata()
- Protocol/EPP/Extensions/VeriSign : do not load WhoisInfo for dotTV, like for dotCC (contributed by Marc Winoto)
0.96_01 2011-03-13 DEVELOPMENT RELEASE (not to be used in production without extensive testing if upgrading from some previous version)
WARNING: due to work in progress in Transport and Transport::Socket, only EPP protocol will work among Socket based protocols, so no DAS,IRIS,RRI and RRP.
This will be fixed for production release 0.97
+ DRD/ISPAPI + Protocol/EPP/Extensions/ISPAPI + Protocol/EPP/Extensions/ISPAPI/KeyValue + eg/ispapi_epp.pl : Net::DRI support for Hexonet's ISPAPI EPP server (contributed by Alexander Biehl & Jans Wagner from Hexonet)
+ Protocol/EPP/Extensions/VeriSign/WhoWas : "VeriSign Who Was EPP Extension", loaded by default
+ Protocol/EPP/Extensions/VeriSign/PremiumDomain : "VeriSign Premium Domain EPP extension", not loaded by default
+ Protocol/EPP/Extensions/VeriSign/Suggestion : "VeriSign Domain Name Suggestion EPP extension", not loaded by default
+ Protocol/EPP/Extensions/ME : placeholder for now
+ Protocol/EPP/Extensions/ASIA/Domain : domainRoid extension that was previously in ASIA/IPR + domain operations previously in ASIA/CED
+ Protocol/EPP/Extensions/Afilias/MaintainerUrl : previously in MOBI/Domain and in part of ASIA/CED
+ Protocol/EPP/Extensions/Afilias/Trademark : used in INFO,MOBI,IN sunrises+OT&E
+ Protocol/EPP/Extensions/Afilias/Message : better parsing of error messages in the oxrs namespace
+ Protocol/EPP/Extensions/EURid/IDN : loaded by default
+ Protocol/EPP/Extensions/Keygroup : handling of groups of keys for DNSSEC, loaded by default in .EU & .BE
= Shell : export run() method so that calling is simpler from CLI
= Util : update of %CCA2 hash (contributed by Jimmy Bergman)
= Util : ISO updates of 2010-12-15, addition of BQ,CW,SX and deletion of AN
= DRI::new() : prepend Net::DRI::Logging:: to all logging module names not starting with a +
= DRI::add_registry() & DRI::add_current_registry() : prepend Net::DRI::DRD:: to all registry module names not starting with a +
= DRI::add_current_registry() : simplify
= DRI::end() : returns 1, to make it easy to test if everything before was ok or not, if we are inside an eval {} and $dri->end() is the last operation in the block
= DRD : make sure not to modify the content of optional ref hash with extra parameters, by creating a copy first
= DRD::add_registry : the client id is now passed through the client_id key instead of the clid keys (later one still accepted as fallback)
= DRD::raw_command() : new command to pass pure strings in the selected transport (for EPP, other protocols may need more work to pass objects instead of pure strings)
= DRD::domain_renew(): removal of old API, only a ref hash is expected after the domain name, with all data on dates if needed
= DRD::domain_check() : takes into account registry limit in case of multiple domains at once, as defined in each DRD module (currently value known for AFNIC, INFO, VNDS, please contribute if you know other values)
= DRD::_verify_name_rules() + DRD::check_name() : allow full unicode domain names
= DRD::{domain,host,contact}_is_mine() : slight change of output API, return undef if not enough information + let fatal errors propagate
= DRD::verify_* + DRD/* : we always expect a $ndr (so that it synchronizes inside and outside API, and make less uneasy tests) + factorize in DRD common case of policy 'no transfer in less than 15 days'
= DRD::domain_delete() : correctly implement case of pure_delete=0 and delete or rename subordinate hosts, rename is done if delete failed and a key "subordinate_rename" exists in extra hash whose value is used as base for new name
= DRD + DRD/{AFNIC,BE,EURid,LU} : factorization directly in DRD of operations done by at least 2 DRDs (like trade), in order to compartimentalize things better in the future (see TODO)
= DRD::nsgroup_*() : new methods to use instead of RemoteObject
= DRD/ICANN : updates to latest registry agreements versions, and only check for create operations
= DRD/ICANN::is_reserved_name() : better error messages
= DRD/AFNIC : add IRIS DAS endpoint
= DRD/OpenSRS : domain_is_mine using is_mine action (patch by Jeroen Koekkoek, applied with changes)
= DRD/OpenSRS : update in tlds() (provided by Jimmy Bergman)
= DRD/{ORG,INFO,MOBI,ASIA,AERO,AG,BZ,HN,ME,SC,VC} : contact_i18n=2 because registry allows INT only (bugreport by Michael McCallister)
= DRD/NU : allow 1 year domain names
= DRD/CentralNic : add gr.com in the list of tlds
= DRD/INFO : use Protocol::EPP::Extensions::Afilias instead of bare EPP, to enable all Afilias extensions
= DRD/EURid : switch to DAS version 2.0 + allow full unicode domain name
= DRD/GL : .GL does not impose any time limits on transfers, the sub verify_duration_transfer has been deleted so the default procedure (no check) is used (contributed by Jørgen Thomsen)
= DRD/CIRA : modify agreement_get to implement a work-around for non-conformant registry extension handling
= DRD + DRD/* : remove {domain,host,contact}_multi methods & references to them + changes in related *.t files
= Data/Contact : in array context, always return a 2 element array for streets, even if only one ref array was given (for localized version), in which case, the second array element is explicitely undef
= Data/StatusList : new virtual method is_grace()
= Registry::add_profile() : simplification of test cases handling, automatically triggered if Test/More.pm is loaded, no need to have test= in profile name
= Registry::try_restore_from_cache() : simplification by removing unnecessary hash copies, with abundant comments
= Protocol::find_action_in_class() : new method to easily cross reference action calls (example: SecDNS in EURid/Domain)
= Protocol::reaction() : call also parsing methods for object=message action=result, so that we do not need to make subclasses of Message just for that + various related changes in Protocol/EPP/Extensions/{SIDN,EURid,DNSBE}/Message
= Protocol/OpenSRS/XCP/Domain : new is_mine action (patch by Jeroen Koekkoek, applied with changes)
= Protocol/OpenSRS/XCP/Domain : new update action (patch by Jimmy Bergman, applied with changes) + related changes in Protocol/OpenSRS/XCP and DRD/OpenSRS
= Protocol/OpenSRS/XCP/Domain : new send_authcode action + handling encoding_type attribute in sw_register + tld_data attribute (patch by Jimmy Bergman)
= Protocol/OpenSRS/XCP/Connection : bugfix in UTF8 handling (contributed by Jimmy Bergman)
= Protocol/{RRP,EPP}/Connection::transport_default() : TLSv1 used as default ssl_version, not touching ssl_cipher_list anymore here, as a more strict default is now in Net::DRI::Transport::Socket (suggested by Jørgen Thomsen)
= Protocol/RRP : for modules listed in the "extensions" key during add_profile() call, all modules names are prepended with "Net::DRI::Protocol::RRP::Extensions::", except if they start with a +
= Protocol/EPP : for modules listed in the "extensions" key during add_profile() call, all modules names are prepended with "Net::DRI::Protocol::EPP::Extensions::", except if they start with a +
= Protocol/EPP/Util : change test on domain name, just do the XML syntax one, not the hostname one (to allow full unicode domain names like in .EU)
= Protocol/EPP/Util::parse_node_value() : new method called by parse_node_result() to simplify value text content if possible, hence some changes in results of ResultStatus->get_extended_results()
= Protocol/EPP/Message::result_is() : new method to test symbolic names + make use of it from various extension classes
= Protocol/EPP/Core/Contact : slight change in parsing of street elements, when using Contact->street() the calling context (scalar or array) triggers distinct behaviors, see change in t/601vnds_epp
= Protocol/EPP/Core/Domain : in result of info command, the list of subordinate hosts is now in information key name "subordinate_hosts" where it was called key "host" before
= Protocol/EPP/Core/Status : implements is_grace() based on RFC3915 values
= Protocol/EPP/core/Status::can_delete() : also take into account is_linked() and is_pending()
= Protocol/EPP/Core/Status::can_renew() can_update() can_transfer() : also take into account is_pending()
= Protocol/EPP/Extensions/SecDNS : support of RFC 5910 (secDNS-1.1) alongside current support of RFC 4310 (secDNS-1.0) with automated transparent switch based on extensions announced by server
= Protocol/EPP/Extensions/GracePeriod : remove workaround for VeriSign RFC3915 breakage, since it has been fixed by registry
= Protocol/EPP/Extensions/VeriSign : the NameStore extension is not loaded by default, local GracePeriod support does not break RFC3915 anymore
= Protocol/EPP/Extensions/ASIA/IPR is now Protocol/EPP/Extensions/Afilias/IPR (rewritten from scratch) since it is used by both .ASIA and .ME with unknown differences (as seen in liberty-rtk-addon-0.5.1.tar.gz)
= Protocol/EPP/Extensions/ASIA : the maintainer url is now in "maintainer_url" key instead of just "url"
= Protocol/EPP/Extensions/MOBI/Domain : use the new Protocol/EPP/Extensions/Afilias/MaintainerUrl extension
= Protocol/EPP/Extensions/NAME : loads VeriSign::IDNLanguage extension by default
= Protocol/EPP/Extensions/{DNSBE,CentralNic,Afilias,ASIA,VeriSign,AFNIC} : loads SecDNS extension by default
= Protocol/EPP/Extensions/EURid : loads EURid::IDN & SecDNS extensions by default
= Protocol/EPP/Extensions/EURid/Domain : call SecDNS create action for transfer_request and trade_request
= Protocol/EPP/Extensions/NO/Domain : allowing empty authinfo in case of transfers due to the complex and non-standard transfer procedure designed by NORID (contributed by Jørgen Thomsen)
= Protocol/EPP/Extensions/NO/Domain : the delete domain command has been supplied with the deleteDate, the supplied date will be used for the deletefromdns and deletefromregistry parameters, when they have not been supplied (contributed by Jørgen Thomsen)
= Protocol/EPP/Extensions/NO/Domain : the delete domain command parameters deletefromdns and deletefromregistry may now be supplied as DateTime objects, but textual representation may still be used (contributed by Jørgen Thomsen)
= Protocol/EPP/Extensions/NO/Host : the contact of host objects may now be a contact set, a contact object or just a contact handle making contact parameters more consistent across the extension (contributed by Jørgen Thomsen)
= Protocol/EPP/Extensions/NO/Host : the host_info() method now returns an arry for the host contact(s), so clients may need to be adapted
= Protocol/EPP/Extensions/NO/Result : add information parsed also to message hence to result status (contributed by Jørgen Thomsen, with changes) + parse extension also during login reply
= Protocol/EPP/Extensions/SE/Message : removed, only feature needed in it was retrofitted in Protocol/EPP/Extensions/SE/Extensions
= Protocol/EPP/Extensions/VeriSign/NameStore : better handling of errors
= Protocol/EPP/Extensions/CentralNic : loads VeriSign/Sync extension by default
= Protocol/DAS : allow version 2.0
= Protocol/DAS/Domain : parse "IDNA Domain" field
= Protocol/IRIS/DCHK/Domain : various changes to correctly handle .FR IRIS server
= Protocol/IRIS/LWZ : supports message deflation when sending (either forced or conditionnaly based on payload size, through options in DRD module)
= Protocol/Whois/Domain/EU : parse "IDNA Domain" field
= Protocol/ResultStatus : accessors (is_success() get_extended_results() get_data() get_data_collection() as_string()) are now "global" taking into account all linked objects + local (= not walking through all linked object) versions available through local_* methods
= Protocol/ResultStatus : get rid of GENERIC_SUCCESS/GENERIC_ERROR (local EPP "extensions") and use instead pure EPP COMMAND_SUCCESSFUL/COMMAND_FAILED + define all symbolic names from EPP RFC + rewrite is_pending/is_closing
= Protocol/ResultStatus : print_full removed, just call print with a true value to have all data, otherwise only summary
= Protocol/ResultStatus : remove new_generic_success+new_generic_error & enhance new_success
= Protocol/ResultStatus::is() : can be called as a class method, useful from EPP/Message
= Transport/Socket : change of default ssl_cipher_list, now stronger by default
= Logging/Files::output() : test the fh existence before using it
= Logging/Files::generate_output() : change format of filename, add the type value
= BaseClass : test to prevent attempts of logging, when it is not possible (contributed by Jørgen Thomsen)
= Exception : better error message for non implemented methods, method_not_implemented() replacing err_method_not_implemented()
= Registry::add_profile : catch Transport $rc if there, in order to return registry data given as result of login
= various spelling mistakes corrected in documentation/comments, from Debian package patch by Gregor Herrmann
= t/* : various simplifications, and consolidations, relying more on DRD->transport_protocol_default instead of hardcoding specific extensions classes in tests
= t/* : change of profile names to remove test= not needed anymore after changes in Registry::add_profile()
= t/629asia_epp.t : added 2 IPR tests
= t/604vnds_epp_secdns.t : added 15 tests related to secDNS-1.1
= t/633norid_epp.t + eg/epp_client_no.pl : adjusted to the host change
= following Perl Best Practices, convert UNIVERSAL::can(X,Y) into eval { X->can(Y); }
= following Perl Best Practices, convert UNIVERSAL::isa(X,Y) into eval { X->isa(Y); } ; capture that into Net::DRI::Util::is_class()
= following Perl Best Practices, after eval {} do not test $@ to see if there was an error
- Shell : correct passing of id during add_registry, the parameter is now client_id but previous versions of clID/clid are accepted
- eg/* + documentation : create_status() does not exist anymore, the correct call is local_object('status') (bugreport by Michael McCallister)
- DRD::domain_create() : bugfix for hosts creations when not using pure_create=1 (bugreport by Michael McCallister)
- DRD::domain_transfer() : better test on duration (bugreport by Michael McCallister)
- DRD::{domain,host,contact}_exist() : make sure to forward $rd to *_check() only if defined otherwise since dealing with list of objects, we may get an undef, which is later a fatal error in *_check()
- DRD/ICANN::is_reserved_name() : do not create spurious warnings when $op is not defined, which happens when verify_name_domain called from outside (from bugreport by Michael McCallister)
- DRD/ICANN::is_reserved_name() : correct handling of exceptions in one/two-characters domain names cases
- DRD/CIRA : missing periods() method (bugreport by Scott Alexander)
- DRD/Nominet::profile_types() : also show epp_nominet & epp_standard since they are known by transport_protocol_default()
- DRD/IT : docfix, remove the sentence about being only a stub with no extensions implemented, since it is not true (from question by Andreas Wittkemper)
- Data/Contact/NO : wrong field name displayed in case of errors (contributed by Jørgen Thomsen)
- Data/Contact/AFNIC : use Unicode code points for characters in regex
- Protocol/EPP/Message : <qDate> and <msg> are optional in <msgQ>, make sure not to feed undefined data to DateTime (bugreport by Michael McCallister)
- Protocol/EPP/Extensions/CIRA/Domain : correct formatting of transfer requests (bugreport by Scott Alexander)
- Protocol/EPP/Extensions/CIRA/Contact : create/update for whoisdisplay attribute
- Protocol/EPP/Extensions/IT/Notifications : correct API use of retrieve_ext everywhere since it needs $po as first param (from bugreport by David Lipkowski)
- Protocol/EPP/Connection : correct parsing of cases like lang='en-US' instead of just lang='en' in find_code (bugreport by Ogi Sigit)
0.96 2010-03-25
+ DRD/SIDN & associated modules : .NL EPP full support (work sponsored by SIDN)
+ DRD/CIRA & associated modules : .CA EPP full support (work sponsored by CIRA)
+ .IT EPP extensions contributed by Alessandro Zummo, with some changes
+ Logging/Syslog : contributed by Jørgen Thomsen
+ .GL EPP support contributed by Jørgen Thomsen
+ Protocol/EPP/Util : some utility functions previously in Protocol/EPP/Message Protocol/EPP Protocol/EPP/Core/{Contact,Domain}, but needed in other places (various EPP extensions that has been modified to use this new module)
+ XML::LibXML version 1.61 is needed for getChildrenByTagName('*') (reported by Cipriano Groenendal)
= Data/Contact/AFNIC : relax test on country, as TLD is opening to French abroad
= Protocol/EPP/Extensions/AFNIC/Domain : during create make sure to test contacts validity
= .NO updates by UNINETT Norid ( http://www.norid.no ), consisting of the following
= .NO : Adaptions to XML-schema for host: All 'ownerID/ownerid/Owner ID' replaced by 'sponsoringClientID/sponsoringclientid/Sponsor ID'
= .NO : Added facets support, facets are available for all EPP-commands/operations, including poll/ack.
= .NO : Updated the test client eg/epp_client_no.pl to support setting of facets for all operations. The client has been used for testing and verification of the implementation.
= .NO : Added some tests to t/633norid_epp.t to verify some operations without and with facets. Added module test for domain_withdraw.
= .NO : Improved parsing of various service messages.
= .SE various updates (contributed by Jørgen Thomsen, with some changes)
= Protocol/ResultStatus::get_extended_results() : change of output API, now gets back an array of ref hashes (previously: array of scalars)
= Protocol/EPP/Message : new add_to_extra_info() internal method
= Protocol/EPP/Message : changing the API of data parsed out of value/extValue nodes + better parse of extValue nodes in EPP
= Protocol/RRI/Message,Protocol/EPP/Extensions/VeriSign/NameStore,Protocol/EPP/Extensions/{PL,NO}/Message : update to new API for registry extra_info, and use of add_to_extra_info()
= Protocol/EPP/Extensions/Nominet : various update per instructions from http://www.nominet.org.uk/registrars/systems/nominetepp/changestoepp/
= Protocol/Whois/Domain/EU : detection of registry rate limiting (after report from Denise Clampitt)
= Transport/HTTP : better error message if remote_url not correctly defined (suggested by Andreas Wittkemper)
= Protocol/EPP/Extensions/SE : added SecDNS as default extension (from Andreas Wittkemper)
= Protocol/IRIS/LWZ : removing fallback to RFC1950 as Denic server should be fixed by now (to use RFC1951 as mandatory by the LWZ RFC)
= Protocol/ResultStatus::as_string() : changed the output format
= DRD/{SE,SIDN} : various updates regarding durations (contributed by Jørgen Thomsen)
= DRD/BE : add proper methods for transfer_quarantine,trade,reactivate,undelete (reported by Andreas Wittkemper)
= DRD/ICANN : add .CAT for allowed 1 and 2 characters domain names
= Protocol/EPP/Extensions/SWITCH : add the SecDNS extension
= DRD + DRD/* : check_name() verify_name_{host,domain}() enforce_{domain,host}_name_constraints() _verify_name_rules() : return error string instead of error code for better error tracking
= DRD/NO : remove verify_name_host() the superclass version is the same
= DRD/{AT,IENUMAT} : verify_name_domain() converted to new framework
= Logging framework : internal changes for simplicity and less context passing, only external change: key "driver" used in header format is now named "transport" (prompted by bugreport from Jørgen Thomse regarding Transport->ping() missing logging context)
= Transport : login/logout exchanges use the same "namespace" for the TRID than the relevant profil, instead of the transport name
= Transport : added some more transport logging in all subclasses (besides Socket & HTTP that had it already)
= Transport/Socket : remove use of eof() in _get as introduced in previous version as it seems to only create problems
= Protocol/EPP/Extensions/PL/Connection : now renamed to Protocol/EPP/Extensions/HTTP as it is also used by .IT
- DRD::domain_create() : bugfix for domain_check when pure_create!=1 (reported by Gerben Versluis)
- Protocol/EPP/Extensions/Nominet/Host : update() bugfix (contributed by Marc Winoto)
- Protocol/EPP/Extensions/{AFNIC,ARNES,DNSBE,EURid,PL}/Domain,Protocol/EPP/Extensions/{FCCN,Nominet}/Contact,Protocol/EPP/Extensions/Nominet/Account,Protocol/EPP/Extensions,CAT/DefensiveRegistration : correct test of contact class
- Protocol/EPP/Connection find_code : correct (and better) regex when some extension is present (bugfix by Michael Braunoeder from NIC.AT, applied with changes)
- Contact, Contact/AT : correct validation tests
- Shell : correct domain_update for registrant change (from bugreport by Jonathan Eshel)
0.95 2009-08-15
If you are upgrading your Net::DRI installation, from version 0.92 or older
we advise you to first upgrade to 0.92_01, test everything, adapt your program to use
the new API (see below), and then upgrade to 0.95 which introduce some incompatibilities
with prior versions. If you test first with version 0.92_01 you will be able to make
sure your programs work the same way from old to new API, without changing versions
and you will be warned if you are using deprecated features.
+ DRD/IT & associated modules : only core EPP features, no extensions, no tests
+ DRD/IRegistry & associated modules : registry driver and extensions for .CO.CZ, contributed by Vitezslav Novy, not tested
+ Protocol/Whois/Domain/PT : see eg/whois.pl
+ Protocol/DAS/AU : see eg/das.pl
+ Protocol/DAS/AdamsNames : see eg/das.pl
+ Protocol/DAS/SIDN : see eg/das.pl
+ Protocol/AdamsNames/WS : only domain_info (see t/705adamsnames_ws_live.t)
+ Contact/OpenSRS : contributed by Richard Siddall
+ eg/das.pl : new file, testing various DAS server, superset of previous eurid_das.pl which is now removed
+ Protocol/EPP/Extensions/EURid/{Domain,Notifications,Registrar} : updates for release 5.6 (registry notifications, domain overwrite date delete, registrar info, domain transfer/trade reminders)
+ DRI::installed_registries() : new method to list all installed registries drivers
+ DRI::add_current_registry() : new method, same API as add_registry() which is called and a target is done after to switch to the newly added registry
+ Contact::clone() new method
+ Util : new functions xml_traverse() xml_list_children() xml_child_content() deepcopy() decode_latin1() normalize_name()
+ Protocol : new utility functions parse_iso8601() build_parser_strptime()
+ Protocol/ResultStatus::last() new method to go directly to the lowest object in case of chains
= Started to put "use warnings" in some modules
= Shell new commands (see module documentation) : show types, domain_update, host_update, contact_update
= Shell : various additions in autocompletion, after a domain_info command, nameservers and contacts are also stored for future completions requests
= Shell : tries to fallback on default domain commands for all extensions
= Logging/Files : change in filenames used, the PID is always added, and only one dot
= DRD/* : removed transport_protocol_compatible() + updates to transport_protocol_default() + add profile_types()
= DRD,DRD/* : added enforce_{domain,host}_name_constraints() replacing err_invalid_domain_name()+verify_name_domain() and similar for hostnames (so that we have better error messages);
all DRD methods needed are updated to take into account this new framework
= DRD : domain_create() domain_delete() do not return an array anymore, always a single object with a chain of siblings as needed through the next()/last() methods;
the object returned is always the top one not the last one, so ->last() may be used to retrieve the last one and test its success
= DRD : removed the %PROTOCOL_DEFAULT_* hashes, defaults are now properly handled in each registry driver class, each protocol subclass and protocol subclass connection class, with the transport_default() method
= DRD::verify_name_host() : by default does not check TLD against registry TLDs anymore
= DRD/BookMyName : DAS service
= DRD/AFNIC::tlds() : added asso.fr com.fr tm.fr gouv.fr
= DRD/AFNIC : EPP in full production + bugfix in domain_create + added domain_trade_stop()
= DRD/EURid : added profile types das-registrar and whois-registrar for the specific das and whois services restricted to current .EU registrars
= DRD/EURid : new methods registrar_info() domain_remind()
= DRD/ICANN : one and two characters .BIZ .PRO domain names are now allowed
= DRD/Nominet : added domain_unrenew() account_list_domains()
= Contact::validate() : better error messages, more specific
= Contact,Contact/{SWITCH,NO,AT}::validate() : not testing roid anymore as useless, testing srid instead
= Contact/AFNIC : not using pragma encoding anymore, as it is advised in Perl documentation to avoid it in modules, due to its global scope
= Contact/AFNIC : new attribues vat and id_status + new method validate_registrant(), replacing validate_is_french() + new method init() to automatically set default srid
= Contact/AFNIC::validate() : calls SUPER::validate + added test on srid() vat(), better validation of contact data and standardization of API after addition of EPP at registry (per discussion with Jim Driscoll)
= ContactSet::get_all() new method
= Registry : add_profile() now completely replaces add_current_test_profile(), new_current_profile() and new_profile(); see files in eg/ and t/ for examples
= Registry : better logging in profile creation and process()/process_back() methods
= Transport : change of defaults, retry=2 (this means 2 tries totally) and timeout=60 now, instead of 1 and 0 (no timeout) + better default try_again()
= Transport subclasses : the new() input API is normalized with only a context and a ref hash in all cases
= Transport,Transport/HTTP,Transport/Socket,Protocol connection classes read_data() : better information in error messages
= Transport/Socket : you can use ssl_passwd_cb if you need to decrypt the SSL key before using it
= Transport/Socket : the ssl_verify_callback called gets the transport object as first parameter, before IO::Socket::SSL parameters
= Transport/Socket : more logging + better handling of connection closing/sensing EOF
= Protocol : add many default factories + new methods parse_iso8601() build_parser_strptime() to simplify subclasses work + new method has_module()
= Protocol connection classes : added transport_default() methods where needed
= Protocol classes : new() API expects a ref hash
= Protocol/ResultStatus : for get_data methods, the previous "command" attribute is now "raw_command", and "reply" is "raw_reply", "action" is "object_action", "type" is "object_type", and added "object_name" "registry" "profile" "protocol" "transport" "trid"
= Protocol/ResultStatus : in get_data() get_data_collection() keys are normalized so that domain and host names can be used in lower or upper case (same as for DRD::get_info), see examples at bottom of t/601vnds_epp.t
= Protocol/ResultStatus : new last() method
= Protocol/OpenSRS/XCP/Domain : added operations check create delete renew transfer_request transfer_query transfer_cancel (contributed by Richard Siddall)
= Protocol/BookMyName/WS : implemented domain_check
= Protocol/Gandi/WS : implemented domain_check
= Protocol/OVH/WS : implemented domain_check + using now Transport::HTTP::SOAPLite instead of SOAPWSDL (API change of SOAP::WSDL and/or of OVH ?) and related changes
= Protocol/Whois/Connection::read_data() : we now suppose the data is in iso-latin-1 encoding instead of ascii
= Protocol/Whois/Domain/* : use of $po->build_parser_strptime() instead of directly using DateTime::Format::Strptime
= Protocol/Whois/Domain/SE : parse registrar name
= Protocol/Whois/Domain/EU : adapt to new format
= Protocol/DAS : better handling of registries with more than one TLDs (adhoc, no universal specifications of DAS protocol), and those wanting a domain without a TLD in query (what a great idea ... not !), like BE/EU
= Protocol/DAS/Message : handle slightly different format for .EU
= Protocol/AFNIC/Email/Domain : PM activated now only with legal_id defined, line 3a is always name() not org(), srids must be provided instead of roids hence without -FRNIC
= Protocol/{EPP,RRI}/Connection : better handling & more debug information in error messages while attempting to read the first 4 bytes
= Protocol/{EPP,Whois} : use of $drd->set_factories() if possible (factorization of contact factories)
= Protocol/EPP : better handling of modules to load through 2 new methods, core_modules() and default_extensions() + add a setup() method for subclasses
= Protocol/EPP/Message : various simplifications/rewrites and changes for performances and readability
= Protocol/EPP/Extensions/* : huge simplification of instantiation with setup() + default_extensions() instead of new()
= Protocol/EPP/Extensions/SecDNS::format_validation() : better error message
= Protocol/EPP/Extensions/SE,Contact/SE,DRD/SE : various updates by Ulrich Wisser from NIC.SE
= Protocol/EPP/Extensions/AFNIC/{Domain,Contact} : various updates to latest production specifications (trade cancel, PM activated now only with legal_id defined)
= Protocol/EPP/Extensions/AFNIC/Notifications : added parsing of all messages related to contact identification
= Protocol/EPP/Extensions/EURid/Domain::transferq_request() : use key duration instead of key period
= Protocol/EPP/Extensions/Nominet/Domain : unrenew operation
= Protocol/EPP/Extensions/Nominet/Account : list_domains operation
= Protocol,Protocol/*/* : cleanup in the use of factories()/create_local_object()
= Protocol/EPP/Core/*,some EPP/Extensions/*,Protocol/Whois/Domain/* : no more hardcoding of Data modules, using Protocol->create_local_object() instead
= Protocol/EPP/Core/*,some EPP/Extensions/*,Protocol/Whois/Domain/* : use of Protocol->parse_iso8601 instead of calling directly DateTime::Format::ISO8601
= Protocol/EPP/Core/*,some EPP/Extensions/* : use of textContent() instead of getFirstChild()->getData()
= Protocol/EPP/Core/*,some EPP/Extensions/* : use of Util::xml_list_children() Util::xml_child_content()
= Protocol/EPP/Core/RegistryMessage::parse_poll() : better handling of non recursion barrier
= Protocol/EPP/Extensions/Nominet/Domain : unrenew operation
- Protocol/EPP/Extensions/Nominet/Account : correctly handle empty account:contact nodes (bugreport by Jim Driscoll)
- Protocol/Gandi/WS/Domain : correct parsing of contacts
- DRD::domain_create() : various bugfixes in case of pure_delete=0
- Transport/HTTP/XMLRPCLite : various bugfixes
- Protocol/Whois/Domain : removed as not used
- Shell : crash for some tab completion conditions (add_current_profile,contact_create)
- Contact::loc2int() : make sure not to create an undef instead of an empty ref array in street structure, when empty street
- Contact/AFNIC::validate() : correct test for name() legal_form_other() birth()
- Protocol/EPP/Extensions/Nominet : we handle the namespaces versions mix and mess locally
- Registry::get_info_all() : make a copy of the hash before starting to delete keys
0.92_01 2009-01-31 DEVELOPMENT RELEASE (not to be used in production without extensive testing if upgrading from some previous version)
UPGRADE instructions from previous versions:
- use add_profile/add_current_profile instead of new_profile/new_current_profile (warning: you may hit different APIs, depending on how you used new_profile/new_current_profile !)
- remove use of log_fh attribute during transport setup, and use instead the new Logging framework (see Net::DRI and Net::DRI::Logging modules documentation)
Detailed changes:
+ Registry add_profile()/add_current_profile() : new methods that will replace in the future new_profile()/new_current_profile() with a better API; this will also make it possible to have DRD protocol agnostic again the future (when old API completely removed) ; all scripts in eg/ and test files in t/ have been updated
+ Logging : a new framework has been put in place, for better extensibility ; fix of encoding bug ; various logging has been added, at debug level, to facilitate debugging (such as methods called, cache handling, transport loops/timeouts/retries) ; see document of modules Net::DRI, Net::DRI::Logging and Net::DRI::Logging::{Stderr,Files,Null}
+ Protocol/ResultStatus : $rc objects returned from most operations do also contain now all data retrieved with the operation (including the raw messages exchange), which can be accessed by get_data()/get_data_collection() method on the the $rc object, see module documentation
+ Shell autocompletion support for commands and parameters (domain names, contacts, hostnames, local filenames), see Net::DRI::Shell documentation
+ Shell new commands: add, record, set, show config, !cmd, help and add_current_profile (replacing new_current_profile) + backticks for batch operations ; see Net::DRI::Shell documentation
+ .IM support (EPP) : interoperability not tested
+ .SI support (EPP) : interoperability not tested
+ Data/Contact (and all subclasses) : a new method attributes() allows to know what attributes exist for this specific class of contact data
+ Data/Contact as_string() : better handling of subclasses attributes, now also automatically included in output, as well as class name (to know the contact type)
+ DRD/EURid : add registrar DAS (type=das-registrar) & registrar Whois (type=whois-registrar) profile types
+ DRD/CoCCA : .NA and .NG added
+ DRD/DENIC : add 9.4.e164.arpa in list of tlds, as they can be queried with IRIS DCHK
+ DRD/ICANN : .MOBI and .COOP can have one character domain name
+ DRD/WS : domain transfer operations are now possible
+ DRI del_registry() : to properly close all profiles in a given registry name (or the current one if no parameter given)