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