1
2008-09-29   Gisle Aas <gisle@ActiveState.com>
2
3
     Release 5.816
4
5
     Gisle Aas (2):
6
           Add missing binmode() [RT#39668]
7
           Doc tweaks
8
9
10
11
2008-09-24   Gisle Aas <gisle@ActiveState.com>
12
13
     Release 5.815
14
15
     Gisle Aas (23):
16
           We don't need to build the docs to run the tests.
17
           Style tweaks.
18
           The jigsaw service isn't up to much good these days.
19
           HTTP::Cookies produces warnings for undefined cookie param names [RT#38480]
20
           Typo fix; HTTP::Message will never include x-bzip2 in Accept-Encoding [RT#38617]
21
           Added HTTP::Config module
22
           Add methods to configure processing handlers.
23
           100 Continue response not complete.
24
           Use 3-arg open when response content to files.
25
           Make the show_progress attribute official (by documenting it).
26
           Start using handlers for driving the inner logic of LWP::UserAgent.
27
           Expose the content_is_html and content_is_xhtml methods from HTTP::Headers.
28
           Make credentials method able to get/set values.
29
           An auth handler per realm.
30
           Match proxy setting for request.
31
           Set up separate handler for adding proxy authentication.
32
           Add request_preprepare to be able to initialize proxy early enough.
33
           Smarter get_my_handler() that can also create handlers.
34
           Refactor; introduce run_handlers method
35
           Pass in handler hash to the handler callback.
36
           Don't let version=1 override behaviour if specified with a plan Set-Cookie header.
37
           Remove handler when we don't have a username/password for the realm.
38
           Make tests use Test.pm
39
40
     Bron Gondwana (2):
41
           Double-check that username or password has changed after a failed login.
42
           Update Digest Authen to subclass Basic.
43
44
     Ondrej Hanak (1):
45
           Avoid running out of filehandles with DYNAMIC_FILE_UPLOAD.
46
47
     Todd Lipcon (1):
48
           Fixed parsing of header values starting with ':' [RT#39367]
49
50
     amire80 (1):
51
           Documentation typo fixes [RT#38203]
52
53
54
55
2008-07-25   Gisle Aas <gisle@ActiveState.com>
56
57
     Release 5.814
58
59
     Gisle Aas (13):
60
           Typo fix.
61
           Add HTTP::Message::decodable()
62
           Use decoded_content in the synposis
63
           Avoid adding an empty first part in $mess->add_part()
64
           Get rid of all the manual dependency tests.
65
           Simplify the Makefile.PL (no interactivity)
66
           Provide DELETE method in HTTP::Request::Common [RT#37481]
67
           Checkbox picks up nearby text in description of alternates [RT#36771]
68
           HTML::Form::possible_values() should not returned disabled values [RT#35248]
69
           File::Listing documentation claimed only 'unix' format was supported [RT#22021]
70
           File::Listing only support English locales [RT#28879]
71
           Make common-req.t use Test.pm
72
           Typo; CAN_TALK_TO_OUTSELF
73
     
74
     Bill Mann (1):
75
           Fix up File::Listings fallback to dosftp [RT#23540]
76
     
77
     Hans-H. Froehlich (1):
78
           File::Listing parse failure on BSD Linux based systems [RT#26724]
79
80
81
82
2008-06-17   Gisle Aas <gisle@ActiveState.com>
83
84
     Release 5.813
85
86
     Ville Skytta (3):
87
           RobotUA constructor ignores delay, use_sleep [RT#35456]
88
           Spelling fixes [RT#35457]
89
           Add HTTP::Response->filename [RT#35458]
90
     
91
     Mark Stosberg (2):
92
           Better diagnostics when the HTML::TokeParser constructor fails [RT#35607]
93
           Multiple forms with same-named <select> parse wrongly [RT#35607]
94
     
95
     Gisle Aas (1):
96
           Provide a progress method that does something that might be useful.
97
     
98
     Spiros Denaxas (1):
99
           Documentation typo fix [RT#36132]
100
101
102
103
2008-04-16   Gisle Aas <gisle@ActiveState.com>
104
105
     Release 5.812
106
107
     Gisle Aas (6):
108
           Typo fix.
109
           Simplified Net::HTTP::Methods constructor call.
110
           Croak if Net::HTTP constructor called with no argument.
111
           Avoid calling $self->peerport to figure out what the port is.
112
           5.811 breaks SSL requests [RT#35090]
113
           Make test suite compatible with perl-5.6.1.
114
     
115
     Toru Yamaguchi (1):
116
           Wrong treatment of qop value in Digest Authentication [RT#35055]
117
     
118
119
120
2008-04-14   Gisle Aas <gisle@ActiveState.com>
121
122
     Release 5.811
123
124
     Gisle Aas (6):
125
           Avoid "used only once" warning for $Config::Config.
126
           Make HTTP::Request::Common::PUT set Content-Length header [RT#34772]
127
           Added the add_content_utf8 method to HTTP::Message.
128
           Typo fix.
129
           Retry syscalls when they fail with EINTR or EAGAIN [RT#34093,32356]
130
           Allow HTTP::Content content that can be downgraded to bytes.
131
     
132
     Gavin Peters (1):
133
           HTML::Form does not recognise multiple select items with same name [RT#18993]
134
     
135
     Mark Stosberg (1):
136
           Document how HTTP::Status codes correspond to the classification functions [RT#20819]
137
     
138
     Robert Stone (1):
139
           Allow 100, 204, 304 responses to have content [RT#17907]
140
     
141
     sasao (1):
142
           HTTP::Request::Common::POST suppressed filename="0" in Content-Disposition [RT#18887]
143
144
145
146
2008-04-08   Gisle Aas <gisle@ActiveState.com>
147
148
     Release 5.810
149
150
     Gisle Aas (10):
151
           Small documentation issues [RT#31346]
152
           Explain $netloc argument to $ua->credentials [RT#31969]
153
           Make lwp-request honour option -b while dumping links [RT#31347]
154
           Ignore params for date convenience methods [RT#30579]
155
           Get rid of all the old CVS $Keyword:...$ templates.  Set $VERSION to 5.810.
156
           Update Copyright year.
157
           Drop some sample URLs that were failing.
158
           Complement the HTTP::Status codes [RT#29619]
159
           Don't allow HTTP::Message content to be set to Unicode strings.
160
           Refactor test for Encode.pm
161
     
162
     Ville Skytta (3):
163
           Spelling fixes [RT#33272]
164
           Trigger HTML::HeadParser for XHTML [RT#33271]
165
           Escape status line in error_as_HTML, convert to lowercase [RT#33270]
166
     
167
     Alexey Tourbin (2):
168
           Typo fix [RT#33843]
169
           Protocol/file.pm: postpone load of URI::Escape and HTML::Entities [RT#33842]
170
     
171
     Daniel Hedlund (1):
172
           HTML::Form Module and <button> element clicks
173
     
174
     Adam Kennedy (1):
175
           HTTP::Cookies handle malformed empty Set-Cookie badly [RT#29401]
176
     
177
     Jacob J (1):
178
           [HTTP::Request::Common] Does not handle filenames containing " [RT#30538]
179
     
180
     Rolf Grossmann (1):
181
           Allow malformed chars in $mess->decoded_content [RT#17368]
182
     
183
     FWILES (1):
184
           Croak if LWP::UserAgent is constructed with hash ref as argument [RT#28597]
185
     
186
     Adam Sjogren (1):
187
           Disabled, checked radiobutton being submitted [RT#33512]
188
     
189
     DAVIDRW (1):
190
           warn if TextInput's maxlength exceeded [RT#32239]
191
192
193
2007-08-05   Gisle Aas <gisle@ActiveState.com>
194
195
     Release 5.808
196
     
197
     Get rid of t/live/validator test.  Too much JavaScript madness
198
     for it to be a sane LWP test.
199
200
201
202
2007-07-31   Gisle Aas <gisle@ActiveState.com>
203
204
     Release 5.807
205
     
206
     Apply patch correction from CPAN RT #26152
207
     
208
     More laxed t/live/validator test.
209
210
211
212
2007-07-19   Gisle Aas <gisle@ActiveState.com>
213
214
     Release 5.806
215
216
     Added progress callback to LWP::UserAgent.
217
     
218
     HTTP::Daemon didn't avoid content in responses to HEAD requests
219
220
     Add support for HTTP Expect header to HTTP::Daemon (CPAN RT #27933)
221
222
     Fix t/base/message.t so tests are skipped if Encode is not
223
     installed.  (CPAN RT #25286)
224
225
     Add HTML::Tagset as a prerequisite to Makefile.PL
226
227
     Do not clobber $_ in LWP::Protocol::nntp (CPAN RT #25132)
228
229
     Fix lwp-download so it can download files with an "_" in the filename
230
         (CPAN RT#26207)
231
232
     Quiet complaints from HTML::HeadParser when dealing with undecoded
233
     UTF-8 data.  (CPAN RT#20274)
234
235
     When both IO::Socket::SSL and Net::SSL are loaded, use the latter
236
         (CPAN RT #26152)
237
238
     Allows SSL to work much more reliably:
239
         (CPAN RT #23372)
240
241
     Allow text/vnd.wap.wml and application/vnd.oasis.opendocument.text
242
         in content-type field in lwp-request (CPAN RT #26151)
243
244
     Add default media type for XML in LWP::MediaTypes (CPAN RT #21093)
245
     
246
     Added chunked test by Andreas J. Koenig
247
248
249
250
2005-12-08   Gisle Aas <gisle@ActiveState.com>
251
252
    Release 5.805
253
254
    HTTP::Date: The str2time function returned wrong values for
255
    years in the early 20th century, because timelocal() actually
256
    expects the year to be provided on a different scale than what
257
    localtime() returns.
258
259
    HTTP::Headers can now be constructed with field names that repeat.
260
    The $h->header function now also accept repeating field
261
    names and can also remove headers if passed undef as value.
262
263
    HTML::Form: The parse method now takes hash style optional
264
    arguments and the old verbose behaviour is now off by default.
265
    
266
    HTML::Form: Accept <select multiple=""> for compatibilty with
267
    other browsers.  Patch by Josh Rai <josh@rai.name>.
268
269
    HTML::Form: Sane handling of 'disabled' for ListInput.
270
    Based on patch by Joao Lopes <developer@st3tailor.com.br>.
271
272
    HTTP::Negotiate: Fixed matching of partial language tags.
273
    Patch contributed by Dan Kubb.
274
275
    HTTP::Response: The as_string method now returns a status line
276
    that doesn't add the "official" code name in the message
277
    field.  This improves the ability to round-trip response objects
278
    via HTTP::Response->parse($res->as_string) and makes the first
279
    line of the string returned agree with $res->status_line.
280
281
    Net::HTTP: The host attribute can now be set undef in
282
    order to suppress this header for HTTP/1.0 requests.
283
284
    Net::HTTP: The default Host: header does not include the
285
    port number if it is the default (80 for plain HTTP). Some
286
    servers get confused by this.
287
288
    Net::HTTP: Ignore bogus Content-Length headers. Don't get
289
    confused by leading or trailing whitespace.
290
291
    LWP::Protocol::http: More efficient sending of small PUT/POST
292
    requests by trying harder to pass off the whole request in a
293
    single call to syswrite.
294
295
    lwp-request now give better error messages if you used the 
296
    -o option without having the HTML-Tree distribution installed.
297
    Also document this dependency.
298
299
300
301
2005-12-06   Gisle Aas <gisle@ActiveState.com>
302
303
    Release 5.804
304
305
    HTTP::Message->parse did not work when the first line of the body
306
    was something that looked like a header.
307
308
    HTTP::Header::Auth needs HTTP::Headers to be loaded before
309
    it replace its functions.
310
311
    LWP::Protocol::nntp improvements by Ville Skyttä 
312
     - Support the nntp: scheme.
313
     - Support hostname in news: and nntp: URIs.
314
     - Close connection and preserve headers also in non-OK responses.
315
     - HEAD support for URIs identifying a newsgroup.
316
     - Comment spelling fixes.
317
318
    Fix quotes in Net::HTTP example.
319
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=283916
320
321
    Detect EOF when expecting a chunk header.  Should address the
322
    warnings shown in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286775
323
324
    WWW::RobotRules: Improved parsing of not strictly valid robots.txt files
325
    contributed by <Matthew.van.Eerde@hbinc.com>.
326
327
    Makefile.PL: Set name to LWP so that the .packlist ends up in the
328
    expected place.
329
330
331
332
2004-12-11   Gisle Aas <gisle@ActiveState.com>
333
334
    Release 5.803
335
336
    HTTP::Message: $mess->decoded_content sometimes had the side
337
    effect of destroying $mess->content.
338
339
    HTTP::Message: $mess->decoded_content failed for
340
    "Content-Encoding: deflate" if the content was not in the
341
    zlib-format as specified for the HTTP protocol.  Microsoft got
342
    this wrong, so we have to support raw deflate bytes as well.
343
344
    HTTP::Response->parse don't require the protocol to be
345
    specified any more.  This allows HTTP::Response->parse($resp->as_string)
346
    to round-trip.  Patch by Harald Joerg <haj@oook.m.uunet.de>.
347
348
    HTTP::Response: $resp->base might now return undef.  Previously
349
    it would croak if there was no associated request.  Based on
350
    patch by Harald Joerg <haj@oook.m.uunet.de>.
351
352
    HTML::Form now support <label> for check- and radio boxes.
353
    Patch contributed by Dan Kubb <dan.kubb@onautopilot.com>.
354
355
    Make HTTP::Daemon subclassable, patch by Kees Cook <kees@osdl.org>.
356
357
    lwp-download allow directory to save into to be specified.
358
    Patch by Radoslaw Zielinski <radek@karnet.pl>.
359
360
    lwp-download will validate filename derived from server
361
    controlled data and will fail if something looks not
362
    quite right.
363
364
  
365
366
2004-11-30   Gisle Aas <gisle@ActiveState.com>
367
368
    Release 5.802
369
370
    The HTTP::Message object now have a decoded_content() method.
371
    This will return the content after any Content-Encodings and
372
    charsets has been decoded.
373
374
    Compress::Zlib is now a prerequisite module.
375
376
    HTTP::Request::Common: The POST() function created an invalid
377
    Content-Type header for file uploads with no parameters.
378
379
    Net::HTTP: Allow Transfer-Encoding with trailing whitespace.
380
    <http://rt.cpan.org/Ticket/Display.html?id=3929>
381
382
    Net::HTTP: Don't allow empty content to be treated as a valid
383
    HTTP/0.9 response.
384
    <http://rt.cpan.org/Ticket/Display.html?id=4581>
385
    <http://rt.cpan.org/Ticket/Display.html?id=6883>
386
387
    File::Protocol::file: Fixup directory links in HTML generated
388
    for directories.  Patch by Moshe Kaminsky <kaminsky@math.huji.ac.il>.
389
390
    Makefile.PL will try to discover misconfigured systems that
391
    can't talk to themselves and disable tests that depend on this.
392
393
    Makefile.PL will now default to 'n' when asking about whether
394
    to install the "GET", "HEAD", "POST" programs.  There has been
395
    too many name clashes with these common names.
396
397
398
399
2004-11-12   Gisle Aas <gisle@ActiveState.com>
400
401
    Release 5.801
402
403
    HTTP::Message improved content/content_ref interaction.  Fixes
404
    DYNAMIC_FILE_UPLOAD and other uses of code content in requests.
405
406
    HTML::Form:
407
      - Handle clicking on nameless image.
408
      - Don't let $form->click invoke a disabled submit button.
409
410
    HTTP::Cookies could not handle a "old-style" cookie named
411
    "Expires".
412
413
    HTTP::Headers work-around for thread safety issue in perl <= 5.8.4.
414
415
    HTTP::Request::Common improved documentation.
416
417
    LWP::Protocol: Check that we can write to the file specified in
418
    $ua->request(..., $file) or $ua->mirror.
419
420
    LWP::UserAgent clone() dies if proxy was not set.  Patch by
421
    Andy Lester <andy@petdance.com>
422
423
    HTTP::Methods now avoid "use of uninitialized"-warning when server
424
    replies with incomplete status line.
425
426
    lwp-download will now actually tell you why it aborts if it runs
427
    out of disk space of fails to write some other way.
428
429
    WWW::RobotRules: only display warning when running under 'perl -w'
430
    and show which robots.txt file they correspond to.  Based on
431
    patch by Bill Moseley.
432
433
    WWW::RobotRules: Don't empty cache when agent() is called if the
434
    agent name does not change.  Patch by Ville Skyttä 
435
436
437
438
2004-06-16   Gisle Aas <gisle@ActiveState.com>
439
440
    Release 5.800
441
442
    HTML::Form will allow individual menu entries to be disabled.
443
    This was needed to support <input type=radio disabled value=foo>
444
    and <select><option disabled>foo.
445
446
    HTML::Form now avoids name clashes between the <select> and
447
    <option> attributes.
448
449
    HTML::Form now implicitly close <select> elements when it sees
450
    another input or </form>.  This is closer to the MSIE behaviour.
451
452
    HTML::Form will now "support" keygen-inputs.  It will not
453
    calculate a key by itself.  The user will have to set its
454
    value for it to be returned by the form.
455
456
    HTTP::Headers now special case field names that start with a
457
    ':'.   This is used as an escape mechanism when you need the
458
    header names to not go through canonicalization.  It means
459
    that you can force LWP to use a specific casing and even
460
    underscores in header names.  The ugly $TRANSLATE_UNDERSCORE
461
    global has been undocumented as a result of this.
462
463
    HTTP::Message will now allow an external 'content_ref'
464
    to be set.  This can for instance be used to let HTTP::Request
465
    objects pick up content data from some scalar variable without
466
    having to copy it.
467
468
    HTTP::Request::Common.  The individual parts will no longer
469
    have a Content-Length header for file uploads.  This improves
470
    compatibility with "normal" browsers.
471
472
    LWP::Simple doc patch for getprint.
473
    Contributed by Yitzchak Scott-Thoennes <sthoenna@efn.org>.
474
475
    LWP::UserAgent: New methods default_header() and
476
    default_headers().  These can be used to set up headers that
477
    are automatically added to requests as they are sent.  This
478
    can for instance be used to initialize various Accept headers.
479
480
    Various typo fixes by Ville Skyttä 
481
482
    Fixed test failure under perl-5.005.
483
    
484
    LWP::Protocol::loopback:  This is a new protocol handler that
485
    works like the HTTP TRACE method, it will return the request
486
    provided to it.  This is sometimes useful for testing.  It can
487
    for instance be invoked by setting the 'http_proxy' environment
488
    variable to 'loopback:'.
489
490
491
492
2004-04-13   Gisle Aas <gisle@ActiveState.com>
493
494
    Release 5.79
495
496
    HTML::Form now exposes the 'readonly' and 'disabled'
497
    attribute for inputs.  This allows your program to simulate
498
    JavaScript code that modifies these attributes.
499
500
    RFC 2616 says that http: referer should not be sent with
501
    https: requests.  The lwp-rget program, the $req->referer method
502
    and the redirect handling code now try to enforce this.
503
    Patch by Ville Skyttä 
504
505
    WWW::RobotRules now look for the string found in
506
    robots.txt as a case insensitive substring from its own
507
    User-Agent string, not the other way around.
508
    Patch by Ville Skyttä 
509
510
    HTTP::Headers: New method 'header_field_names' that
511
    return a list of names as suggested by its name.
512
513
    HTTP::Headers: $h->remove_content_headers will now
514
    also remove the headers "Allow", "Expires" and
515
    "Last-Modified".  These are also part of the set
516
    that RFC 2616 denote as Entity Header Fields.
517
518
    HTTP::Headers: $h->content_type is now more careful
519
    in removing embedded space in the returned value.
520
    It also now returns all the parameters as the second
521
    return value as documented.
522
523
    HTTP::Headers: $h->header() now croaks.  It used to
524
    silently do nothing.
525
526
    HTTP::Headers: Documentation tweaks.  Documented a
527
    few bugs discovered during testing.
528
529
    Typo fixes to the documentation all over the place
530
    by Ville Skyttä 
531
532
    Updated tests.
533
534
535
536
2004-04-07   Gisle Aas <gisle@ActiveState.com>
537
538
    Release 5.78
539
540
    Removed stray Data::Dump reference from test suite.
541
    
542
    Added the parse(), clear(), parts() and add_part() methods to
543
    HTTP::Message.  The HTTP::MessageParts module of 5.77 is no more.
544
545
    Added clear() and remove_content_headers() methods to
546
    HTTP::Headers.
547
548
    The as_string() method of HTTP::Message now appends a newline
549
    if called without arguments and the non-empty content does
550
    not end with a newline.  This ensures better compatibility with
551
    5.76 and older versions of libwww-perl.
552
553
    Use case insensitive lookup of hostname in $ua->credentials.
554
    Patch by Andrew Pimlott <andrew@pimlott.net>.
555
556
557
558
2004-04-06   Gisle Aas <gisle@ActiveState.com>
559
560
    Release 5.77
561
562
    LWP::Simple did not handle redirects properly when the "Location"
563
    header used uncommon letter casing.
564
    Patch by Ward Vandewege <ward@pong.be>.
565
566
    LWP::UserAgent passed the wrong request to redirect_ok().
567
    Patch by Ville Skyttä 
568
    https://rt.cpan.org/Ticket/Display.html?id=5828
569
570
    LWP did not handle URLs like http://www.example.com?foo=bar
571
    properly.
572
573
    LWP::RobotUA construct now accept key/value arguments in the
574
    same way as LWP::UserAgent.
575
    Based on patch by Andy Lester <andy@petdance.com>.
576
577
    LWP::RobotUA did not parse robots.txt files that contained
578
    "Disallow:" using uncommon letter casing.
579
    Patch by Liam Quinn <liam@htmlhelp.com>.
580
581
    WWW::RobotRules now allow leading space when parsing robots.txt
582
    file as suggested by Craig Macdonald <craig@freeasphost.co.uk>.
583
    We now also allow space before the colon.
584
585
    WWW::RobotRules did not handle User-Agent names that use complex
586
    version numbers.  Patch by Liam Quinn <liam@htmlhelp.com>.
587
588
    Case insensitive handling of hosts and domain names
589
    in HTTP::Cookies.
590
    https://rt.cpan.org/Ticket/Display.html?id=4530
591
592
    The bundled media.types file now match video/quicktime
593
    with the .mov extension, as suggested by Michel Koppelaar
594
    <Michel.Koppelaar@kb.nl>.
595
596
    Experimental support for composite messages, currently
597
    implemented by the HTTP::MessageParts module.  Based on
598
    ideas from Joshua Hoblitt <jhoblitt@ifa.hawaii.edu>.
599
600
    Fixed libscan in Makefile.PL.
601
    Patch by Andy Lester <andy@petdance.com>.
602
603
    The HTTP::Message constructor now accept a plain array reference
604
    as its $headers argument.
605
606
    The return value of the HTTP::Message as_string() method now
607
    better conforms to the HTTP wire layout.  No additional "\n"
608
    are appended to the as_string value for HTTP::Request and
609
    HTTP::Response.  The HTTP::Request as_string now replace missing
610
    method or URI with "-" instead of "[NO METHOD]" and "[NO URI]".
611
    We don't want values with spaces in them, because it makes it
612
    harder to parse.
613
614
615
616
2003-11-21   Gisle Aas <gisle@ActiveState.com>
617
618
    Release 5.76
619
    
620
    Revised handling of redirects.
621
       - clear our content and content headers if we
622
         rewrite request as GET based on patch by
623
         Steven Butler <stevenb@kjross.com.au>.
624
       - pass $response to redirect_ok()
625
626
    Support cpan:-URLs.  Try 'lwp-download cpan:src/latest.tar.gz' :)
627
628
    Fix test failure in 't/html/form.t' for perl5.005.
629
630
631
632
2003-10-26   Gisle Aas <gisle@ActiveState.com>
633
634
    Release 5.75
635
    
636
    Reworked LWP::UserAgent, HTTP::Request and HTTP::Response
637
    documentation.  Also other documentation tweaks.
638
639
640
641
2003-10-23   Gisle Aas <gisle@ActiveState.com>
642
643
    Release 5.74
644
645
    Improved lwp-download program:
646
      - set mtime if Last-Modified header reported by server
647
      - better prompts
648
      - avoid warnings when aborted at the wrong time
649
650
    Collected all contributions in the AUTHORS file and
651
    also added an AUTHORS section to the LWP manpage.
652
653
    Style tweaks to all modules.  Move POD after __END__
654
    and uncuddled elses.
655
656
657
658
2003-10-19   Gisle Aas <gisle@ActiveState.com>
659
660
    Release 5.73
661
    
662
    Takanori Ugai <ugai@jp.fujitsu.com> found that 'max_redirect'
663
    introduced in 5.72 was broken and provided a patch for that.
664
665
    Not all ftp servers return 550 responses when trying to
666
    to RETR a directory.  Microsofts IIS is one of those.
667
    Patch provided by Thomas Lotterer <thl@dev.de.cw.com>.
668
    
669
    Some documentation tweaks.
670
671
672
673
2003-10-15   Gisle Aas <gisle@ActiveState.com>
674
675
    Release 5.72
676
677
    Requests for some non-HTTP URLs would fail if the cookie_jar
678
    was enabled.  The HTTP::Cookies::add_cookie_header now ignore
679
    non-HTTP requests.
680
681
    The new local/http test failed on Windows because of a missing
682
    binmode().
683
684
    Suppress Client-SSL-Warning warning header when Crypt::SSLeay
685
    is able to verify the peer certificate.   Patch contributed by
686
    Joshua Chamas <joshua@chamas.com>.
687
688
    HTTP::Request::Common::POST did not add a 'Content-Length' header
689
    when the content ended up empty.  Fixed by a patch contributed
690
    by Brian J. Murrell.
691
692
    Internally generated responses now contain a text/plain part
693
    that repeats the status line.  They also have a "Client-Warning"
694
    header that can be used to differentiate these responses from
695
    real server responses.
696
697
    LWP::UserAgent now deals with 303 and 307 redirects.  The behaviour
698
    of 302 redirects has also changed to be like 303; i.e. change the
699
    method to be "GET".  This is what most browsers do.  Based on
700
    a patch contributed by Tom Hughes <thh@cyberscience.com>.
701
702
    LWP::UserAgent now implements a 'max_redirect' attribute with a
703
    default value of 7.  This should also fix the problem where
704
    redirects to the same URL to get a cookie set did not work.
705
    Based on a patch by Sean M. Burke <sburke@cpan.org>.
706
707
    NTML authentication should continue to fail if the Authen::NTLM
708
    module can't be loaded.  LWP used to think the scheme was
709
    available as soon as the module stash showed up.  Not it looks
710
    for the authenticate method to be defined.  Patch by Jan Dubois.
711
712
    lwp-download will not try to rename *.tbz and *.tar.bz2 to
713
    match the reported content type.  Patch contributed by
714
    Robin Barker <Robin.Barker@npl.co.uk>.
715
716
    HTTP::Cookies::Netscape documentation fix by Sean M. Burke.
717
718
    HTTP::Cookies::Microsoft documentation fix by Johnny Lee.
719
720
    The code that tries to avoid installing 'HEAD' on top of
721
    'head' on systems like Mac OS was further improved to look
722
    in $Config{installscript} instead of $Config{sitebin}.
723
    Patch provided by Ken Williams <ken@mathforum.org>.
724
725
726
727
2003-10-14   Gisle Aas <gisle@ActiveState.com>
728
729
    Release 5.71
730
731
    Support open-ended Range: header for ftp requests.
732
    Patch by Matthew Eldridge <eldridge@Graphics.Stanford.EDU>.
733
734
    lwp-request now prints unsuccessful responses in the same way
735
    as successsful ones.  The status will still indicate failures.
736
    Based on a patch by Steve Hay <steve.hay@uk.radan.com>.
737
738
    HTML::Form's dump now also print alternative value names.
739
740
    HTML::Form will now pick up the phrase after a <input type=radio>
741
    or <input type=checkbox> and use that as the name of the checked
742
    value.
743
744
    HTML::Form's find_input now returns all inputs that match in
745
    array context.  Based on patch by Mark Stosberg <markstos@cpan.org>
746
    in <http://rt.cpan.org/Ticket/Display.html?id=3320>.
747
748
    HTTP::Daemon's send_file() method did not work when given
749
    a file name.  Patch by Dave W. Smith <dws@postcognitive.com>.
750
751
    HTTP::Daemon is less strict about field names in the request
752
    headers is received.  The Norton Internet Security firewall
753
    apparently likes to send requests with a header called
754
    '~~~~~~~~~~~~~~~'.   Further details in
755
    <http://rt.cpan.org/Ticket/Display.html?id=2531>.
756
757
    LWP::Protocol::http assumed $1 would be meaningful without
758
    testing the outcome of the match.  This sometimes produced
759
    an extra garbage Authentication header.
760
    Based on the patch by <bai@dreamarts.co.jp> in
761
    <http://rt.cpan.org/Ticket/Display.html?id=1994>.
762
763
    LWP::Protocol::mailto will try harder to locate the sendmail
764
    program as suggested in <http://rt.cpan.org/Ticket/Display.html?id=2363>.
765
    Also let $ENV{SENDMAIL} override the search.
766
767
    Patch to enable OS/2 build by Ilya Zakharevich.
768
769
770
771
2003-10-13   Gisle Aas <gisle@ActiveState.com>
772
773
    Release 5.70
774
775
    File::Listing::apache by Slaven Rezic <slaven@rezic.de>
776
777
    HEAD requests now work properly for ftp: URLs.
778
    Patch by Ville Skyttä 
779
780
    LWP::UserAgent: The protocols_allowed() and protocols_forbidden()
781
    methods are now case insensitive.  Patch by Ville Skyttä
782
    <ville.skytta@iki.fi>.
783
784
    Avoid warning from HTTP::Date on certain invalid dates.
785
    Patch by David Dick <david_dick@iprimus.com.au>.
786
787
    HTML::Form::param() is an alternative interface for inspecting
788
    and modifying the form values.  It resembles the interface
789
    of CGI.
790
791
    HTML::Form documentation updated.  Lots of typo fixes and improves
792
    by Martin Thurn <mthurn@northropgrumman.com>.
793
794
    HTML::Form will treat any unknown input types as text input.
795
    This appears to be what most browsers do.
796
797
    HTML::Form::parse() can now take a HTTP::Response object
798
    as argument.
799
800
    The "checkbox" and "option" inputs of HTML::Form can now be
801
    turned on with the new check() method.
802
803
    The inputs of HTML::Form can now track alternative value
804
    names and allow values to be set by these names as well.
805
    Currently this is only supported for "option" inputs.
806
807
    HTML::Form's dump() method now print the name of the form if
808
    present.
809
810
811
812
2003-01-24   Gisle Aas <gisle@ActiveState.com>
813
814
    Release 5.69
815
816
    Include lwptut.pod contributed by Sean M. Burke C<sburke@cpan.org>.
817
818
    The lwp-request aliases GET, HEAD, POST where installed when
819
    no program should be.  Fixed by David Miller <dave@justdave.net>.
820
821
    lwp-rget --help don't print double usage any more.
822
823
    HTTP::Header::Util is now more reluctant to put quotes around
824
    token values.
825
826
    Net::HTTP: Avoid warning on unexpected EOF when reading chunk
827
    header.
828
829
830
831
2003-01-02   Gisle Aas <gisle@ActiveState.com>
832
833
    Release 5.68
834
835
    Fix test failure for t/html/form.t when running under
836
    perl-5.8.0.
837
838
839
840
2003-01-01   Gisle Aas <gisle@ActiveState.com>
841
842
    Release 5.67
843
844
    HTTP::Cookies::Microsoft contributed by Johnny Lee <typo_pl@hotmail.com>.
845
    This module makes it possible for LWP to share MSIE's cookies.
846
847
    HTML::Form supports file upload better now.  There are some
848
    new methods on that kind of input; file(), filename(), content()
849
    and headers().
850
851
    Removed unfinished test that depended on Data::Dump.
852
853
    Net::HTTP avoids exceptions in read_response_headers() with
854
    laxed option.  It now always assumes HTTP/0.9 on unexpected
855
    responses.
856
857
    HTML::Form documentation reworked.
858
859
860
861
2002-12-20   Gisle Aas <gisle@ActiveState.com>
862
863
    Release 5.66
864
865
    Various patches from Sean M. Burke.  Most of them to
866
    match up LWP with the "Perl & LWP" book.
867
868
    LWP::DebugFile module contributed by Sean.
869
870
    LWP::Authen::Ntml contributed by James Tillman.
871
872
    HTTP::Daemon patch for Alpha by <shildreth@emsphone.com>
873
874
    The format_chunk() and write_chunk() methods of Net::HTTP
875
    did not work.  Bug spotted by Yale Huang <yale@sdf-eu.org>.
876
877
    The Client-Peer response header is back.
878
879
880
881
2002-05-31   Gisle Aas <gisle@ActiveState.com>
882
883
    Release 5.65
884
885
    Make HTTP::Date compatible with perl 5.8.
886
887
    Try to avoid to default to overwriting /usr/bin/head 
888
    on MacOS X when the perl install prefix is /usr/bin.
889
890
    HTTP::Cookies fix for parsing of Netscape cookies file
891
    on MS Windows. Patch by by Sean M. Burke <sburke@cpan.org>.
892
893
    HTTP::Negotiate doc patch from Edward Avis <epa98@doc.ic.ac.uk>.
894
895
896
897
2002-02-09   Gisle Aas <gisle@ActiveState.com>
898
899
    Release 5.64
900
901
    Simplified the Makefile.PL:
902
       - the scripts are not longer *.PL files
903
904
       - don't try to make symlinks for GET, HEAD, POST
905
         as that has not worked for a long time
906
907
       - the GET, HEAD, POST aliases for lwp-request should
908
         now work on Windows.
909
    
910
    HTTP::Cookies:
911
       - added 'clear_temporary_cookies' method;
912
         patch by Mike Schilli <schilli1@pacbell.net>.
913
914
       - trailing space in old cookie parameters not ignored;
915
         patch by Ivan Panchenko
916
917
       - protect against $SIG{__DIE__} handlers;
918
	 patch by Adam Newby <adam@NewsNow.co.uk>.
919
920
    LWP::Authen::Digest:
921
       - abort digest auth session if we fail repeatedly with
922
         the same username/password.
923
924
    MacOS portability patches to the test suite by
925
    Chris Nandor <pudge@pobox.com>.
926
927
928
929
2001-12-14   Gisle Aas <gisle@ActiveState.com>
930
931
    Release 5.63
932
933
    HTTP::Negotiate: Deal with parameter names in a case
934
    insensitive way.  Put a little weight on the order of features
935
    in the Accept headers.
936
937
    LWP::UserAgent: make sure that the 'request' attribute is
938
    always set on the returned response.
939
940
    LWP::Protocol::http will now allow certain bad headers
941
    in the responses it reads.  The bad headers end up in the
942
    header 'Client-Junk'.
943
944
    Net::HTTP new options to the 'read_response_headers'
945
    method.  The option 'laxed' will make it ignore bad header
946
    lines.  The option 'junk_out' can be used to pass in an
947
    array reference.  Junk header lines are pushed onto it.
948
949
    Net::HTTP::Methods: fixed the internal zlib_ok() to also
950
    return the correct value the first time.
951
952
    LWP::Protocol::http: Ensure that we don't read until
953
    select has said it is ok since we have put the socket
954
    in non-blocking mode.  Previously this could happen if
955
    you set the 'timeout' attribute of the user agent to 0.
956
957
    LWP::Authen::Digest now use Digest::MD5 instead of MD5.
958
959
    Some adjustments to Makefile.PL to figure out if
960
    Compress::Zlib is available and adjust the test suite
961
    accordingly.
962
963
964
965
2001-11-21   Gisle Aas <gisle@ActiveState.com>
966
967
    Release 5.62
968
969
    The $VERSION of LWP::UserAgent wrapped around.  This confused the
970
    CPAN indexer.  Bumped the major number to 2 to fix this.
971
972
    Net::HTTP did not work well on perl5.003.  The PeerHost argument
973
    to IO::Socket::INET was not recognized, so we had to use PeerAddr
974
    instead.  The syswrite() method also required a length argument.
975
976
    Net::HTTP did not deal with transfer encoding tokens in a
977
    case-insensitive way.  Patch by Blair Zajac <blair@orcaware.com>.
978
979
    The jigsaw-chunk test failed on MacOS because "\n" is different.
980
    Patch by Chris Nandor <pudge@pobox.com>.
981
982
983
984
2001-11-16   Gisle Aas <gisle@ActiveState.com>
985
986
    Release 5.61
987
988
    LWP::Protocol::http did not invoke its _fixup_header method.
989
    The result was that the 'Host' header got completely wrong
990
    when talking through a proxy server.
991
992
    The live Google test is gone.  They blocked us.
993
994
    The guts of Net::HTTP has moved to Net::HTTP::Methods.
995
996
    Net::HTTP now has limits on the size of the header which are
997
    set by default.
998
999
    New module Net::HTTPS.
1000
1001
    Documentation tweaks.
1002
1003
    HTTP::Headers: The 'remove_header' method now return the values
1004
    of the fields removed as suggested by Blair Zajac <blair@orcaware.com>.
1005
    Also a typo fix by Blair.
1006
1007
    HTTP::Message: The delegation via &AUTOLOAD should be slightly
1008
    faster now.  It will install a real forwarding function the
1009
    first time it is called for each HTTP::Headers method.
1010
1011
    LWP::UserAgent: Don't forward 'Cookie' headers on redirect.
1012
    Patch by Steve A Fink <steve@fink.com>.
1013
1014
    LWP::Protocol::http has been reorganized to make it simpler
1015
    to subclass it. Other minor changes to it include:
1016
       - Client-Warning is gone
1017
       - Client-Request-Num renamed to Client-Response-Num
1018
       - A 'Transfer-Encoding' header is rewritten into a
1019
         'Client-Transfer-Encoding' header.
1020
1021
    LWP::Protocol::https is completely redone.
1022
1023
1024
1025
2001-10-26   Gisle Aas <gisle@ActiveState.com>
1026
1027
    Release 5.60
1028
1029
    Made HTTP/1.1 the default.  The old HTTP/1.0 module has been
1030
    renamed as LWP::Protocol::http10.  There is an environment
1031
    variable; PERL_LWP_USE_HTTP_10 that can be set to have LWP
1032
    still pick up the old drivers.
1033
1034
    Deal with "100 continue" responses even when not requested by
1035
    and Expect header in the request.  MS IIS seems to eager to send
1036
    this kind of response.
1037
1038
    For HTTP/1.1 over SSL there was a problem with the underlying
1039
    SSL libraries if the socket was configured to non-blocking mode.
1040
    Disable this for https.
1041
    Based on a patch from Michael Thompson <mickey@berkeley.innomedia.com>
1042
1043
    Support the Range header for ftp:// requests.
1044
    Patch by David Coppit <david@coppit.org>.
1045
1046
    Rearrange Bundle::LWP on request from Chris Nandor.
1047
1048
    HTTP::Cookies: Allow a domain like .foo.com match host "foo.com".
1049
    Patch by Alexandre Duret-Lutz <duret_g@lrde.epita.fr>
1050
1051
    For redirects make sure Host header is not copied to the new
1052
    request.
1053
1054
    The HTML::HeadParser is not loaded until actually needed.
1055
1056
    Net::HTTP should now work with perl5.005 by a simple tweak
1057
    to 'require IO::Socket::INET'.
1058
1059
    WWW::RobotRules::AnyDBM: Explicitly clear database on open.
1060
    Some DBM implementations doesn't support the O_TRUNC flag
1061
    properly.  Patch by Radu Greab <radu@netsoft.ro>.
1062
1063
1064
1065
2001-09-19   Gisle Aas <gisle@ActiveState.com>
1066
1067
    Release 5.53_97
1068
1069
    LWP::Protocol::http11: fix socket leak.  Because we managed
1070
    to set up a circular reference within the sockets objects they
1071
    stayed around forever.
1072
1073
    LWP::UserAgent: Split up simple_request into prepare_request
1074
    and send_request. Patch contributed by Keiichiro Nagano <knagano@sodan.org>
1075
1076
    LWP::Protocol::http: Pass all header data to LWP::Debug::conns.
1077
    Based on patch by Martijn.
1078
1079
    LWP::UserAgent: Sean fixed a Cut&Paste error.
1080
1081
    HTTP::Cookies: avoid pack("c",...) warning from bleadperl.
1082
1083
1084
1085
2001-08-27   Gisle Aas <gisle@ActiveState.com>
1086
1087
    Release 5.53_96
1088
1089
    HTTP/1.1 support also for https.
1090
    Contributed by Doug MacEachern <dougm@covalent.net>
1091
1092
    The HTTP/1.1 modules are now enabled by default.  Hope that will give
1093
    them more testing than they otherwise would have gotten.
1094
1095
    HTTP::Daemon's accept now has same behaviour as IO::Socket's
1096
    accept in list context.  Fixed by Blair Zajac <blair@gps.caltech.edu>.
1097
1098
    More argument sanity checking in HTTP::Request->uri and
1099
    LWP::UserAgent->simple_request.  Patch by Sean M. Burke.
1100
1101
    HTTP::Protocol::http.  Deal with short writes.
1102
    Patch by Norton Allen <allen@huarp.harvard.edu>
1103
1104
    HTTP::Protocol::http11:  Deal with newlines in header values.
1105
1106
    Net::HTTP: call sysread (instead of xread) when more data is required.
1107
1108
1109
1110
2001-08-06   Gisle Aas <gisle@ActiveState.com>
1111
1112
    Release 5.53_95
1113
1114
    Fix HTTP::Cookies where there is a mix of Set-Cookie and
1115
    Set-Cookie2 headers.  In that case we used to ignore all Set-Cookie
1116
    headers.  Now we only ignore those Set-Cookie headers that reference
1117
    the same cookie as a Set-Cookie2 header.
1118
1119
    HTTP::Request, HTTP::Response will by default now use "URI" class,
1120
    instead of "URI::URL", when constructing its URI objects.  This
1121
    has a potential for breaking existing code as URI::URL objects had
1122
    some extra methods that external code might depend upon.
1123
1124
    Patches by Sean M. Burke:
1125
       - Fix treatment of language tags in HTTP::Negotiate 
1126
       - Avoid trailing newline in $response->message
1127
       - HTTP::Response clarifications
1128
1129
    LWP::Simple deals with non-absolute redirects "correctly" now.
1130
1131
    Net::HTTP does not try to load Compress::Zlib until it is needed.
1132
1133
    Net::HTTP documentation has been updated.
1134
1135
1136
1137
2001-05-05   Gisle Aas <gisle@ActiveState.com>
1138
1139
    Release 5.53_94
1140
1141
    Sean M. Burke's update to LWP::UserAgent:
1142
       - updated redirect_ok behaviour
1143
       - new convenience methods: get/head/post/put
1144
       - protocols_allowed/protocols_forbidden
1145
       - LWP::Protocol::nogo (new module)
1146
1147
    Added digest auth test against Jigsaw
1148
1149
    Fixed a 'use of uninitialized'-warning in the handling of
1150
    digest authentication.
1151
1152
    Net::HTTP updates:
1153
      - new option: SendTE
1154
      - support transfer-encoding 'deflate' and 'gzip' (when Compress::Zlib
1155
        is available).
1156
      - new methods: format_chunk, format_chunk_eof
1157
      - use -1 (instead of "0E0" as signal that no data was available,
1158
        but this was not EOF).
1159
1160
1161
1162
2001-04-28   Gisle Aas <gisle@ActiveState.com>
1163
1164
    Release 5.53_93
1165
1166
    Makefile.PL now asks some questions
1167
1168
    Added live tests for the new HTTP/1.1 support
1169
1170
    LWP::MemberMixin: make it possible to set a value to the 'undef' value.
1171
1172
    Net::HTTP:
1173
        - transparent support for 'deflate' and 'gzip' transfer encodings
1174
          (need to have the Compress::Zlib module installed for this to work).
1175
1176
1177
1178
2001-04-25   Gisle Aas <gisle@ActiveState.com>
1179
1180
    Release 5.53_92
1181
1182
    LWP::Protocol::ftp now support keep-alives too.  The command
1183
    connection will stay open if keep-alives are enabled.
1184
1185
    LWP::Protocol::http11 various fixes:
1186
        - chunked request content did not work
1187
        - monitor connection while sending request content
1188
        - deal with Expect: 100-continue
1189
1190
    LWP::RobotUA: Protect host_port call.  Not all URIs have this method.
1191
1192
1193
1194
2001-04-20   Gisle Aas <gisle@ActiveState.com>
1195
1196
    Release 5.53_91
1197
1198
    Introduced LWP::ConnCache module.  Works similar to HTTP::Cookies,
1199
    it that it takes effect if associated with the $ua.
1200
1201
    The handling of $ua->max_size changed to make 0 mean 0
1202
    (not unlimited).  An value of undef means no limit.
1203
    The X-Content-Base header is gone.  I hope nobody relies on
1204
    it.  It might come back if people start to scream.  There
1205
    is a new Client-Aborted header instead.
1206
1207
    The Range header generated for $ua->max_size had a off-by-one
1208
    error.  A range of "0-1" means 2 bytes.
1209
1210
    The LWP::UserAgent constructor now takes configuration arguments.
1211
1212
    Keep-alive and the new HTTP/1.1 module can now be simply
1213
    enabled with something like:
1214
1215
          LWP::UserAgent->new(keep_alive => 1);
1216
1217
    New method $ua->conn_cache to set up and access the associated
1218
    connection manager.
1219
1220
    If the string passed to $ua->agent() ends with space then
1221
    the "libwww-perl/#.##" string is automatically appended.
1222
1223
    New method $ua->_agent
1224
1225
    Passing a plain hash to $ua->cookie_jar automatically loads
1226
    HTTP::Cookies and initialise an object using the hash content
1227
    as constructor arguments.
1228
1229
    LWP::Protocol::http11 now use the conn_cache of the $ua.
1230
1231
    LWP::Protocol::http11 now added a few new Client- headers.
1232
1233
    LWP::Protocol avoid keeping the connection alive if $ua->max_size
1234
    limit prevents the whole body content from being read.
1235
1236
    Net::HTTP updates:
1237
       - new methods: write_chunk(), write_chunk_eof()
1238
       - reset state properly when a new body is read.
1239
       - always set read buffer empty on eof
1240
       - doc update
1241
1242
    WWW::RobotRules patch by Liam Quinn <liam@htmlhelp.com>:
1243
       - Always qualify netloc with port.
1244
       - Reverse User-Agent substring matching.
1245
1246
1247
1248
2001-04-18   Gisle Aas <gisle@ActiveState.com>
1249
1250
    Release 5.53_90
1251
1252
    Note: This is a developer only release.  Not for production use.
1253
1254
    LWP::Protocol::http11 now does keep-alives by default.  Still need
1255
    to figure out what interface to provide at the $ua level.
1256
1257
    LWP::Protocol::http11 deals with CODE content in request.
1258
1259
    Net::HTTP updated:
1260
        - added format_request() method
1261
        - added _rbuf and _rbuf_length methods
1262
        - read_response_headers does not return protocol version
1263
	  any more.
1264
        - peer_http_version method did not work because of typo.
1265
        - documentation added
1266
1267
    New module Net::HTTP::NB.  This is a Net::HTTP subclass that
1268
    is better suited for multiplexing as it is able to do no-blocking
1269
    reads of headers and entity body chunks.
1270
1271
    HTTP::Request: Protect $request->uri against evil $SIG{__DIE__} handlers.
1272
1273
    Some reorganisation in how stuff is passed from $ua to protocol object.
1274
    The $ua is now passed in so protocol objects might store start in it.
1275
1276
    The $ua->max_size default is now 0.
1277
1278
    The $ua->clone method avoids sharing of proxy settings between
1279
    the old and the new.
1280
1281
    This file is renamed to 'Changes' (used to be 'ChangeLog').
1282
1283
1284
1285
2001-04-10   Gisle Aas <gisle@ActiveState.com>
1286
1287
    Release 5.53
1288
1289
    LWP::Simple::get() could sometimes return nothing on failure in
1290
    list context.  Now it always returns 'undef'.
1291
1292
    HTTP::Cookies does not request 2 dots on domain names any more.
1293
    New option to hide the Cookie2 header.  Cookie2 header now quote
1294
    the version number. Updated reference to RFC 2965.
1295
1296
    Support for embedded userinfo in http proxy URIs.  It means that
1297
    you know can set up your proxy with things like:
1298
        http_proxy="http://proxyuser:proxypass@proxyhost:port"
1299
    Patch by John Klar <j.klar@xpedite.com>.
1300
1301
    Experimental HTTP/1.1 support.  New module called Net::HTTP that
1302
    provide the lower level interface and a LWP::Protocol::http11
1303
    module that builds on it.  The HTTP/1.1 protocol module must be
1304
    loaded and registered explicitly, otherwise the old and trustworthy
1305
    HTTP/1.0 module will be used.
1306
1307
    LWP::Protocol::GHTTP will try to use the get_headers() methods
1308
    so that it can actually extract all the headers.
1309
1310
1311
1312
2001-03-29   Gisle Aas <gisle@ActiveState.com>
1313
1314
    Release 5.52
1315
1316
    HTTP::Header: new method $h->init_header() that will only
1317
    set the header if it is not already set.  Some shuffling
1318
    around in the code.
1319
1320
    LWP::UserAgent will not override 'User-Agent', 'From'
1321
    or 'Range' headers if they are explicitly set in the
1322
    request passed in.
1323
1324
    HTML::Form tries to optimize parsing be restricting the
1325
    tags that are reported by HTML::Parser.  Will need
1326
    HTML::Parser v3.19_93 or better for this to actually
1327
    have any effect.
1328
1329
    LWP::Protocol::ftp now deals with path parameters again.
1330
    It means that you can append ";type=a" to ftp-URI and
1331
    it will download the document in ASCII mode.
1332
1333
    If the server output multiple Location headers on a redirect,
1334
    ignore all but the first one.
1335
1336
    Extract cookies failed on request URIs with empty paths.
1337
    This was only triggered if you used URI objects directly in
1338
    scripts.
1339
1340
    This change was actually part of 5.51:  Fix qop="auth"
1341
    handling for Digest authentication.
1342
    Patch by Dave Dunkin <dave_dunkin@hotmail.com>.
1343
1344
1345
1346
2001-03-14   Gisle Aas <gisle@ActiveState.com>
1347
1348
    Release 5.51
1349
1350
    SECURITY FIX: If LWP::UserAgent::env_proxy is called in a CGI
1351
    environment, the case-insensitivity when looking for "http_proxy"
1352
    permits "HTTP_PROXY" to be found, but this can be trivially set by the
1353
    web client using the "Proxy:" header.  The fix applied is that
1354
    $ENV{HTTP_PROXY} is not longer honored for CGI scripts.
1355
    The CGI_HTTP_PROXY environment variable can be used instead.
1356
    Problem reported by Randal L. Schwartz.
1357
1358
    NOTE: It is recommended that everybody that use LWP::UserAgent
1359
          (including LWP::Simple) in CGI scripts upgrade to this release.
1360
1361
    Explicit setting of action on HTML::Form had no effect because
1362
    of a code typo.  Patch by BooK <book@netcourrier.com>.
1363
1364
    HTTP::Daemon: The CONNECT method need special treatment because
1365
    it does not provide a URI as argument (just a "hostname:port").
1366
    The non-upward compatibility warning is that you must now call
1367
    $request->url->host_port to get the host/port string for CONNECT,
1368
    rather than calling $request->url and using the entire string.
1369
    Based on patch from Randal L. Schwartz <merlyn@stonehenge.com>
1370
1371
    HTTP::Daemon: Create self URL based on $self->sockaddr.  This works
1372
    better when LocalAddr is used to specify the port number.  Based on
1373
    patch from Ben Low <ben@snrc.uow.edu.au>. 
1374
1375
    Avoid potential '<FILE> chunk 1' messages at the end of the response
1376
    'message'.
1377
1378
1379
1380
2001-01-12   Gisle Aas <gisle@ActiveState.com>
1381
1382
    Release 5.50
1383
1384
    Fix for test cases that failed because of URI-1.10 now encode
1385
    space as '+' instead of '%20. Patch by Christian Gilmore
1386
    <cgilmore@tivoli.com>.
1387
1388
    Makefile.PL: Require URI-1.10.
1389
1390
    HTTP::Daemon now accepts any non-space character as method name
1391
    on the request line.  It used to fail on methods like "M-POST"
1392
    because it only allowed \w-chars.
1393
1394
    HTTP::Date now allow fractional seconds in ISO date formats.
1395
    Based on patch from Mark D. Anderson <mda@discerning.com>
1396
1397
    HTTP::Request::Common will now calculate Content-length
1398
    even if $DYNAMIC_FILE_UPLOAD is set.  Patch provided by
1399
    Lindley, Lee T <Lee.Lindley@viasystems.com>.
1400
1401
1402
1403
2000-12-31   Gisle Aas <gisle@ActiveState.com>
1404
1405
    Release 5.49
1406
1407
    HTML::Form: Use croak() instead of die.  Implement
1408
    $f->possible_values.  Avoid use of undef value warnings.
1409
1410
    HTTP::Cookies: fix epath issue.  Make it work for URI::http
1411
    as the uri-attribute of HTTP::Request object
1412
1413
    HTTP::Date: Allow ignored timezone info in parenthesis. Patch
1414
    by Sander van Zoest <sander@covalent.net>.
1415
    Fix calculation of non-GMT timezones (wrong sign).  Patch by
1416
    KONISHI Katsuhiro <konishi@din.or.jp>.
1417
1418
    HTTP::Response: Let $res->base() absolutize the URI.  Based on
1419
    bug report from Hans de Graaff <hans@degraaff.org>.
1420
1421
    Fixed minor doc typos in HTTP::Headers::Util and LWP::UserAgent.
1422
1423
    HTTP::Request::Common: Support boundary spec from client.
1424
1425
    LWP::Simple: Avoid trivial_http_get when @ appears in authority
1426
    part of URI
1427
1428
    LWP::Authen::Digest: Need to have query in URI param. 
1429
    Spotted by <ronald@innovation.ch>.
1430
1431
    LWP::Protocol::http: unescape username/password if they are
1432
    specified in the URI.
1433
1434
    Added LWP::Protocol::GHTTP.  This allow LWP to use the HTTP::GHTTP
1435
    module as the low level HTTP driver.
1436
1437
1438
1439
2000-04-09   Gisle Aas <gisle@aas.no>
1440
1441
    Release 5.48
1442
1443
    README.SSL update by Marko Asplund <aspa@hip.fi>
1444
1445
    Added cookie example to lwpcook.pod
1446
1447
    HTTP::Date::str2time returns undef on failure instead
1448
    of an empty list as suggested by Markus B Krüger 
1449
1450
    $request->uri($uri) will now always store a copy of the $uri.
1451
1452
    HTTP::Status: Added status codes from RFC 2616 and RFC 2518 (WebDAV)
1453
1454
    LWP::RobotUA will not parse robots.txt unless content type and
1455
    content sample looks right.
1456
1457
    LWP::UserAgent: Deal with multiple WWW-Authenticate headers.
1458
    Patch by Hugo <hv@crypt.compulink.co.uk>
1459
1460
    $ua->proxy can now return the old proxy settings without
1461
    destroying the old one.
1462
    Based on patch by Benjamin Low <ben@snrc.uow.edu.au>
1463
1464
    LWP::Protocol::http update
1465
1466
        - don't terminate header parsing on bad headers
1467
        - extra_sock_opts
1468
        - preparations for keep alive support
1469
        - method CONNECT
1470
1471
   WWW::RobotRules deal with various absolute URIs in the
1472
   disallow lines.
1473
1474
   Makefile.PL: Make sure we have HTML::TokeParser
1475
1476
   Clean test on VMS.
1477
   Patch by Charles Lane <lane@ DUPHY4.Physics.Drexel.Edu>.
1478
1479
1480
1481
1999-11-16   Gisle Aas <gisle@aas.no>
1482
1483
 o  Release 5.47
1484
1485
 o  Added HTML::Form to the distribution.
1486
1487
 o  LWP::Protocol::ftp: Make it URI.pm compatible.  We broke it in 5.45.
1488
1489
 o  LWP::Protocol::http: Kill any Connection header
1490
1491
 o  LWP::MediaTypes: Fixed builtin html/text mapping.
1492
    Added bz2 to suffixEncoding
1493
1494
1495
1496
1999-10-28   Gisle Aas <gisle@aas.no>
1497
1498
 o  Release 5.46
1499
1500
 o  Updated mailing list address
1501
1502
 o  Avoid warnings for lwp-request -t
1503
1504
 o  referrer as alternative spelling for referer as suggested by tchrist.
1505
1506
 o  More conservative selection of boundary for multipart messages
1507
    in &HTTP::Request::Common::POST.
1508
1509
 o  LWP::MediaTypes can now export &read_media_types.
1510
1511
 o  Spelling corrections from Ben Tilly <Ben_Tilly@trepp.com>
1512
1513
1514
1515
1999-09-20   Gisle Aas <gisle@aas.no>
1516
1517
 o  Release 5.45
1518
1519
 o  The LWP SSL support better explained.  Documentation in README.SSL
1520
    and lwpcook.pod contributed by Marko Asplund <aspa@hip.fi>.
1521
1522
 o  LWP::Protocol::https: Try loading IO::Socket::SSL if Net::SSL is
1523
    not available.
1524
1525
 o  lwp-mirror -t option did not work.
1526
1527
 o  defined(@ISA) eliminated. Patch by Nathan Torkington <gnat@frii.com>
1528
1529
 o  LWP::Protocol::ftp: Protect against empty path_segments
1530
1531
1532
1533
1999-06-25   Gisle Aas <gisle@aas.no>
1534
1535
 o  Release 5.44
1536
1537
 o  We require URI-1.03, since this fix some query quoting stuff
1538
    that HTTP::Request::Common rely upon.
1539
1540
 o  'lwp-request -HUser-Agent:foo' can now be used to set this
1541
    header too.
1542
1543
 o  Localize $/ to ensure standard record separator a few places
1544
    in HTTP::Cookies
1545
1546
 o  LWP::UserAgent will now set the Range header in requests if
1547
    the $ua->max_size attribute is set.
1548
1549
1550
1551
1999-05-09   Gisle Aas <gisle@aas.no>
1552
1553
 o  Release 5.43
1554
1555
 o  New lwp-request command line option that allow you to put any
1556
    header into the request (-H).
1557
1558
 o  New HTTP::Date because of Y2K-problems with the old one.
1559
    It refused to parse the ftp-listing (ls -l) dates missing year.
1560
    Additional entry point is parse_date().  This function avoid any
1561
    limitations caused by the time-representation (seconds since
1562
    epoch).
1563
1564
 o  Y2K fix to t/base/cookies.t.  Netscape's original cookie
1565
    example expires at 09-Nov-99.
1566
1567
 o  Added another binmode() to LWP::Protocol::file as suggested
1568
    by Matt Sergeant <matt-news@sergeant.org>
1569
1570
1571
1572
1999-03-20   Gisle Aas <gisle@aas.no>
1573
1574
 o  Release 5.42
1575
	
1576
 o  MacOS patches from Paul J. Schinder <schinder@leprss.gsfc.nasa.gov>
1577
1578
 o  Documentation patch from Michael A. Chase <mchase@ix.netcom.com>
1579
1580
 o  PREREQ_PM patch from Andreas Koenig <andreas.koenig@anima.de>
1581
 
1582
 o  LWP::Simple::head fix by Richard Chen <richard@lexitech.com>
1583
 
1584
 o  "LWP fails with PerlEXE"-patch from Gurusamy Sarathy
1585
1586
 o  Allow "." in HTTP header names.  Patch by Marc Langheinrich
1587
    <marc@ccm.cl.nec.co.jp>
1588
1589
 o  Fixed reference to $uri->netloc in lwp-request
1590
1591
 o  Cute animation in lwp-download
1592
1593
1594
1595
Mon Nov 19 1998   Gisle Aas <aas@sn.no>
1596
1597
 o  Release 5.41
1598
1599
 o  HTTP::Cookies provide better Netscape cookies compliance.
1600
    Send back cookies to any port, and allow origin host name to
1601
    be specified as domain, and still be treated as a domain.
1602
    Patch from Andreas Gustafsson <gson@araneus.fi>.
1603
1604
 o  HTTP::Cookies now ignore the Expires field in Set-Cookie, if the
1605
    date provided can't be parsed by HTTP::Date.
1606
1607
 o  HTTP::Daemon will lowercase the hostname returned from
1608
    Sys::Hostname::hostname().  This avoid some test failures in
1609
    the test suite for people with upper- or mixed-cased hostnames.
1610
1611
 o  LWP::Protocol::gopher: IO::Socket::INET ctor did not specify
1612
    Proto => 'tcp'.  This made it less portable to older IO::Socket
1613
    versions.
1614
1615
 o  No programs installed when you build the Makefile with
1616
    'perl Makefile.PL LIB=/my/lib'
1617
1618
 o  LWP bundle mention Digest::MD5 instead of MD5
1619
1620
 o  headers-auth.t test suite bug triggered by perl5.005_5x.
1621
    Patch by Albert Dvornik <bert@genscan.com>
1622
1623
 o  The local/http.t test actually did try to unlink(".").  This was
1624
    very confusing on systems where it succeed.
1625
1626
1627
1628
Mon Oct 12 1998   Gisle Aas <aas@sn.no>
1629
1630
 o  Release 5.40_01
1631
1632
 o  Unbundled URI::URL modules.  You now have to install the
1633
    URI.pm module in order to get libwww-perl working.
1634
1635
 o  Made library URI.pm compatible.  Made all URI object instantiations
1636
    based on $HTTP::URI_CLASS variable.
1637
1638
 o  New lwp-rget option: --referer.
1639
    Patch by INOUE Yoshinari <inoue@kusm.kyoto-u.ac.jp>.
1640
1641
 o  One more binmode() to HTTP::Daemon as suggested by
1642
    Markus Laker <mlaker@contax.co.uk>.
1643
1644
1645
1646
Tue Aug  4 1998   Gisle Aas <aas@sn.no>
1647
1648
 o  Release 5.36
1649
1650
 o  The lwp-download script will call $ua->env_proxy now.
1651
1652
 o  The lwp-request script allows content types (specified with the -c
1653
    option) with optional parameters like: multipart/mixed; boundary="--".
1654
1655
 o  LWP::UserAgent will lowercase all authentication parameter names
1656
    before passing it to the authentication module.  Previous releases
1657
    ignored parameters like; Realm="Foo" (bacause Realm contained
1658
    upper case letters).
1659
1660
 o  LWP::Protocol::ftp test for If-Modified-Since was wrong.
1661
1662
 o  How the $url->abs method works can now be configured with the global
1663
    variables $URI::URL::ABS_ALLOW_RELATIVE_SCHEME and
1664
    $URI::URL::ABS_REMOTE_LEADING_DOTS.
1665
1666
 o  The anonymous password guesser for ftp URLs will now call the external
1667
    `whoami` program any more.  Patch by Charles C. Fu <ccwf@bacchus.com>.
1668
1669
 o  LWP::Protocol::http now allow dynamic requests without any
1670
    Content-Length specified when Content-Type is multipart/*
1671
1672
 o  HTTP::Request::Common can now upload infinite files.
1673
    (Controlled by the $DYNAMIC_FILE_UPLOAD configuration variable.)
1674
1675
1676
1677
Fri Jul 10 1998   Gisle Aas <aas@sn.no>
1678
1679
 o  Release 5.35
1680
1681
 o  More lwp-rget patches from David D. Kilzer <ddkilzer@madison.dseg.ti.com>.
1682
    Adds the following new options: --iis, --keepext, --tolower
1683
1684
 o  LWP::MediaTypes patches from MacEachern <dougm@pobox.com>.  Adds new
1685
    functions: add_type(), add_encoding(), read_media_types()
1686
1687
1688
1689
Tue Jul  7 1998   Gisle Aas <aas@sn.no>
1690
1691
 o  Release 5.34
1692
1693
 o  LWP::Protocol::ftp now try to use the MDTM command to support
1694
    the Last-Modified response header as well as
1695
    If-Modified-Since in requests.  Original and final patch by
1696
    Charles C. Fu <ccwf@bacchus.com>
1697
1698
 o  $url->path_components will not escape "." any more.
1699
1700
 o  WWW::RobotRules will now work for Mac text files too (lines delimited
1701
    by CR only).  Patch by Olly Betts <olly@muscat.co.uk>
1702
1703
 o  lwp-rget support <area ..> links too.
1704
1705
1706
1707
Thu May  7 1998   Gisle Aas <aas@sn.no>
1708
1709
 o  Release 5.33
1710
1711
 o  LWP::Simple::get() did try to handle too many of the 3xx
1712
    codes as redirect when it bypasses full LWP.
1713
1714
 o  LWP::UserAgent->mirror will now use utime(2) to set the
1715
    file modification time corresponding to the Last-Modified
1716
    header.
1717
1718
 o  LWP::Protocol::http will not modify the HTTP::Request that
1719
    it is processing.  This avoids sticky Host header for
1720
    redirects.
1721
1722
 o  URI::Heuristic and lwp-download documentation update.
1723
1724
1725
1726
Wed Apr 15 1998   Gisle Aas <aas@sn.no>
1727
1728
 o  Release 5.32
1729
1730
 o  Much improved HTTP::Daemon class. We now support persistent
1731
    connections.  Changes include:
1732
       - $c->get_request can be told to return after reading and
1733
         parsing headers only.
1734
       - $c->reason (new method)
1735
       - $c->read_buffer (new method)
1736
       - $c->proto_ge (new method)
1737
       - $c->force_last_request (new method)
1738
       - $c->send_response now support CODE reference content
1739
         and will use chunked transfer encoding for HTTP/1.1 clients.
1740
       - expanded the documentation.
1741
1742
1743
1744
Fri Apr 10 1998   Gisle Aas <aas@sn.no>
1745
1746
 o  Release 5.31
1747
1748
 o  Makefile.PL now checks that HTML::HeadParser is present.
1749
1750
 o  Updated HTTP::Cookies according to draft-ietf-http-state-man-mec-08.txt
1751
    It now supports the .local domain and value less 'port' attribute in
1752
    the Set-Cookie2 header.
1753
1754
 o  HTTP::Headers update:
1755
       - $h->content_type now always return a defined value
1756
       - $h->header($field) will now concatenate multi-valued header
1757
         fields with "," as separator in scalar context.
1758
1759
 o  HTTP::Request::Common update:
1760
       - used to destroy the content of the  hash/array arguments
1761
         passed to its constructor functions.
1762
       - allow a hash reference to specify form-data content.
1763
       - you can override Content-Disposition for form-data now.
1764
       - set content-encoding for files if applicable
1765
       - default boundary string is now always "--000"
1766
1767
 o  LWP::UserAgent will not follow more than 13 redirects
1768
    automatically.
1769
1770
1771
1772
Wed Apr  1 1998   Gisle Aas <aas@sn.no>
1773
1774
 o  Release 5.30
1775
1776
 o  Unbundled the following modules:
1777
1778
       * HTML-Parser  (HTML::Parser, HTML::Entites, HTML::LinkExtor,...)
1779
       * HTML-Tree    (HTML::Element, HTML::TreeBuilder,...)
1780
       * Font-AFM     (Font::AFM, Font::Metrics::*)
1781
       * File-CounterFile
1782
1783
 o  Simplified internal structure of HTTP::Headers.  Hopefully,
1784
    nobody will notice.
1785
1786
 o  New modules HTTP::Headers::Auth,  HTTP::Headers::ETag that adds
1787
    additional convenience methods to the HTTP::Headers class.
1788
1789
 o  Removed split_etag_list() from HTTP::Headers::Util, in the hope
1790
    that nobody had starting using it.
1791
1792
1793
1794
Tue Mar 24 1998   Gisle Aas <aas@sn.no>
1795
1796
 o  Release 5.22
1797
1798
 o  HTTP::Cookies made more compatible with Netscape cookies.  Allow
1799
    the domain to match host, allow dots in the part of the hostname
1800
    not covered by domain.  Don't quote the cookie value even when it
1801
    contains non-token chars.  Based on patch from Kartik Subbarao
1802
    <subbarao@computer.org>.
1803
1804
 o  Updated HTTP::Status to reflect <draft-ietf-http-v11-spec-rev-03>.
1805
    RC_MOVED_TEMPORARILY renamed to RC_FOUND.  Added codes
1806
    RC_TEMPORARY_REDIRECT (307) and RC_EXPECTATION_FAILED (417).
1807
    Slightly more documentation too.
1808
1809
 o  The split_header_words() function HTTP::Headers::Util could go
1810
    into infinite loop on some header values.  Implemented split_etag_list()
1811
    too.  Added more documentation and test script for this module.
1812
1813
 o  LWP::Simple now switch to full LWP implementation even for systems
1814
    that force all environment keys to be upper case.  Modification
1815
    suggested by Dale Couch <dcouch@training.orl.lmco.com>.
1816
1817
 o  LWP::UserAgent allows redirects to a relative URL with scheme to be
1818
    made.  Suggested by Chris W. Unger <cunger@cas.org>.
1819
1820
 o  Applied dtd2pm.pl patches from <peterm@zeta.org.au>.  It can now
1821
    extract information from the HTML40.dtd
1822
1823
1824
1825
Thu Mar 12 1998   Gisle Aas <aas@sn.no>
1826
1827
 o  Release 5.21
1828
1829
 o  lwp-rget patches from David D. Kilzer <ddkilzer@madison.dseg.ti.com>
1830
    (modified by Gisle).  Support the --hier  and the --auth options
1831
    and <frame>s.
1832
1833
 o  File::CounterFile protect against bad $/ and $\ as suggested
1834
    by Frank Hoehne.
1835
 
1836
 o  File::Listing used "next" when return was more appropriate.
1837
    Patch by erik@mediator.uni-c.dk.
1838
1839
 o  HTML::Element support for multiple boolean attributes for a single
1840
    element.  Patch by Philip Guenther.
1841
1842
 o  Can set $HTTP::Headers::TRANSLATE_UNDERSCORE to FALSE value to
1843
    suppress tr/_/-/ of header keys.
1844
1845
 o  LWP::Protocol::http will not initialize the Host header if it is
1846
    already set.
1847
1848
 o  LWP::Protocol::http did not handle responses with no header lines
1849
    correctly.  Patch by Daniel Buenzli <buenzli@rzu.unizh.ch>
1850
1851
 o  $url->rel() handles path segments without leading "/" better.
1852
1853
1854
1855
Fri Feb 13 1998   Gisle Aas <aas@sn.no>
1856
1857
 o  Release 5.20
1858
1859
 o  Fixed the "500 Offset outside string" bug that affected perl
1860
    5.004_03 and older version of Perl.
1861
1862
 o  Fixed a documentation typo spotted by Michael Quaranta
1863
    <quaranta@vnet.IBM.COM>
1864
1865
 o  HTTP::Date: Protect against croaking from timegm/timelocal.
1866
1867
1868
1869
Mon Jan 26 1998   Gisle Aas <aas@sn.no>
1870
1871
 o  Release 5.19
1872
1873
 o  HTML::Parser does not call $self->text() callback for empty text
1874
    any more.
1875
1876
 o  LWP::Protocol::https was noisy when connections failed and the
1877
    script was running with '-w' (noise inherited from IO::Socket::INET)
1878
1879
 o  $ua->use_alarm(BOOL) now gives a warning if running with -w
1880
1881
1882
1883
Tue Jan 20 1998   Gisle Aas <aas@sn.no>
1884
1885
 o  Developer release 5.18_05
1886
1887
 o  HTTPS support based on my Crypt-SSLeay module.  The Net-SSLeay module
1888
    is not supported any more.
1889
1890
 o  lwp-request documentation typo spotted Martijn Koster.
1891
1892
 o  Removed superfluous \\ in the URI::Escape regex. This was also
1893
    spotted by Martijn.
1894
1895
 o  File::Listing now handles timezones correctly.
1896
1897
 o  Added $VERSION to modules that was missing it.
1898
1899
 o  Added 'use strict' to several modules that was missing it.
1900
1901
 o  LWP::Protocol::http now adds the Client-Peer header to responses and
1902
    has hooks for more callbacks.
1903
1904
 o  LWP::Protocol::https adds Client-SSL-Cipher, Client-SSL-Cert-Subject
1905
    and Client-SSL-Cert-Issuer headers to the response.  The requests can
1906
    also be made conditional based on the peer certificate using the
1907
    If-SSL-Cert-Subject header in requests.
1908
1909
 o  HTML::Parse is back.  (It was even used in lwpcook.pod)
1910
1911
1912
1913
Wed Dec 17 1997   Gisle Aas <aas@sn.no>
1914
1915
 o  Developer release 5.18_04
1916
1917
 o  Makefile.PL fix based on report from Pon Hwa Lin <koala@fragment.com>
1918
1919
 o  lwp-request will now print the response code message with -s and -S
1920
    options.
1921
1922
 o  Hide IO::Socket::INET noise when running under -w
1923
1924
 o  Don't set 'Content-Length: 0' in HTTP requests.
1925
1926
 o  LWP::Protocol::http now calls LWP::Debug::conns again
1927
1928
1929
1930
Tue Dec 16 1997   Gisle Aas <aas@sn.no>
1931
1932
 o  Developer release 5.18_03
1933
1934
 o  Got rid of alarms() and replaced LWP::Socket with IO::Socket::INET.
1935
    New protocol implementations for http, https, gopher, nntp.
1936
    $ua->use_alarm() is now a noop.
1937
1938
 o  LWP::Protocol::ftp patch from  Tony Finch <fanf@demon.net>.
1939
1940
 o  Removed depreciated modules from the distibution; HTML::Parse,
1941
    LWP::Socket, LWP::SecureSocket, LWP::IO, LWP::TkIO.
1942
1943
1944
1945
Fri Dec 12 1997   Gisle Aas <aas@sn.no>
1946
1947
 o  Release 5.18
1948
1949
 o  HTTP authorization patches from Tony Finch <fanf@demon.net>.
1950
    Allows "user:pass@" in HTTP URLs.
1951
1952
 o  HTML::Parser patch by Brian McCauley <B.A.McCauley@bham.ac.uk>.
1953
    Pass original text to end() method.
1954
1955
 o  The HTML::Parser->netscape_buggy_comment method is depreciated.
1956
    Use HTML::Parser->strict_comment instead.  The default value
1957
    has changed with the name.
1958
1959
 o  Some HTML::Parser optimization tweaks.
1960
1961
 o  New module named HTML::Filter
1962
1963
 o  Updated HTTP::Headers to the latest HTTP spec.  Added knowledge
1964
    about the "Trailer", "Expect", "TE", "Accept-Range" headers.
1965
    "Public" header is gone.
1966
1967
 o  Added some more header convenience methods: if_unmodified_since,
1968
    content_language, and proxy_authorization methods.
1969
1970
 o  HTTP::{Request,Response}->clone can handle subclasses now.
1971
1972
 o  HTTP::Request->url() can now undefine the URL.
1973
1974
 o  HTTP::{Request,Response}->as_string format looks more like
1975
    the HTTP protocol formatting now.  Dashed lines above and
1976
    below is gone.
1977
1978
 o  Documented HTTP::Response->status_line method
1979
1980
 o  Compressed HTML::Response->error_as_HTML output
1981
1982
 o  HTTP::Status updated to latest HTTP spec.  Added 
1983
    RC_REQUEST_RANGE_NOT_SATISFIABLE (416)
1984
1985
1986
1987
Tue Dec  2 1997   Gisle Aas <aas@sn.no>
1988
1989
 o  Release 5.17
1990
1991
 o  All authentication handling moved out of LWP::UserAgent and into
1992
    LWP::Authen::Basic and LWP::Authen::Digest.  We now also support
1993
    PROXY_AUTHENTICATION_REQUIRED responses.
1994
1995
 o  HTML::Formatter will always add a blank line for <br>.
1996
1997
 o  Avoid use of uninitialized value in HTTP::Daemon.
1998
1999
 o  HTTP::Date allows seconds when recognizing 'ls -l' dates.  This
2000
    allows us to parse syslog time stamps.
2001
2002
 o  HTTP::Request::Common::POST allows a hash reference as second
2003
    argument (in addition to an array reference).
2004
2005
 o  LWP::Simple will initialize the $ua if it is exported.
2006
2007
 o  Various documentation updates.
2008
2009
2010
2011
Fri Nov 21 1997   Gisle Aas <aas@sn.no>
2012
2013
 o  Release 5.16
2014
2015
 o  LWP::Simple::head() would die in array context because str2time
2016
    was not imported any more.
2017
2018
 o  HTTP::Daemon->accept now takes an optional package argument like
2019
    IO::Socket->accept does.
2020
2021
 o  Made HTTP::Request and HTTP::Response subclassable.
2022
2023
 o  Added Proxy-Authorization example to lwpcook.
2024
2025
2026
2027
Thu Nov  6 1997   Gisle Aas <aas@sn.no>
2028
2029
 o  Release 5.15
2030
2031
 o  New module URI::Heuristic
2032
2033
 o  The lwp-request script now use URI::Heuristic for it's URL arguments.
2034
    It means that 'lwp-request perl' will not get a file called "./perl"
2035
    but will fetch the page "http://www.perl.com" or something similar.
2036
    If you want to get the file you have to prefix it with "./".  Full
2037
    URLs are never affected by this.
2038
2039
 o  LWP::Simple::get() will bypass LWP for simple HTTP requests.  This
2040
    should make it somewhat faster.
2041
2042
 o  LWP::RobotUA has a new method called $ua->use_sleep() that
2043
    controls how niceness towards the servers are enforced.
2044
    Previously $ua->use_alarm() used to control this, but this did
2045
    not work well on Win32 systems.
2046
2047
 o  URI::URL::rel() will handle URLs to a fragment within the same
2048
    document better. Initial patch from Nicolai Langfeldt
2049
    <janl@math.uio.no>.
2050
2051
 o  HTML::Element don't consider </th>, </tr> and </td> optional any
2052
    more.  I wonder how Netscape managed to not implement this
2053
    correctly all this time.
2054
2055
 o  Added lots of modern tags to HTML::AsSubs.
2056
2057
 o  HTTP::Request::Common will read uploaded files in binmode().
2058
    This should be better for Win32 systems.  Contributed by
2059
    <Steve_Kilbane@cegelecproj.co.uk>.
2060
2061
2062
2063
Sun Oct 12 1997   Gisle Aas <aas@sn.no>
2064
2065
 o  Release 5.14
2066
2067
 o  HTML::Formatter patches from Andreas Gustafsson <gson@araneus.fi>.
2068
    The formatters handling of whitespace is much better now.  Thanks!
2069
2070
 o  HTML::FormatText: can specify margins in the constructor.
2071
2072
 o  URI::URL: the base will be absolutized internally now.
2073
2074
 o  URI::URL will take advantage of void context provided by perl5.004.
2075
    This means that using $u->path and $u->query should be safer now.
2076
2077
 o  URI::URL->print_on defaults to STDERR now (used to be STDOUT).
2078
2079
 o  URI::URL: removed version 3 compatibility stuff ($COMPAT_VER_3).
2080
2081
 o  $ua->mirror should work better on dosish systems (can not
2082
    rename when target file exists).
2083
2084
 o  Typo in lwp-download prevented it from compiling.
2085
2086
 o  Some minor documentations typos corrected.
2087
2088
2089
2090
Sat Sep 20 1997   Gisle Aas <aas@sn.no>
2091
2092
 o  Release 5.13
2093
2094
 o  Brand new module called HTTP::Cookies.  It stores cookies
2095
    (Set-Cookie and Set-Cookie2 headers) from responses and can
2096
    create appropriate Cookie headers for requests.  It can also
2097
    share cookie files with Netscape.
2098
2099
 o  LWP::UserAgent now support the cookie_jar() attribute.  When
2100
    set to an HTTP::Cookies object, it will automatically manage
2101
    the cookies sent to the servers.  Off by default.
2102
2103
 o  New header utility functions in HTTP::Headers::Util.
2104
2105
 o  Win32 and OS/2 patches for the lwp-xxx utilities.  Turn on
2106
    binary mode by default (option to turn it off), avoid modifying $0,
2107
    and don't be confused about suffixes in the script names.
2108
    Contributed by Ben Coleman <bcoleman@mindspring.com>
2109
2110
 o  OpenVMS patch for Font:AFM by Brad Hughes <brad@tmc.naecker.com>
2111
2112
2113
2114
Fri Sep  5 1997   Gisle Aas <aas@sn.no>
2115
2116
 o  Release 5.12
2117
2118
 o  decode_entities() would sometimes introduce ";" after
2119
    things that looked like they were entities.
2120
2121
 o  HTML::LinkExtor knows about <applet code="...">
2122
2123
 o  Patch from Gary Shea <shea@gtsdesign.com> that makes the
2124
    tests work even if perl is not called "perl"
2125
2126
 o  HTTP::Date handles 12:00PM correctly now. Patch from
2127
    William York <william@mathworks.com>
2128
2129
 o  HTTP::Request::Common don't quote the boundary string for
2130
    multipart/form-data messages any more.
2131
2132
 o  Font::AFM works for encodings where .notdef is defined to
2133
    have some size.  Documentation and efficiency update.
2134
2135
2136
2137
Wed Aug  6 1997   Gisle Aas <aas@sn.no>
2138
2139
 o  Release 5.11
2140
2141
 o  Perl version 5.004 is now required for libwww-perl.
2142
2143
 o  Win32 patches from Gurusamy Sarathy <gsar@engin.umich.edu>.
2144
    Now passes all tests on that platform.
2145
2146
 o  HTTPS support contributed by Josh Kronengold <mneme@mcny.com>
2147
2148
 o  Support hex entities &#xFF;  HTML::Entities::(en|de)code only
2149
    modify their argument in void context.
2150
2151
 o  Fixed formatter bug with <font> tags which did not specify size.
2152
2153
 o  Better HTML::HeadParser documentation
2154
2155
 o  Fixed HTML::LinkExtor documentation typo spotted by Martijn.
2156
2157
 o  HTTP::Request::Common now use CRLF for multipart/form-data
2158
2159
2160
2161
Fri Jun 20 1997   Gisle Aas <aas@sn.no>
2162
2163
 o  Release 5.10
2164
2165
 o  Make '+' a reserved URL character.  Decode unescaped '+' as
2166
    space in $url->query_form().
2167
2168
 o  Use $Config{d_alarm} to determine default for $ua->use_alarm()
2169
2170
2171
2172
Tue Jun 10 1997   Gisle Aas <aas@sn.no>
2173
2174
 o  Release 5.09
2175
2176
 o  Removed the MIME modules from the distribution.  They are distributed
2177
    separately now.
2178
2179
 o  Added a new module called HTTP::Request::Common
2180
2181
 o  Improved HTTP::Status documentation.  It is now also possible
2182
    to import the is_client_error/is_server_error functions.
2183
2184
 o  LWP::MediaTypes::guess_media_type() can now take an optional
2185
    HTTP::Header parameter.
2186
2187
 o  LWP::Protocol ensures that scheme is legal as module name.
2188
2189
 o  LWP::Protocol::http is not as strict when trying to verify the
2190
    method name.  It now also accepts responses without a message
2191
    on the status line.
2192
2193
 o  WWW::RobotRules::AnyDBM_File: Some DBMs fail to allow multiple
2194
    opens of the same file.  Patch from Mark James <jamesm@skate.org>
2195
2196
 o  Created Bundle::LWP
2197
2198
2199
2200
Sat Apr  5 1997   Gisle Aas <aas@sn.no>
2201
2202
 o  Release 5.08
2203
2204
 o  Made libwww-perl warning compatible with upcoming perl5.004beta2
2205
    (aka 5.003_98)
2206
2207
 o  encode_base64() did not work properly if pos() of the string to
2208
    encode was different from 0.
2209
2210
 o  HTML::Parser was confused about "</" when it did not start an end tag.
2211
2212
 o  HTML::FormatPS will provide ISOLatin1Encoding in its output.
2213
2214
 o  Calling HTML::LinkExtor->links will clear out old links.
2215
2216
 o  url()->rel($base) would ignore the $base argument.
2217
2218
 o  Don't croak() when setting url()->path().
2219
2220
2221
2222
Tue Feb 11 1997   Gisle Aas <aas@sn.no>
2223
2224
 o  Release 5.07
2225
2226
 o  Can limit the size of the response content with $ua->max_size()
2227
2228
 o  Added time2iso() functions to HTTP::Date.
2229
2230
 o  Made LWP::Protocol::http more portable to the MacPerl. /./ match
2231
    different things on MacPerl.
2232
2233
2234
2235
Mon Jan 27 1997   Gisle Aas <aas@sn.no>
2236
2237
 o  Release 5.06
2238
2239
 o  URI::URL is now compatible with perl5.004 overloading.
2240
2241
 o  HTML::HeadParser makes X-Meta-Name headers for <meta> elements
2242
    that does not specify an 'http-equiv' attribute.
2243
2244
 o  URI::URL::ftp does not die if Net::Domain is not installed and
2245
    you ask for an anonymous username or password.
2246
2247
 o  WWW::RobotRules:  The robots.txt parser did not ignore comment lines
2248
    as it should.
2249
2250
 o  LWP::Protocol::http is more forgiving towards servers that return
2251
    bad responses.
2252
2253
 o  Allow "?" before search string in gopher URLs.
2254
2255
 o  LWP::Protocol::file did not escape funny filenames when generating
2256
    HTML directory listings.
2257
2258
 o  LWP::Protocol::ftp now gets the Content-Encoding correct. 'CODE'
2259
    content in PUT requests also work now.
2260
2261
 o  Relative locations in redirects did not work with URI::URL::strict.
2262
2263
 o  OS/2 portability patches from Ilya Zakharevich
2264
2265
 o  LWP::Authen::* patch from Doug MacEachern
2266
2267
 o  Support experimental data:- URLs
2268
2269
 o  Some tests (those using HTTP::Daemon) now die more gracefully if
2270
    IO::* modules is not installed.
2271
2272
2273
2274
Wed Dec  4 1996   Gisle Aas <aas@sn.no>
2275
2276
 o  Release 5.05
2277
2278
 o  LWP::UserAgent::simple_request: local($SIG{__DIE__}) protects us
2279
    against user defined die handlers.
2280
 	
2281
 o  Use Net::Domain (instead of Sys::Hostname) to determine FQDN.  It
2282
    is used by URI::URL when it determines anonymous ftp login address.
2283
	
2284
 o  lwp-download: New program in the bin directory
2285
2286
 o  HTML::Parser: Allow '_' in attribute names.  This makes it possible
2287
    to parse Netscape's bookmarks.html file.
2288
2289
 o  HTTP::Daemon: Fixed chunked transfer encoding and multipart content
2290
    in get_request().  Support HTTP/0.9 clients.
2291
2292
 o  Don't clobber regex variables when HTTP::Message delegates methods
2293
    to the header.
2294
2295
 o  Base64::decode_base64 now checks that the length input string to
2296
    decode is a multiple of 4.
2297
2298
 o  t/robot/rules-dbm.t clean up better and will use AnyDBM for dumping
2299
2300
 o  File::CounterFile: $/ strikes again by Andreas König
2301
2302
 o  File::Listing updates from William York <william@mathworks.com>. We
2303
    can now parse the MS-Windows ftp server listings.
2304
2305
 o  HTTP::Date now supports the MS-Windows 'dir' date format.  Patch by
2306
    William York.
2307
2308
 o  LWP::MediaTypes::media_suffix will return first type in scalar context.
2309
2310
2311
2312
Tue Oct 22 1996   Gisle Aas <aas@sn.no>
2313
2314
 o  Release 5.04
2315
2316
 o  Added HTTP::Daemon.  This is a HTTP/1.1 server class.  This means
2317
    that libwww-perl no longer is a client library only.  The HTTP::Daemon
2318
    is also used in the new test suite.
2319
2320
 o  HTTP::Message support the protocol() method.  Used by HTTP::Daemon.
2321
2322
 o  HTTP::Response can be constructed with a header and content as
2323
    argument.
2324
2325
 o  Typo corrections in the documentation.
2326
2327
 o  File::Listing::parse_dir accepts "GMT" as timezone now.
2328
2329
 o  HTML::Parser will call the start() method with two new parameters;
2330
    $attrseq, $origtext.
2331
2332
 o  Integrated HTML::FormatPS patches from
2333
    Jim Stern <jstern@world.northgrum.com>
2334
2335
 o  Class modules don't inherit from AutoLoader any more.  They just
2336
    import the AUTOLOAD method.
2337
2338
 o  LWP::Protocol will untaints scheme before loading protocol module.
2339
2340
 o  Digest does not send "opaque" if it was not present in the request.
2341
    The "Extension" header is not returned any more.
2342
2343
 o  New method: $url->crack that will return a list of the various
2344
    elements in a URI::URL.
2345
2346
 o  WWW::RobotRules did not use the agent() method when determining
2347
    who we are.  This affected WWW::RobotRules::AnyDBM_File parsing
2348
    for robots.txt.  Visit count did not increment for
2349
    WWW::RobotRules::InCore.
2350
2351
2352
2353
Tue Oct  1 1996   Gisle Aas <aas@sn.no>
2354
2355
 o  Release 5.03
2356
2357
 o  Hakan Ardo's persistent robot rules is now part of the standard
2358
    distribution.  This is still experimental and might change in the
2359
    future.  It includes the new WWW::RobotRules::AnyDBM_File class
2360
    and updates to LWP::RobotUA.
2361
2362
 o  HTML::Parser now supports buggy Netscape comment parsing.  Enable
2363
    it by calling $p->netscape_buggy_comment(1).  The previous version
2364
    of the parser could also (under very unlucky and unlikely
2365
    circumstances) call the $self->comment() method several times for
2366
    the same comment text.
2367
2368
 o  HTML::Parser: Use new $p->eof to signal end of document instead of
2369
    $p->parse(undef).
2370
2371
 o  HTML::Element::starttag() is now smarter about which quotes it
2372
    use around attribute values.
2373
2374
 o  New HTTP::Response methods: current_age(), freshness_lifetime(),
2375
    is_fresh(), fresh_until().
2376
2377
 o  HTTP::Message:  New method ($mess->content_ref) which will return
2378
    a reference to the current content.
2379
2380
 o  URI::URL:  New method ($url->rel) which does the opposite of abs().
2381
    Example: url("http://host/a/b/c", "http://host/c/d/e")->rel would
2382
    return url("../../a/b/c", "http://host/c/d/e").  This was
2383
    suggested by Nicolai Langfeldt <janl@ifi.uio.no>
2384
2385
 o  URI::URL:  $url->query_form can now take array references as value
2386
    specification.  For instance: $url->query_form(foo => ['bar', 'baz']
2387
2388
 o  Avoid '"my" variable $var masks earlier declaration in same scope'
2389
    warnings in perl5.003_05.
2390
2391
2392
2393
Wed Sep 11 1996   Gisle Aas <aas@sn.no>
2394
2395
 o  Release 5.02
2396
2397
 o  lwp-rget:  Initialize proxy settings from envirionment
2398
2399
 o  HTML::Entities::encode_entities: Don't encode $ and %
2400
2401
 o  HTML::LinkExtor::links: Now works when no links were found.
2402
2403
 o  HTTP::Headers::as_string: Allow \n in header value
2404
2405
2406
2407
Tue Aug  1 1996   Gisle Aas <aas@sn.no>
2408
2409
 o  Release 5.01.
2410
2411
 o  Updated ftp protocol module to be compatible with Net::FTP 
2412
    version 2.00 (the version found in libnet-1.00)
2413
2414
 o  New HTML parser module called HTML::LinkExtor
2415
2416
 o  Various documentation typo corrections.  Most of these contributed
2417
    by Bob Dalgleish.
2418
2419
 o  HTML::HeadParser updates 'Content-Base' instead of 'Base'.  It also
2420
    updates the 'Link' header based on <link ...>
2421
2422
 o  HTTP::Headers and HTTP::Status updated according to
2423
    draft-ietf-http-v11-spec-06
2424
2425
 o  HTTP::Headers can now use "_" as alternative to "-" in field names.
2426
2427
 o  HTTP::Response::base now looks for 'Content-Base',
2428
    'Content-Location' and 'Base' headers.
2429
2430
 o  Avoid warning in LWP::MediaTypes if $ENV{HOME} is not defined.
2431
2432
 o  The new $ua->parse_head() method can be used to turn off
2433
    automatic initialization of response headers from the <HEAD>
2434
    section of HTML documents.
2435
2436
 o  Added eq() method for URI::URL objects
2437
2438
 o  The HTML::Formatter recovers even if a handle method is not defined
2439
    for all tags found during traversal
2440
2441
2442
2443
Sun May 26 1996   Gisle Aas <aas@sn.no>
2444
2445
 o  Release 5.00.
2446
2447
 o  LWP::Simple::head() now return something useful in scalar context.
2448
2449
 o  Rewritten the HTML::Parse stuff.  Introduced the HTML::Parser class
2450
    that will tokenize a HTML document.  The rest of the old
2451
    HTML::Parse functionality has moved to HTML::TreeBuilder class.
2452
    Note, that the HTML stuff is still alpha.
2453
2454
 o  Implemented HTML::HeadParser.  This is a lightweight parser for
2455
    the <HEAD> section of a HTML document.
2456
2457
 o  HTML::Element had problem with presenting things like <foo
2458
    bar="bar">.
2459
2460
 o  HTML::Entities: Included additional ISO-8859/1 entities listed in
2461
    RFC1866.
2462
2463
 o  HTML::AsSubs exported 'header' instead of 'head'
2464
2465
 o  We know about a few more of the HTML 3.2 element.
2466
2467
 o  HTTP::Date had problems with years before 1970, because Time::Local
2468
    went into an infinite loop.  Check for this.
2469
2470
 o  Added $header->title method.
2471
2472
 o  Made $header->authorization_basic return "uname:passwd" in scalar
2473
    context
2474
2475
 o  LWP::Protocol::collect() will let the HTML::HeadParser look at the
2476
    document content as it arrives.  This will initialize headers from
2477
    elements like <base href="...">, <title>...</title> and <meta
2478
    http-equiv="..." ...>.
2479
2480
 o  Simplified $response->base implementation, because we don't have
2481
    to look into the content any more.
2482
2483
 o  Added -quiet option to lwp-rget
2484
2485
 o  Typo fixes and some documentation additions.
2486
2487
2488
2489
Thu May  9 1996   Gisle Aas <aas@sn.no>
2490
2491
 o  Release 5b13
2492
2493
 o  Made URI::URL::strict(0) the default.  I got tired of all this
2494
    eval { } stuff just to recover.  The URI::URL::strict'ness also
2495
    determine if calling some standard method that happens to be
2496
    illegal for some protocol scheme will croak or just be ignored.
2497
2498
 o  Ensure correct $INPUT_RECORD_SEPARATOR and $OUTPUT_RECORD_SEPARATOR
2499
    at places where we <> or print.
2500
2501
 o  Always localize $_ before any 'while(<FILE>) {}'-loops
2502
2503
 o  Implemented $protocol->collect_once() and simplified several
2504
    of the protocol implementations by using it.
2505
2506
 o  The HTML parser used to get it wrong if you were unlucky about the
2507
    breakup of the text. An example of broken behaviour was this:
2508
2509
        $html = parse_html "<!-- A comment -";
2510
        $html = parse_html "-> and some text.";
2511
2512
 o  The HTML parser does not ignore whitespace-only text any more.
2513
2514
 o  HTML::Parse warnings are now optional and turned off by default.
2515
2516
 o  New start for $html->as_HTML().
2517
2518
 o  Fixed some typos
2519
2520
2521
2522
Wed Apr 24 1996   Gisle Aas <aas@sn.no>
2523
2524
 o  Release 5b12
2525
2526
 o  New utility program called 'lwp-rget'.
2527
2528
 o  $response->base was broken for HTML documents
2529
2530
 o  New fancy LWP::Debug import() method.  Can now turn on debugging with
2531
    "use LWP::Debug '+';"
2532
2533
 o  Trap exceptions (die) from the response callback routine
2534
2535
 o  The RobotUA now requires an e-mail address of the person reponsible
2536
    for the robot.
2537
2538
 o  New $ua->from() method.
2539
2540
 o  Support for gopher Index-Search (gopher type '7' requests).
2541
    Contributed by Harry Bochner <bochner@das.harvard.edu>
2542
2543
 o  Cleaned up white-space usage in the source.
2544
2545
2546
2547
Wed Apr  3 1996   Gisle Aas <aas@sn.no>
2548
2549
 o  Release 5b11
2550
2551
 o  Implemented a NNTP protocol module.  The library can now fetch and
2552
    post news articles.
2553
2554
 o  More documentation
2555
2556
 o  Don't look at the URI header for redirects
2557
2558
 o  New $res->base() method for HTTP::Responses
2559
2560
 o  Graham Barr's patch to File::Listing to make it more OO internally
2561
2562
 o  content_type() return value is canonicalized
2563
2564
 o  $ua->request() does not die on bad URLs any more
2565
2566
 o  LWP::MediaTypes merge all media.types files that if finds
2567
2568
 o  FTP request with content to file or callback did not work
2569
2570
 o  The value of HTTP Host: header is now $url->netloc;
2571
2572
 o  The URI::URL constructor now accept URLs wrapped up in "<>"
2573
2574
 o  $url->abs() now has a second optional argument that makes it accept
2575
    that relative URLs can have scheme, i.e. treat "http:img.gif" as a
2576
    relative URL.
2577
2578
 o  Added prototypes to the HTTP::Status::is_xxx() functions
2579
2580
 o  Added prototypes to the MIME:: encoding/decoding functions
2581
2582
 o  Always return scheme for mailto and news URLs (as_string)
2583
2584
 o  RobotRules patches from Henry A Rowley.
2585
2586
 o  More tests
2587
2588
 o  <SMALL> and <BIG> again
2589
2590
2591
2592
Thu Mar 14 1996   Gisle Aas <aas@sn.no>
2593
2594
 o  Release 5b10
2595
2596
 o  GET ftp://host/doc was never successful for normal files.
2597
2598
 o  LWP::Socket: read_until() did not notice EOF condidtion.  I.e. if
2599
    a HTTP server closed the connection before any output was generated,
2600
    the we continued to read 0 bytes in a busy loop until the alarm()
2601
    killed us.
2602
2603
 o  Added support for Digest Access Authentication.  Contributed by
2604
    Doug MacEachern <dougm@osf.org>.
2605
2606
 o  Makefile.PL: check for MD5 library
2607
2608
 o  No longer print message content in HTTP::Response::error_as_HTML()
2609
2610
 o  Access to "file:/path" gave warning when the envirionment variable
2611
    no_proxy was set.
2612
2613
 o  The http-post test sends a Content-Type header.  Some servers hang
2614
    if this header is missing.
2615
2616
 o  HTML::Parse:
2617
     -   allow <SMALL> and <BIG> tags
2618
     -   allow empty attribute values
2619
2620
2621
2622
Tue Mar  5 1996   Gisle Aas <aas@sn.no>
2623
2624
 o  Release 5b9
2625
2626
 o  Started to write on the libwww-perl cookbook (lwpcook.pod)
2627
2628
 o  The URI::URL module now exports the function url().  This is an
2629
    alternative (easy to use) constructor function.
2630
2631
 o  Expanding relative file URLs starting with "#" did not work.
2632
2633
 o  Fixed autoloaded DESTROY problem by adding empty DESTROY routine
2634
    to URI::URL.
2635
2636
 o  Does not try generate password for ftp-URLs unless the username is
2637
    "anonymous" or "ftp"
2638
2639
 o  The LWP::Simple user agent proxy settings are intialized from
2640
    the proxy environment variables. 
2641
2642
 o  LWP::Protocol::ftp: Use the Net::FTP library to access ftp servers.
2643
    Convert directories to HTML on request (Accept: text/html).
2644
2645
 o  New module HTTP::Negotiate
2646
2647
 o  New module File::Listing
2648
2649
 o  HTTP::Date::str2time can parse a few more formats, like the 'ls -l'
2650
    format and ISO 8601.  The function now also takes an optional second
2651
    parameter which specify a default time zone.
2652
2653
 o  Added prototypes to the HTTP::Date functions.
2654
2655
 o  The library adds a timestamp to responses ("Client-Date")
2656
2657
 o  HTTP::Status:  Updated to proposed HTTP/1.1
2658
2659
 o  HTTP::Headers: Updated to proposed HTTP/1.1
2660
2661
 o  LWP::Protocol::http:  Updated to HTTP/1.1 methods
2662
2663
 o  Took out stringify overloading in HTML::Element.
2664
2665
2666
2667
Mon Feb 26 1996   Gisle Aas <aas@sn.no>
2668
2669
 o  Release 5b8
2670
2671
 o  Renamed functions using thisStyleOfNames to this_style_of_names.
2672
    Provided a script called 'update_from_5b7'
2673
2674
 o  Renamed the 'request' and 'mirror' scripts to 'lwp-request' and
2675
    'lwp-mirror'.  The GET, POST, HEAD aliases for 'lwp-request' are
2676
    the same.
2677
2678
 o  Implemented LWP::RobotUA
2679
2680
 o  Class name for RobotRules did not match the file name
2681
2682
 o  URI::URL
2683
      - perl5.002gamma is required (because use vars).
2684
      - The leading slash in now part of the path if it is present.
2685
      - More documentation
2686
      - Use AutoLoader to speed things up.
2687
      - New class URI::URL::_login and made telnet, rlogin, tn3270
2688
        subclasses from this one.
2689
      - URI::URL::wais is better supported.
2690
      - URI::URL::news is better supported.
2691
      - New URI::URL::mailto methods: user/host
2692
2693
 o  HTTP::Date::time2str now works correctly with '0' as argument
2694
2695
 o  HTTP::Message delegates unknown methods to the headers.
2696
2697
 o  HTTP::Request::uri is an alias for HTTP::Request::url.  Can set
2698
    the URL to undef.
2699
2700
 o  Added convenience methods to HTTP::Headers for easy access to
2701
    frequently used headers.
2702
2703
 o  Simplified LWP::Debug
2704
2705
 o  Use standard AutoLoader for LWP::IO functions.
2706
2707
 o  Played with the profiler (Devel::DProf) and made some things
2708
    go quicker.
2709
2710
 o  Included the File::CounterFile module.  Excluded Mail::Cap module
2711
    as it is also part of the MailTools package.
2712
2713
2714
2715
Mon Feb  5 1996   Gisle Aas <aas@sn.no>
2716
2717
 o  Release 5b7
2718
2719
 o  Perl5.002 is required now
2720
2721
 o  Rewrite of the URI::URL module (version 4.00)
2722
      - escaping/unsafe stuff redone (and removed)
2723
      - URI::URL::_generic moved out of URL.pm
2724
      - netloc, path, params, query is now stored internally in escaped form
2725
      - new methods for URI::URL::_generic are:
2726
           epath
2727
           eparams
2728
           equery
2729
	   path_components
2730
           absolute_path
2731
      - new methods for URI::URL::http are:
2732
           keywords
2733
           query_form
2734
      - new methods for URI::URL::file are:
2735
           newlocal
2736
           local_path
2737
           unix_path
2738
           dos_path
2739
           mac_path
2740
           vms_path
2741
2742
 o  URI::Escape now semi-compile regular expressions (by evaling an
2743
    anonymous sub).  Same techinque is also used in HTML::Entities.
2744
2745
 o  HTTP::Date parser rewritten using regular expressions.
2746
2747
 o  HTTP::Headers->as_string() now croaks if any field values
2748
    contain newline.
2749
2750
 o  HTTP::Status constants use empty prototype.
2751
2752
 o  Font metrics moved to a new subdirectory (lib/Font/Metrics)
2753
2754
 o  Don't use the VERSION script any more (even if it was very clever)
2755
2756
 o  HTML::Entities will now export the names decode_entities() and
2757
    encode_entities().
2758
2759
 o  Andreas Koenig's black patch to HTML::Element.
2760
2761
 o  The HTML::Formatter now knows about <menu> and <dir> tags
2762
2763
 o  The construct "defined ref($arg)" did not work on perl5.002
2764
    becase ref now always return something defined.
2765
2766
 o  LWP::UserAgent sends by default an 'User-Agent' header.
2767
2768
 o  LWP::Simple sends 'User-Agent' header to servers.
2769
2770
 o  Updated the LWP::Socket module to use the new Socket.pm interface.
2771
2772
 o  LWP::Protocol::http sends the new HTTP/1.1 'Host' header.
2773
2774
 o  LWP::Protocol::file use $url->local_path to get a file to open.
2775
    It also inserts a <BASE> tag in directories instead of a redirect.
2776
2777
 o  MIME::Base64 routines can be called as MIME::Base64::encode() and
2778
    MIME::Base64::decode().  Same kind of thing for QuotedPrint.
2779
2780
2781
2782
Mon Nov  6 1995   Gisle Aas <aas@oslonett.no>
2783
2784
 o  Release 5b6
2785
2786
 o  Installation should work better for those that still runs
2787
    perl4 as 'perl'.  The mirror script is not installed by
2788
    default.
2789
2790
 o  LWP::Socket::_getaddress() Numerical IP adresses did not work.
2791
2792
 o  LWP::Socket::pushback() did not work.  This also avoids the bad
2793
    pp_select() core dump from perl.
2794
2795
 o  LWP::IO now also selects on socket exceptions.
2796
2797
 o  HTML::Parse:  Ignore <!DOCTYPE ...> regardless for case.  Some
2798
    bad insertElement() calls made infinite loops.
2799
2800
 o  The uri.t test works better for places where /tmp is a sym-link.
2801
2802
2803
2804
Sat Sep 16 1995   Gisle Aas <aas@oslonett.no>
2805
2806
 o  Release 5b5
2807
2808
 o  newlocal URI::URL does not put "//localhost" into the URLs any
2809
    longer.
2810
2811
 o  The request program: New -o option to reformat the HTML code
2812
    New -C option to provide credentials on the command line.
2813
    The -b option never worked.
2814
2815
 o  LWP::Protocol::file now returns redirect for access to directories
2816
    where the trailing slash is missing.
2817
2818
2819
2820
Thu Sep 14 1995   Gisle Aas <aas@oslonett.no>
2821
2822
 o  Speedups and bug fixes in the HTML parser.  The parser now
2823
    understands some more depreciated tags (like <xmp> and <listing>).
2824
2825
 o  HTML::Elements are now stingified using perl overloading.
2826
    The interface to the traverse() callback has changed.
2827
2828
 o  Implemented HTML formatters for plain text and Postscript.
2829
2830
 o  Added lib/Font stuff to support the Postscript formatter.
2831
2832
 o  Inspired by Tim Bunce, I implemented the HTML::AsSubs module.
2833
    Don't know if it is really useful.
2834
2835
 o  The local/get test does not use /etc/passwd any more.
2836
2837
2838
2839
Thu Sep  7 1995   Gisle Aas <aas@oslonett.no>
2840
2841
 o  Changed package name to libwww-perl-5xx
2842
2843
 o  Made LWP::Protocol::ftp actually transfer data
2844
2845
 o  Implemented methods for LWP::Socket to act as a server:
2846
    bind(), listen(), accept(), getsockname(), host(), port()
2847
2848
2849
2850
Wed Sep  6 1995   Gisle Aas <aas@oslonett.no>
2851
2852
 o  Release 0.04
2853
2854
 o  Implemented modules to parse HTML.
2855
2856
2857
2858
Mon Sep  4 1995   Gisle Aas <aas@oslonett.no>
2859
2860
 o  Implemented Mail::Cap which will become part of the MailTools
2861
    package.
2862
2863
 o  Moved Base64 to MIME::Base64.  Reimplemented MIME::Base64 by using
2864
    [un]pack("u",...)   Implemented LWP::MIME::QuotedPrint for
2865
    completness sake.  Routine names has changed as suggested by Tim
2866
    Bunce.
2867
2868
 o  LWP::MediaType reads default types from media.types file.
2869
    guessMediaType() now also returns encodings.  New function mediaSuffix()
2870
2871
 o  Pass $url to $ua->getBasicCredentials().  This also fixes security
2872
    hole with the old implementation of getBasicCredentials().
2873
2874
 o  LWP::Protocol::file now sets Content-Encoding headers
2875
2876
 o  Allow request content to be provided by a callback routine.
2877
2878
 o  Fix bug that prevented response callback to work.  The first parameter
2879
    (data) is no longer a reference, because $_[0] is already a reference.
2880
    Don't callback unless successful response.  Callbacks during redirects
2881
    was confusing.
2882
2883
 o  URI::URL.  Remove port from netloc if it is the default port.
2884
    Don't use anything, just require.
2885
2886
 o  HTTP::Message->addContent() does not need a reference parameter.
2887
2888
 o  LWP::Socket->open() has been renamed top LWP::Socket->connect()
2889
    LWP::Socket->close has gone.  Implemented new method LWP::Socket->read()
2890
    that returns as fast as it has some data to offer.  Implemented
2891
    LWP::Socket->pushback().
2892
2893
 o  Does not die in LWP::UserAgent->request()
2894
2895
 o  LWP::Socket now use LWP::IO for low level IO
2896
2897
 o  Implemented LWP::TkIO as a replacement module for LWP::IO when using Tk.
2898
2899
2900
2901
Thu Aug 17 1995   Gisle Aas <aas@oslonett.no>
2902
2903
 o  $ua->redirectOK() for checking redirects
2904
2905
 o  reorganized tests in the "t" directory.
2906
2907
2908
2909
Fri Aug 11 1995   Gisle Aas <aas@oslonett.no>
2910
2911
 o  Release 0.03
2912
2913
 o  Included RobotRules.pm from Martijn Koster
2914
2915
2916
2917
Thu Aug 10 1995   Gisle Aas <aas@oslonett.no>
2918
2919
 o  New module URI::Escape (URI::URL use this module for default
2920
    escaping) that provide the uri_escape() and uri_unescape()
2921
    functions.
2922
2923
 o  Setting $url->scheme now changes the class of the object.
2924
2925
 o  Made $httpurl->user() and $httpurl->password() illegal.
2926
    Likewise for other URL schemes.
2927
2928
2929
2930
2931
Wed Aug  9 1995   Gisle Aas <aas@oslonett.no>
2932
2933
 o  Reorganisation as discussed on <libwww-perl@ics.uci.edu>
2934
       LWP::Date       --> HTTP::Date
2935
       LWP::MIMEheader --> HTTP::Headers
2936
       LWP::StatusCode --> HTTP::Status
2937
       LWP::Message    --> HTTP::Message
2938
       LWP::Request    --> HTTP::Request
2939
       LWP::Response   --> HTTP::Response
2940
       LWP::MIMEtypes  --> LWP::MediaTypes
2941
2942
 o  HTTP::Date parses ctime format with missing timezone as suggested
2943
    by Roy Fielding <fielding@beach.w3.org>
2944
2945
 o  HTTP::Status and LWP::MediaTypes exports their functions by default.
2946
2947
 o  Splitted up the URI::URL module.  Schemes are implemented by separate
2948
    files that are autoloaded when used.  Self test moved to "t/uri.t".
2949
2950
2951
       
2952
Mon Aug  7 1995   Gisle Aas <aas@oslonett.no>
2953
2954
 o  Applied patch from Marc Hedlund <hedlund@best.com>
2955
       - Update the @header_order according to the August 3rd draft.
2956
       - Added Response Header fields: 'Location', 'Public', 'Retry-After',
2957
         'Server', and 'WWW-Authenticate'.
2958
       - Moved 'unknown header' handling from &scan to &header. The old
2959
         implementation was forcing all unknown header-words to begin with
2960
	 an uppercase (as it should be), but disallowed other uppercase
2961
	 letters.
2962
       - updates the status code messages under the August
2963
         3rd HTTP/1.0 draft.  '203' became 'Non-Authoritative Information',
2964
	 '303' became 'See Other', and a new code,
2965
	 '411 Authorization Refused', was added.
2966
2967
 o  Can remove multiple headers with single removeHeader() call in MIMEheader.
2968
2969
 o  Can assign multiple field/value pairs in header() method of MIMEheader.
2970
2971
 o  A field with multiple values is printed as separate values in
2972
    MIMEheader::as_string().
2973
2974
 o  LWP::Response contain new attributes: previous() and request().  These
2975
    attributes are updated by the UserAgent.
2976
2977
 o  Appended \n to some die statements in Socket so that line numbers are
2978
    suppressed in error messages.
2979
2980
 o  Made UserAgent::clone work for reference members
2981
2982
 o  Check for redirect loops and multiple authorization failures by
2983
    examination of the response chain.
2984
2985
 o  Use "\015\012" instead of "\r\n" in protocol modules.  Some systems
2986
    define \r and \n differently.
2987
2988
 o  request program can now handle documents that needs autorization by
2989
    prompting the user for username/password. Added new -S option to print
2990
    request/response chain.
2991
2992
2993
  
2994
Tue Jul 25 1995   Gisle Aas <aas@oslonett.no>
2995
2996
 o  Release 0.02
2997
2998
 o  Included URI::URL in the release
2999
3000
3001
3002
Mon Jul 24 1995   Gisle Aas <aas@oslonett.no>
3003
3004
 o  Incorporated Makemake.PL and VERSION from Andreas Koenig <koenig@mind.de>
3005
    As a result of this the following things have changed:
3006
       - programs in "bin" are extracted from .PL-files
3007
       - reintroduced "lib"
3008
       - "test" has been renamed as "t"
3009
       - test programs in "t" has been made Test::Harness compatible
3010
       - we now have a MANIFEST file
3011
       - no more need fro update_version, make-dist, lwp-install
3012
3013
 o  Renamed bin/get to bin/request.  Links to it are now all upper case.
3014
3015
 o  Proxy support in bin/request (provided by Martijn Koster)
3016
3017
 o  UserAgent can now load proxy settings from environment
3018
3019
 o  LWP::Protocol::ftp is under way but not really finished
3020
3021
3022
3023
Tue Jul 18 1995   Gisle Aas <aas@oslonett.no>
3024
3025
 o  Implemented LWP::Protocol::gopher
3026
3027
 o  Implemented LWP::Protocol::mailto
3028
3029
 o  Fixed proxy typo
3030
3031
3032
3033
Mon Jul 17 1995   Gisle Aas <aas@oslonett.no>
3034
3035
 o  Made release 0.01
3036
3037
3038
3039
Mon Jul 17 1995   Gisle Aas <aas@oslonett.no>
3040
3041
 o  Don't loose first line of HTTP/0.9 requests
3042
3043
 o  LWP::Socket use syswrite() for writing
3044
3045
 o  Added RC_* documentation to LWP::StatusCode
3046
3047
 o  LWP::Date now use hash to look up month numbers
3048
3049
 o  Added -f option to "get"
3050
3051
 o  Untabify
3052
3053
 o  Added a "TODO" list
3054
3055
 o  Fixed various typos
3056
3057
3058
3059
Fri Jul 14 1995   Gisle Aas <aas@oslonett.no>
3060
3061
 o  Reorganized directories.  Moved LWP.pm up.  Moved file.pm and http.pm
3062
    into the LWP::Protocol direcotory.  Moved LWP out of the lib directory
3063
    and removed lib.
3064
3065
 o  Implemented the "get" and "mirror" scripts in the "bin" directory.
3066
3067
 o  Implemented "install-lwp", "update_version" and "make-dist".  The library
3068
    version number is found in the VERSION file.
3069
3070
 o  Always adds 1900 to the year in LWP::Date
3071
3072
 o  In LWP::MIMEheader:  Implemented clone(), removeHeader() and scan() 
3073
    methods.  Reimplemented asString.  Removed asMIME().  Moved "Good
3074
    Practice" into this file, and reimplemented it.
3075
3076
 o  Moved "header" and "content" into LWP::Message class.  This change made
3077
    LWP::Request and LWP::Response much simpler.  Made clone() method
3078
    actually work.
3079
3080
 o  LWP::Protocol::implementor does not die if it cannot load package.
3081
3082
 o  Moved UserAgent convenience methods into LWP::Simple.  Made LWP::Simple
3083
    export LWP::StatusCode symbols and functions.
3084
3085
 o  Implemented $ua->isProtocolSupported($scheme) method.
3086
3087
 o  Nicer directory listing in LWP::Protocol::file.pm
3088
3089
 o  Rely on URI::URL 3.00 behaviour for $url->full_path
3090
3091
 o  Library version number now in LWP.pm.  You should be able to say
3092
    "use LWP 1.0;" if you need at least this version.
3093
3094
 o  Various cleanups and arranging layout as I like it.  Use fooBar-style
3095
    (as opposed to foo_bar stype) everywhere.  This means that as_string()
3096
    now is called asString().
3097
3098
 o  Added more documentation.
3099
3100
3101
3102
Wed Jun 14 1995   Gisle Aas <aas@oslonett.no>
3103
3104
 o  Removed lot of rendundant & before function calls.
3105
3106
 o  $this --> $self
3107
3108
 o  &collector passes content as a reference, don't want to copy so much
3109
3110
 o  parameterlist to collect callback has been rearranged
3111
3112
 o  Response::addContent gets a reference to the data
3113
3114
 o  Added some callback documentation to UserAgent.pm
3115
3116
 o  Protocol::file now uses the collector
3117
3118
 o  Introduced LWP::Simple
3119
3120
3121
3122
Sun Jun 11 1995   Martijn Koster <m.koster@nexor.co.uk>
3123
3124
 o  Added basic authentication support
3125
3126
 o  Added mirroring of single documents
3127
3128
 o  Change Protocol construction from whacky URL.pm (constructor returns
3129
    subclass) to more normal C++'ish way.
3130
3131
3132
3133
Wed June 7 1995   Martijn Koster <m.koster@nexor.co.uk>
3134
3135
 o  Minor cleanups from printed code inspection
3136
3137
3138
3139
Wed May 24 1995   Martijn Koster <m.koster@nexor.co.uk>
3140
3141
 o  Added redirection resolution
3142
3143
 o  Added optional autoloading of protocols
3144
3145
3146
3147
Tue May 23 1995   Martijn Koster <m.koster@nexor.co.uk>
3148
3149
 o  Separated socket stuff into separate module
3150
3151
 o  Added HTTP proxy support
3152
3153
 o  Made alarm handling optional
3154
3155
 o  Added a LWP::Message for completeness sake
3156
3157
 o  Added LWP::MemberMixin to reduce code duplication
3158
3159
 o  Cosmetic changes to LWP::Date
3160
3161
 o  Renamed LWP::Error to LWP::StatusCode
3162
3163
 o  Renamed LWP::MIME to LWP::MIMEtype
3164
3165
 o  Changed the tests to cope with all this
3166
3167
It's getting there...
3168
3169
3170
3171
Mon May 22 1995   Martijn Koster <m.koster@nexor.co.uk>
3172
3173
 o  Changed the socket reading to use sysread.  This will have to go
3174
    into a module of its own.
3175
3176
3177
3178
Thu 18 May 1995   Martijn Koster <m.koster@nexor.co.uk>
3179
3180
 o  Mentioned on libwww-perl that I had changed the classes around lots.