2009-06-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
[mono.git] / mcs / class / System / System.Net / ChangeLog
1 2009-06-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
2
3         * WebConnectionStream.cs: close the underlying socket if there's an
4         exception when closing the stream. Fixes bug #514996.
5
6 2009-06-20  Gert Driesen  <drieseng@users.sourceforge.net>
7
8         * WebConnectionStream.cs: Keep count of all bytes written, and perform
9         write overflow check in both buffered and non-buffered writing (if
10         not using chunked transfer encoding). Fixes bug #510642.
11
12 2009-06-20  Gert Driesen  <drieseng@users.sourceforge.net>
13
14         * WebClient.cs: Use lowercase hex bytes to match MS. Avoid using
15         zero-length string literal. Fixed exception argument name to match
16         MS. 
17         * WebConnectionStream.cs: Throw a WebException that wraps an
18         IOException when closing the stream before all bytes are written.
19
20 2009-06-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
21
22         * WebConnection.cs: make sure we don't open a new socket if the
23         request is aborted before we establish the connection. Fixes bug
24         #514591.
25
26         * HttpWebRequest.cs: new property to return abort status. Invoke the
27         abort handler before doing anything else when Abort() is called for
28         the first time.
29
30 2009-06-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
31
32         * EndPointListener.cs: call CheckIfRemove() after removing a regular
33         prefix. Fixes bug #513849.
34         * EndPointManager.cs: make sure we use the right lock when one prefix
35         of a collection fails to be added and we need to remove all of the
36         prefixes.
37         Clear the ip_to_endpoints hashtable if there are no more prefixes
38         listening on that address.
39
40 2009-06-16 AndrĂ©s G. Aragoneses <aaragoneses@novell.com>
41
42         * WebConnection.cs: propagate the exception to the request.
43         * WebException.cs: new internal ctor.
44         * HttpWebRequest.cs: use new ctor to encapsulate the innerException.
45         Fixes #323452.
46
47 2009-06-15 Gonzalo Paniagua Javier <gonzalo@novell.com>
48
49         * HttpWebRequest.cs: for unknown methods, always send the request once
50         we are connected even if there's no writeStream. Fixes bug #513087.
51
52 2009-06-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
53
54         * HttpWebRequest.cs: ProtocolViolationException is not thrown in
55         certain cases since 2.0. Fixes bug #508027.
56
57 2009-06-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
58
59         * HttpWebRequest.cs: follow MS docs when throwing
60         ProtocolViolationException at the beginning of an asynchronous
61         operation. Fixes bug #465613.
62
63 2009-06-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
64
65         * WebConnectionStream.cs: throw a WebException instead of an IOException.
66
67 2009-06-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
68
69         * FtpWebRequest.cs: avoid exception when the reply from the server
70         contains just response code. Fixes bug #510852.
71
72 2009-06-05  Sebastien Pouliot  <sebastien@ximian.com> 
73
74         * DownloadStringCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
75         * OpenReadCompletedEventArgs.cs: Remove Address property since it's 
76         not part of SL2. Call RaiseExceptionIfNecessary
77         * OpenWriteCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
78         * UploadStringCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
79
80 2009-06-05  Robert Jordan  <robertj@gmx.net>
81
82         * WebClient.cs (UploadValuesCore): Encode POST arguments with UTF-8.
83         Fixes bug #484795.
84
85 2009-06-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
86
87         * HttpWebRequest.cs: KeepAlive check not needed.
88         Fixes bug #465613.
89
90 2009-06-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
91
92         * HttpConnection.cs: unbind the context after every read for keep-alive
93         connections.
94         Bug #502274 fixed.
95
96 2009-05-17  Gert Driesen  <drieseng@users.sourceforge.net>
97
98         * CookieContainer.cs: Provide meaningful information in exception
99         messages, and improve compatibility with MS. Modified set_Capacity to
100         no longer change MaxCookieSize when new value is less than
101         MaxCookieSize.
102
103 2009-05-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
104
105         * HttpWebResponse.cs:
106         * HttpWebRequest.cs: support automatic decompression of the response.
107         Fixes bug #504391.
108
109
110 2009-05-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
111
112         * Dns.cs: made GetHostAddresses and friends internal for 1.x
113         * EndpointPermission.cs: use GetHostAddresses.
114
115 2009-05-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
116
117         * CookieContainer.cs: matching hosts to domain names like MS does.
118         Bug #421827 fixed.
119
120 2009-05-02  Atsushi Enomoto  <atsushi@ximian.com>
121
122         * CredentialCache.cs : implement all not-implemented methods.
123           Patch by Mineda Nozomi. Close bug #499556.
124
125 2009-04-21  Sebastien Pouliot  <sebastien@ximian.com>
126
127         * EndPoint.cs: Throw NotImplementedException instead of 
128         NotSupportedException
129         * IPEndPoint.cs: Fix some validations.
130
131 2009-04-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
132
133         * WebConnection.cs:
134         * HttpWebRequest.cs: provide more information on why the connection
135         could not be established.
136
137 2009-04-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
138
139         * FtpWebRequest.cs: send REST after PASV to avoid some servers
140         forgetting aboout it.
141         Bug #491590 fixed.
142
143 2009-03-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
144
145         * FtpWebRequest.cs: we were sending CWD instead of PWD.
146         Bug #486703 fixed.
147
148 2009-03-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
149
150         * IPAddress.cs: don't allocate the IPv6 array for IPv4 addresses.
151
152 2009-02-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
153
154         * WebClient.cs: append the QueryString in DownloadData.
155         Fixes bug #323788.
156
157 2009-02-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
158
159         * FtpWebResponse.cs: return a Null stream when there's no response to
160         be read.
161         * FtpWebRequest.cs: provide the error returned by the server in the
162         exception.
163         * WebClient.cs: set the correct method when doing a FTP upload.
164         Fixes bug #478451.
165
166 2009-02-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
167
168         * FtpWebRequest.cs: avoid errors when creating a temporary Uri to get
169         the local path.
170         * WebClient.cs: when setting up the request for downloading, use the
171         default method. Fixes bug #477611.
172
173 2009-02-16  Atsushi Enomoto  <atsushi@ximian.com>
174
175         * WebConnectionStream.cs : use request only after it is set.
176
177 2009-02-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
178
179         * WebConnectionStream.cs: implemente (Read|Write)Timeout.
180         Fixes bug #348159.
181
182 2009-02-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
183
184         * CookieContainer.cs: separate cookies with "; " instead of just ';'.
185         Fixes bug #386727.
186
187 2009-02-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
188
189         * HttpWebRequest.cs: lock SetResponseError.
190
191 2009-02-08  Gert Driesen  <drieseng@users.sourceforge.net>
192
193         * Dns.cs: BeginGetHostAddresses - renamed argument to match MS,
194         reject "any" IP addresses. BeginGetHostEntry - renamed argument
195         to match MS, reject "any" IP addresses. GetHostEntry - reject
196         "any" IP addresses. GetHostAddresses - reject "any" IP addresses.
197         GetHostByName - use "hostName" as paramname in ANE.
198
199 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
200
201         * Dns.cs: empty string for host (also 0.0.0.0) is just passed to the
202         runtime, which will then retrieve the local IP addresses. Fixes bug
203         #386637 part 2/2.
204
205 2009-02-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
206
207         * FtpWebRequest.cs: some servers have a comment after the directory
208         name. Fixes bugs #471149 and #471216.
209
210 2009-02-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
211
212         * WebConnectionStream.cs: set the content length to 0 when the
213         response is not supposed to have any content.
214
215 2009-02-05  Miguel de Icaza  <miguel@novell.com>
216
217         * WebConnectionStream.cs: Prevent a nullref here.   This might
218         have to be backported to 2.2 and 2.4
219
220 2009-02-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
221
222         * WebConnection.cs:
223         * HttpWebRequest.cs: calling Abort is safe now if the request has been
224         read entirely.
225
226 2009-02-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
227
228         * WebProxy.cs: use TryParse when checking for a localhost IP.
229
230 2009-01-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
231
232         * HttpWebResponse.cs: avoid throwing an exception when
233         Content-Length is not present.
234
235 2009-01-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
236
237         * HttpWebRequest.cs: added locking in SetResponseData for the case
238         when we get an error response before BeginGetResponse has been
239         called.
240
241 2009-01-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
242
243         * IPAddress.cs: handle sign extension for the high byte when using the
244         byte[] ctor for an IPv4 address.
245         Fixes bug #467472.
246
247 2009-01-19  Marek Habersack  <mhabersack@novell.com>
248
249         * HttpWebRequest.cs: implemented the UseDefaultCredentials
250         property, patch from Florian Maetschke <f.maetschke@tu-bs.de>,
251         thanks!
252
253 2009-01-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
254
255         * FtpWebRequest.cs: adjust to the correct directory when listing too.
256         Fixes bug #466530.
257
258 2009-01-15 Gonzalo Paniagua Javier <gonzalo@novell.com>
259
260         * HttpListenerRequest.cs: always initialize 'version'.
261         * HttpConnection.cs: the socket might already be disconnected when
262         shutting down.
263
264 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
265
266         * WebConnectionStream.cs: if the buffer has been killed, return -1 for
267         its length. Fixes regression in System.Runtime.Remoting.
268
269 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
270
271         * HttpWebRequest.cs: create a result from the response when
272         *GetResponse() has not been called yet and we have already received
273         all the data.
274         Fixes bug #464013.
275
276 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
277
278         * HttpWebRequest.cs: keepAlive is of no use here.
279         Fixes bug #465613.
280
281 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
282
283         * HttpConnection.cs: we were not writing the headers for 0-length
284         responses.
285         * WebConnectionStream.cs: for 204/304 responses with an explicit
286         content-length of 0, release the socket only once.
287         Fixes bug #465638.
288
289 2009-01-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
290
291         * FtpWebRequest.cs: now deleting a file works when we're not in the
292         root directory.
293
294 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
295
296         * IPAddress.cs: avoid throwing when parsing a subnet.
297
298 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
299
300         * HttpConnection.cs: remove CWL. When reusing, BeginReadRequest might
301         throw if the client closes.
302         * HttpListenerResponse.cs: close the connection for 1.0 clients.
303
304 2008-11-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
305
306         * FtpDataStream.cs: use the socket for reading until the end of a
307         stream that wasn't read entirely. Remove unused ManualResetEvent.
308         * FtpWebRequest.cs: set the file_name when downloading. Update the
309         response status after every SendCommand. Send a "OPTS utf8 on" as MS
310         does (the control cnc reader should do something with UTF8)
311
312 2008-11-04 Gonzalo Paniagua Javier <gonzalo@novell.com>
313
314         * WebRequest.cs: if the cache level is NoCacheNoStore, don't throw
315         when setting the CachePolicy.
316
317 2008-11-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
318
319         * FtpWebRequest.cs: take the server current directory into account
320         when uploading files. Set the data connection type before every
321         transmission.
322         Bug 333985 fixed.
323
324 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
325
326         * FtpWebRequest.cs: disable keep-alive connections as the current code 
327         does not deal with keep-alive connections.
328         Workaround for bug #380262.
329
330 2008-10-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
331
332         * WebConnectionStream.cs: when there's a NTLM authentication in
333         progress, don't let the connection be used by the next request if we
334         have the entire response in the input buffer.
335
336 2008-10-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
337
338         * HttpListenerResponse.cs: removed obsolete comment.
339         * ResponseStream.cs: don't read response.SendChunked until after
340         getting the response headers.
341
342 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
343
344         * ServicePointManager.cs: set the default limit of connections from
345         the configuration file(s) on startup.
346         Bug #339422 fixed.
347
348 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
349
350         * HttpWebRequest.cs: don't call ProxyRequest twice.
351         * WebConnectionData.cs: remove unused fields.
352
353         * WebConnection.cs:
354         * WebConnectionStream.cs: when setting the input buffer, check to see
355         if the entire response is already there and free up the request slot.
356         Fixes bug #423156.
357
358         * ResponseStream.cs:
359         * HttpListenerResponse.cs: buffer the headers so that they are sent
360         together with the data on the first Write (if any). The fix above
361         didn't work with our HttpListener without this.
362
363 2008-10-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
364
365         * WebConnection.cs:
366         * ServicePoint.cs:
367         * WebConnectionGroup.cs:
368         * HttpWebRequest.cs:
369         * WebConnectionStream.cs: reuse the same connection when doing NTLM
370         authentication. Fixes bug #323375.
371         Implemented support for UnsafeAuthenticatedConnectionSharing.
372
373 2008-10-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
374
375         * HttpConnection.cs:
376         * HttpListenerResponse.cs: fix typo that caused the "connection close"
377         header to be sent. Do not close the socket when the encoding is not
378         chunked and reuse is possible.
379         Fixes bug #433371.
380
381 2008-10-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
382
383         * HttpWebRequest.cs: if GetRequestStream has already been called,
384         return the same stream that we returned in the first call.
385         Fixes bug #429200.
386
387 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
388
389         * ServicePointManager.cs: better handling of possible collisions of the
390         hash for schema/host/port. Fixes bug #417891.
391
392 2008-10-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
393
394         * ChunkStream.cs: (ReadTrailer) make sure the array access is not out
395         of bounds. Fixes bug #322715.
396
397 2008-09-19 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
398
399         * WebConnectionStream.cs: when receiving a 0 content-length, free up
400         the slot for the next request immediately.
401         Fixes bug #427974.
402
403 2008-09-16  Miguel de Icaza  <miguel@novell.com>
404
405         * IPv6Address.cs: On the 2.0 profile, avoid throwing/catching
406         exceptions inside TryParse.
407
408 2008-09-12  Miguel de Icaza  <miguel@novell.com>
409
410         * HttpListenerPrefixCollection.cs, EndPointListener.cs,
411         HttpListener.cs, EndPointManager.cs, HttpConnection.cs: Remove
412         generics support where necessary to allow this code to be reused
413         in the 1.0 profile.
414
415 2008-09-08  Miguel de Icaza  <miguel@novell.com>
416
417         * EndPointListener.cs (SearchListener): Cope with the raw_url not
418         being merely a path, but potentially a full URI (see the proxy
419         case). 
420
421         * HttpListenerRequest.cs: Cope with raw_url not being merely a
422         path, but potentially a full Uri.   Also uses TryCreate, hoping
423         that one day it will be faster.
424
425 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
426
427         * WebConnectionStream.cs (WriteRequest): Fix the copying in the
428         previous patch, when bytes.Length != length.
429
430 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
431
432         * WebConnectionStream.cs (WriteRequest): For small requests,
433         cluster together the header + body in a single write call, avoids
434         the latency problems observed in an TLS application that makes
435         many web service calls. 
436
437 2008-08-22  Geoff Norton  <gnorton@novell.com>
438
439         * WebConnection.cs: Set NoDelay
440
441 2008-08-21  Stephane Delcroix  <sdelcroix@novell.com>
442
443         * OpenReadCompletedEventArgs.cs: new Address property for 2.1
444
445 2008-08-06  Miguel de Icaza  <miguel@novell.com>
446
447         * IPAddress.cs (ParseIPV6): Use an exception-less parser for ipv6
448         addresses.
449
450         * IPv6Address.cs: Rewrite most of the parsing code to not use that
451         incredibly fragile, hacky and hacky implementation.
452
453         (TryParse): Provide a exception-less parsing path.
454
455 2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>μ
456
457 2008-08-06  Atsushi Enomoto  <atsushi@ximian.com>
458
459         * IPAddress.cs : several IPv4 parsing fix exposed by bug #411920.
460
461 2008-08-05  Atsushi Enomoto  <atsushi@ximian.com>
462
463         * WebClient.cs : it should not invoke delegate directly, but should
464           call overridable OnDownloadProgressChanged.
465
466 2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>μ
467
468         * HttpWebResponse.cs: Initialize contentLength in ctor, as it must
469         remain accessible after the response is disposed (and the headers are
470         no longer available). Adding missing disposed checks in properties
471         (except for StatusCode) and GetResponseHeader. On the 2.0 profile,
472         headers must remain accessible after the HttpWebResponse is disposed.
473
474 2008-06-10  Stephane Delcroix  <sdelcroix@novell.com>
475
476         * IPAddress.cs: allow usage on 2.1 as smcs knows nothing about
477         string.GetEnumerator : IEnumerable<char>
478
479 2008-06-08  Miguel de Icaza  <miguel@novell.com>
480
481         * ResponseStream.cs: Do not Close the HttpResponse object here as
482         it is possible to issue multiple OutputStream.Close calls (they
483         actually happen implicitly through things like StreamWriter.Close,
484         and they are in various MSDN samples).
485
486 2008-05-28 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
487
488         * CookieContainer.cs: apply slightly modified patch from rulatir@wp.pl
489         that fixes bug #356537.
490
491 2008-04-30  Miguel de Icaza  <miguel@novell.com>
492
493         * WebPermission.cs (ToXml): To allow code that uses WebPermission
494         to be built. 
495
496 2008-04-21 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
497
498         * HttpWebResponse.cs: do not check the disposed status for properties
499         and methods that return response data other than the stream itself.
500         Fixes bug #381223.
501
502 2008-04-16  Marek Habersack  <mhabersack@novell.com>
503
504         * HttpWebRequest.cs: fix an off-by-one bug - the number of
505         redirects must not exceed the value of
506         MaximumAutomaticRedirections. Fixes bug #380131
507
508 2008-04-13  Jb Evain  <jbevain@novell.com>
509
510         * *_2_1.cs: move the specific 2.1 System.Net code to the
511         assembly System.Net.
512
513 2008-04-13  Jb Evain  <jbevain@novell.com>
514
515         * WebRequest_2_1.cs, WebResponse_2_1.cs: new files
516         * HttpWebRequest_2_1.cs, HttpWebResponse_2_1, WebHeaderCollection_2_1:
517         update to Silverlight 2.0b1 API.
518         Merged from the Moonlight 2 branch.
519
520 2008-04-06  <gnorton@novell.com>
521
522         * ListenerAsyncContext.cs: Fix Basic authentication support.  Patch from 
523         Maciej Paszta <paszczi@go2.pl>
524
525 2008-02-21  Zoltan Varga  <vargaz@gmail.com>
526
527         * HttpConnection.cs (Close): Close the socket even if Shutdown throws an exception.
528
529 2008-02-17  Daniel Nauck  <dna@mono-project.de>
530
531         * HttpWebResponse.cs: refactored cookie expires parsing to
532         allow all common expires datetime formats.
533
534 2008-02-09  Daniel Nauck  <dna@mono-project.de>
535
536         * HttpWebResponse.cs: convert UTC/GMT Expires DateTime from a cookie
537         into local time, also set the HttpOnly property if available.
538
539 2008-02-09  Daniel Nauck  <dna@mono-project.de>
540
541         * Cookie.cs: implemented HttpOnly
542
543 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
544
545         * IPAddress.cs (Parse): Changed argument name to match MS.
546         (TryParse): Changed argument name to match MS.
547         (ParseIPV4): Only treat zero-length or " " address as empty on 1.0
548         profile. On 2.0 profile, only ignore characters after blank if last
549         part is valid hex string.
550         * IPv6Address.cs: Removed extra spaces and tabs.
551
552 2008-01-26  Daniel Nauck  <dna@mono-project.de>
553
554         * HttpWebRequest.cs: fixed typo. Use the actual uri for correct
555         cookie header informations and not the originally one.
556
557 2008-01-26  Daniel Nauck  <dna@mono-project.de>
558
559         * Cookie.cs: set Version to '1' if Port is set,
560         don't include path and domain informations when version is 0,
561         match ToString () output with .NET 2.0,
562         fixes bug #316017
563
564 2008-01-15  Atsushi Enomoto  <atsushi@ximian.com>
565
566         * MonoHttpDate.cs : Parse() should return Local time. Fixed bug
567           #353495.
568
569 2008-01-12  Gert Driesen  <drieseng@users.sourceforge.net>
570
571         * WebClient.cs: Do not add trailing CRLF in UploadValuesCore. Fixes
572         standalone test for bug #351049.
573
574 2008-01-07  Sebastien Pouliot  <sebastien@ximian.com>
575
576         * CredentialCache.cs: Gendarme's AvoidToStringOnStringsRule in
577         CredentialCacheKey constructor. UseStringEmptyRule on CredentialCache
578         static ctor (3 times).
579
580 2007-12-27  Miguel de Icaza  <miguel@novell.com>
581
582         * WebClient.cs: We catch exceptions that happen on the helper
583         async threads toa void terminating the application on errors, and
584         also raise a variant of the OnXXXXCompleted methods that take an
585         Exception argument.
586
587         Note that this differs from the .NET implementation in that
588         we actually raise a signal on error, and set the exception, and in
589         their case no error is ever raised.
590
591         We now call CompleteAsync in the OnXXXCompleted handlers to ensure
592         that the WebClient can be reused immediately by the callback.
593
594         This fixes #350621.
595
596         This also should fix the bug report on IRC where someone
597         complained that they could not "chain" invocations to XXXAsync
598         methods from the OnXXXXCompleted handlers due to the WebClient
599         refusing to work if there was an ongoing operation
600
601 2007-12-24  Miguel de Icaza  <miguel@novell.com>
602
603         * WebClient.cs: Do not validate method to be null, we do not do
604         that in OpenWrite, the detection is done later on.  
605
606         Fixes #350622
607
608 2007-12-16  Miguel de Icaza  <miguel@novell.com>
609
610         * WebClient.cs: Got the arguments in the wrong order, fix
611
612 2007-12-12  Marek Habersack  <mhabersack@novell.com>
613
614         * WebClient.cs: DownloadProgressChanged is available only in the
615         2.0+ profiles.
616
617 2007-12-12  Miguel de Icaza  <miguel@novell.com>
618
619         * WebClient.cs (DownloadFileCore): use longs for the
620         ContentLength, although the other code (loading into a byte array,
621         or a string) still uses ints, the DownloadFileCore should not.
622
623 2007-12-11  Miguel de Icaza  <miguel@novell.com>
624
625         * WebClient.cs: 
626
627         Lots of fixes to get the *Async methods to work.
628         
629         * WebClient.cs: async, new boolean flag, used to track whether we
630         are an async invocation, and if so, we need to invoke some
631         methods. 
632
633         Switch to using System.Threading.Thread instead of the ThreadPool
634         as there is no way with the ThreadPool to abort threads (to
635         implemente CancelAsync). 
636
637         (CompleteAsync): Helper method used to clear the state after an
638         async operation completes, otherwise the WebClient can only be
639         used once. 
640
641         (CancelAsync): Use Thread.Interrupt to signal the thread that we
642         are aborting it (it is a lot milder than Thread.Abort, and we are
643         in no rush to cancel this anyways); Also the documentation states
644         that we need to call the WebRequest.Abort method, so we do that in
645         every Download instance.
646
647         (DownloadDataAsync, DownloadFileAsync, DownloadStringAsync,
648         OpenReadAsync, OpenWriteAsync, UplaodDataAsync, UploadFileAsync,
649         UploadStringAsync): Make signature parameters match MS; use
650         threads instead of threadpool (so we can implement CancelAsync),
651         catch ThreadAbortException here so we can also raise the proper
652         DownloadDataCompleteEventArgs.
653
654         These routines will also call the WebRequest.Abort when
655         appropriate when ThreadInterrupted is used.
656         
657         (ReadAll): Raise DownloadProgressChanged events.
658         
659 2007-12-03  Gert Driesen  <drieseng@users.sourceforge.net>
660
661         * WebClient.cs: Modified argument checks to match MS, and wrap
662         exceptions in a WebException. Fixes bug #343064.
663
664 2007-12-03  Miguel de Icaza  <miguel@novell.com>
665
666         * FtpWebRequest.cs: Applied patch from Jerome Haltom that fixes
667         multi-line responses (after my fix).
668
669         Closes #333978
670
671 2007-11-16  Marek Habersack  <mhabersack@novell.com>
672
673         * HttpWebRequest.cs: when folding a request into a GET one, set
674         content length to 0 and kill the buffers. Fixes bug #327314. Patch
675         from Geoff Norton <gnorton@novell.com>, thanks!
676
677 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
678
679         * WebRequest.cs : added missing ImpersonationLevel (NIE).
680         * SecurityProtocolType.cs : not [Serializable] in 2.0.
681         * ServicePoint.cs : no GetHashCode() in 2.0.
682         * WebRequestMethods.cs : fixed wrong STOU.
683         * FileWebResponse.cs : no Dispose(true) in 2.0 API.
684
685 2007-11-08  Jb Evain  <jbevain@novell.com>
686
687         * WebHeaderCollection_2_1.cs: add a custom WebHeaderCollection
688         for the 2.1 profile.
689
690 2007-11-07  Geoff Norton  <gnorton@novell.com>
691
692         * ListenerAsyncResult.cs: Only send the 401 header if our authentication
693         type is Basic or Negotiate (which we default to basic) because that is
694         all we support.  Set the WWW-Authenticate header when we return a 401 
695         result.  Send the correct state object in the async result.
696
697 2007-11-06  Geoff Norton  <gnorton@novell.com>
698
699         * ListenerAsyncResult.cs: If the HttpListener has an authentication
700         scheme, the user should be presented with a 401 without calling the 
701         callback.
702
703 2007-11-04  Miguel de Icaza  <miguel@novell.com>
704
705         * FtpWebRequest.cs (GetResponseStatus): Fix this routine
706         propertly, refactor, and make it follow Mono coding conventions.
707
708 2007-10-30  Jerome Haltom  (wasabi@larvalstage.net)
709
710         * FtpWebRequest.cs: adds support for ftp multiline results, fixes
711         #333978
712
713 2007-10-27  Miguel de Icaza  <miguel@novell.com>
714
715         * HttpListener.cs: Remove more trigger-happy disposed=true from
716         the code;   We should only dispose when the Dispose method is
717         actually called.   Not before.  
718
719         Fixes #337371
720
721         *  HttpListener.cs (Close): Closing does not mean dispose the
722         object.   This allows Start/Stop/Start to be called as many times
723         as desired.
724
725         Fixes #337368
726
727 2007-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
728
729         * FtpWebRequest.cs: Added support for DELETE.
730
731 2007-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
732
733         * WebRequest.cs: Changed serialization ctor to throw NIE on 1.0
734         profile. Cache default proxy, but still allow it to be explicitly set
735         to null. Removed commented code.
736
737 2007-10-14 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
738
739         * WebRequest.cs: DefaultWebProxy allows a null value. Fixes bug #323668.
740
741 2007-09-30  Gert Driesen  <drieseng@users.sourceforge.net>
742
743         * HttpListenerRequest.cs: Do not store 'method' in upper case, but
744         instead use case-insensitive comparison.
745
746 2007-09-30  Gert Driesen  <drieseng@users.sourceforge.net>
747
748         * HttpListenerRequest.cs: Removed dead code. USe String.Length to
749         check for zero-length string. Use instance field for is_chunked, and
750         also set it for GET/HEAD/DELETE. Fixed HasEntityBody to return true
751         when Content-Length > 0, or Transfer-Encoding is chunked.
752
753 2007-09-28  Marek Habersack  <mhabersack@novell.com>
754
755         * HttpListenerRequest.cs: make sure 'method' is always stored in
756         upper case.
757         The DELETE method must not error out on missing Content-Length
758         header (this is the behavior of the MS.NET version of the
759         class). Fixes bug #323215.
760         HasEntityBody should return false when method is GET/HEAD,
761         content_length is less than or equal to zero or the request is
762         chunked. Fixes bug #325296
763
764 2007-08-29  Atsushi Enomoto  <atsushi@ximian.com>
765
766         * IPAddress.cs, IPv6Address.cs : (ToString) output ScopeId.
767
768 2007-08-09  Atsushi Enomoto  <atsushi@ximian.com>
769
770         * HttpWebRequest_2_1.cs, HttpWebResponse_2_1.cs :
771           added new sources for those classes for 2.1 (in 2.1 they are
772           almost abstract, while in 2.0 they are concrete).
773         * HttpRequestCreator.cs, ServicePoint.cs :
774           #ifdef 2.0 dependencies out.
775
776 2007-06-28  Chris Howie  <cdhowie@nerdshack.com>
777
778         * ServicePoint.cs: Implemented BindIPEndPointDelegate.
779         * FtpWebRequest.cs: Respect ServicePoint.BindIPEndPointDelegate.
780         * WebConnection.cs: Respect ServicePoint.BindIPEndPointDelegate.
781
782 2007-08-08  Jb Evain  <jbevain@novell.com>
783
784         * HttpWebRequest.cs: .ctor(Uri) is public in 2.1.
785
786 2007-08-03  Jb Evain  <jbevain@novell.com>
787
788         * Dns.cs: remove async methods for the 2.1 profile.
789
790 2007-07-17  Rodrigo Kumpera  <rkumpera@novell.com>
791
792         * HttpListenerRequest.cs: Support for Cookie decoding.
793         * HttpListenerResponse.cs: Support for encoding cookies on the response sent to the client
794         * Cookie.cs: new internal method to encode the Cookie in a proper form to sent to clients
795
796 2007-07-14 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
797
798         * WebConnectionStream.cs: implement the CanTimeout for 2.0. Fixes
799         bug #81504.
800
801 2007-07-12  Geoff Norton  <gnorton@customerdna.com>
802
803         * HttpListenerContext.cs: 
804         * HttpListener.cs: Handle HttpListener AuthenticationSchemes
805         Only Basic authentication is included for now.
806
807 2007-06-30  Gert Driesen  <drieseng@users.sourceforge.net>
808
809         * NetworkAccess.cs: Only mark as flags enum on 2.0.
810
811 2007-06-21  Dick Porter  <dick@ximian.com>
812
813         * AuthenticationManager.cs: 
814         * FtpWebRequest.cs: 
815         * Cookie.cs: 
816         * ServicePoint.cs: 
817         * WebClient.cs: 
818         * Authorization.cs: 
819         * FileWebRequest.cs: 
820         * HttpWebRequest.cs: 
821         * WebResponse.cs: 
822         * ServicePointManager.cs: 
823         * HttpWebResponse.cs: Throw NotImplementedException indirectly, to
824         reduce noise in Moma reports.
825
826 2007-06-20  Atsushi Enomoto  <atsushi@ximian.com>
827
828         * ServicePointManager.cs : (bootstrap) build fix.
829
830 2007-06-19  Dick Porter  <dick@ximian.com>
831
832         * AuthenticationManager.cs: 
833         * IWebProxyScript.cs: 
834         * Authorization.cs: 
835         * Cookie.cs: 
836         * CookieException.cs: 
837         * CredentialCache.cs: 
838         * FileWebRequest.cs: 
839         * WebRequest.cs: 
840         * FileWebResponse.cs: 
841         * WebResponse.cs: 
842         * FtpWebRequest.cs: 
843         * HttpWebRequest.cs: 
844         * DecompressionMethods.cs: 
845         * HttpWebResponse.cs: 
846         * ProtocolViolationException.cs: 
847         * ServicePoint.cs: 
848         * ServicePointManager.cs: 
849         * WebClient.cs: 
850         * WebException.cs: 
851         * WebHeaderCollection.cs: 
852         * WebProxy.cs: 
853         * WebExceptionStatus.cs: 2.0 profile updates
854
855 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
856
857         * WebConnectionStream.cs: On read timeout, throw WebException with
858         status Timeout instead of IOException.
859
860 2007-05-16  Adar Wesley <adarw@mainsoft.com>
861
862         * CookieCollection.cs: added missing method strongly typed CopyTo.
863
864         * CredentialCache.cs: added missing methods Add, Remove, GetCredential
865
866         * HttpWebRequest.jvm.cs: added missing ClientCertificates getter.
867
868         * ServicePoint.cs: added missing method CloseConnectionGroup.
869
870         * WebClient.cs: added missing methods OnDownloadProgressChanged,
871         OnUploadProgressChanged, GetWebRequest, GetWebResponse
872
873         * WebHeaderCollection.cs: added missing methods IsRestricted, Add,
874         Remove, Set.
875
876         * WebProxy.cs: added missing method GetObjectData.
877
878 2007-05-15  Marek Habersack  <mhabersack@novell.com>
879
880         * HttpWebRequest.cs: fold all methods into GET for
881         redirect/moves. Fixes bug #81624
882
883 2007-05-07  Miguel de Icaza  <miguel@novell.com>
884
885         Missing second part of the patch.
886         
887         * WebHeaderCollection.cs: To be compatible with older versions of
888         Mono that might have serialized this in a different format, catch
889         the potential exception, and try the old name.
890
891         This should become a practice whenever we fix serialization in the
892         future. 
893
894         This is for #81467
895
896 2007-04-23  Marek Habersack  <mhabersack@novell.com>
897
898         * EndPointListener.cs: relax prefix matching to succeed in cases
899         when the prefix ends with / and the request path does not. Fixes
900         bug #80091.
901
902         * CookieCollection.cs: added a SortByPath method to sort the
903         collection on demand.
904
905         * Cookie.cs: do not return "/" for Path if it wasn't set
906         explicitly.
907
908         * CookieContainer.cs: set cookie path only if its version is
909         "Netscape" and is null or empty. Fixes #81420.
910         Sort the collection by the path relevance before returning from
911         the GetCookies method. Fixes bug #81421.
912
913 2007-04-17  Joel Reed  <joelwreed@gmail.com>
914
915         * WebHeaderCollection.cs: www-authenticate should be multivalue.
916         This fixes a bug related to RFC 2608 which says in section
917         "15.2 Offering a Choice of Authentication Schemes"
918
919         An HTTP/1.1 server may return multiple challenges with a 401
920  (Authenticate) response, and each challenge may use a different
921         scheme.  The order of the challenges returned to the user agent is in
922         the order that the server would prefer they be chosen. The server
923         should order its challenges with the "most secure" authentication
924         scheme first. A user agent should choose as the challenge to be made
925         to the user the first one that the user agent understands.
926
927         Before this change, mono was choosing whatever was sent last,
928         which was the most insecure authentication option.
929         
930 2007-04-10  Marek Habersack  <mhabersack@novell.com>
931
932         * HttpListenerRequest.cs: do not include the query start marker
933         ('?') in the first variable name stored in the QueryString
934         collection. There is no HTTP header 'Accept-Types' in the
935         standard, there's only the 'Accept' header that specifies the
936         accepted MIME types. Fixes bug #81317
937
938 2007-03-25 Alan McGovern <alan.mcgovern@gmail.com>
939
940         * IPAddress.cs : Further optimisation for the Swap*** methods.
941
942 2007-03-24 Alan McGovern <alan.mcgovern@gmail.com>
943
944         * IPAddress.cs : Optimised the SwapInt and SwapLong methods.
945
946 2007-03-09  Miguel de Icaza  <miguel@novell.com>
947
948         * FtpDataStream.cs: Close must be called on the stream before we
949         attempt to read a status code from the remote server.
950
951         Fixes FTP transfers to complete. 
952
953 2007-03-05 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
954
955         * HttpWebRequest.cs: properly handle OPTIONS, which may or may not
956         have a request body. Fixes bug #80686.
957
958 2007-03-02  Marek Habersack  <mhabersack@novell.com>
959
960         * WebClient.cs: Overwrite existing files on download, as
961         documented and as tested on MS.NET. Fixes Bug#81005
962
963 2007-02-24  Gert Driesen  <drieseng@users.sourceforge.net>
964
965         * HttpWebRequest.cs: Allow Proxy to be set to null on 2.0 profile.
966
967 2007-02-18  Geoff Norton  <gnorton@customerdna.com>
968
969         * AuthenticationManager.cs: Register the modules in the 2.0 profile
970         when we create the ArrayList.
971
972 2007-02-01  Gert Driesen  <drieseng@users.sourceforge.net>
973
974         * WebProxy.cs: In IsBypassed, move address check back to satify unit
975         tests.
976
977 2007-01-30  Ilya Kharmatsky <ilyak -at- mainsoft.com>
978
979         * Dns.cs : implemented proper exception handling under TARGET_JVM
980         when trying to resolve not existing host.
981
982 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
983
984         * IPAddress.cs: Provide more meaningful exception message on 2.0
985         profile.
986
987 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
988
989         * FileWebRequest.cs: Fixed PreAuthenticate and Proxy properties to
990         no longer throw NotSupportedException. No longer store ContentLength
991         in headers. Do not allow null or zero-length method. Allow timeout
992         to be set to -1 (infine). Only disallow GET, HEAD and CONNECT requests.
993         Removed workarounds for bug #24943. In (Begin)GetRequest overwrite
994         file if it already exists. Binary serialization compatibility fixes.
995         * FileWebResponse.cs: Return application/octet-stream as ContentType.
996
997 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
998
999         * WebHeaderCollection.cs: Fixed binary serialization compatibility 
1000         with MS.
1001
1002 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
1003
1004         * WebProxy.cs: Lazy init bypassList. Fixes for binary serialization
1005         compatibility. Added stub for UseDefaultCredentials (2.0). On 2.0
1006         profile, throw ArgumentNullException in IsBypassed if host is null.
1007
1008 2007-01-22  Miguel de Icaza  <miguel@novell.com>
1009
1010         * HttpWebRequest.cs: Remove unused variable.
1011
1012         * FtpWebRequest.cs: Remove unused variable.
1013
1014         * WebHeaderCollection.cs: Remove a handful of NotImplementedException's
1015
1016 2007-01-11  Miguel de Icaza  <miguel@novell.com>
1017
1018         * HttpListenerRequest.cs (SetRequestLine): Add validation for the
1019         verbs. 
1020
1021         Allow any verbs to go through, not only
1022         the white list of verbs.
1023
1024         Fixes: 80504
1025
1026 2007-01-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1027
1028         * RequestStream.cs: initialize the stream in both ctors. Fixes a couple
1029         of unit tests.
1030
1031 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1032
1033         * HttpWebRequest.jvm.cs: Fixed line endings.
1034         * HttpWebResponse.jvm.cs: Same.
1035         * WebException.cs: Same.
1036         * FtpWebRequest.cs: Same.
1037         * VMWHttpProvider.jvm.cs: Same.
1038
1039 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1040
1041         * DnsPermissionAttribute.cs: Fixed line endings.
1042         * HttpVersion.cs: Same.
1043         * FtpWebResponse.cs: Same.
1044         * HttpContinueDelegate.cs: Same.
1045         * FtpAsyncResult.cs: Same.
1046         * EndpointPermission.cs: Same.
1047         * IPv6Address.cs: Same.
1048         * FtpDataStream.cs: Same.
1049         * SocketPermission.cs: Same.
1050         * FileWebRequest.cs: Same.
1051         * FileWebResponse.cs: Same.
1052         * DnsPermission.cs: Same.
1053         * ProtocolViolationException.cs: Same.
1054         * MonoHttpDate.cs: Same.
1055         * SocketPermissionAttribute.cs: Same.
1056         * CookieException.cs: Same.
1057         * WebResponse.cs: Same.
1058         * DefaultCertificatePolicy.cs: Same.
1059
1060 2006-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
1061
1062         * IPAddress.cs: On 1.1, 4-byte addresses are not supported in the 
1063         ctor. Added null checks for the address passed in the ctors.
1064
1065 2006-12-28  Miguel de Icaza  <miguel@novell.com>
1066
1067         * IPAddress.cs: The condition in 1.1 was broken, it only allowed
1068         16-byte addresses, and never 4-byte addresses (only 2.0 had
1069         them).  
1070
1071         Keep a single code path.
1072
1073         Also, remove all the NET_1_1 defines, we realistically only
1074         distinguish between 1.1 and 2.0, we wont likely support 1.0, 1.1
1075         and 2.0, so remove the 1.0 vs 1.1 conditionals.
1076
1077         Fixes 76792
1078         
1079 〓2006-12-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1080
1081         * WebConnectionStream.cs: fix error in my last patch. Thanks to Felipe
1082         Almeida.
1083
1084 2006-12-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1085
1086         * WebConnection.cs:
1087         * HttpWebRequest.cs:
1088         * WebConnectionStream.cs: detect errors writing headers earlier and
1089         avoid race that showed up with SSL. Fixes bug #80234.
1090
1091 2006-12-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1092
1093         * EndPointListener.cs:
1094         * ListenerPrefix.cs:
1095         * ResponseStream.cs:
1096         * ChunkedInputStream.cs:
1097         * HttpConnection.cs:
1098         * RequestStream.cs: add initial support for HTTPS.
1099
1100 2006-12-18  Atsushi Enomoto  <atsushi@ximian.com>
1101
1102         * FtpStatus.cs : The build gets broken when only-2.0 classes/members
1103           are not excluded in 1.x build.
1104
1105 2006-12-18  David Elkind  <davide@mainsoft.com>
1106
1107         * FtpAsyncResult.cs : FTP request is now working and covers about 100% of .NET API
1108         * FtpDataStream.cs: FTP request is now working and covers about 100% of .NET API
1109         * FtpWebRequest.cs: FTP request is now working and covers about 100% of .NET API
1110         * FtpWebResponse.cs: FTP request is now working and covers about 100% of .NET API
1111         * FtpStatus.cs: added composite status (includes status code and status description)
1112
1113 2006-12-04  Konstantin Triger  <kostat@mainsoft.com>
1114
1115         * WebRequest.cs, WebResponse.cs: TARGET_JVM limitation workaround.
1116
1117 2006-12-04  Konstantin Triger  <kostat@mainsoft.com>
1118
1119         * ServicePointManager.cs: correct assignment typo.
1120         * ServicePoint.cs: Remove unneeded locks for getters, add internal setter.
1121
1122 2006-11-27  Miguel de Icaza  <miguel@novell.com>
1123
1124         * WebRequest.cs: Instead of throwing NotImplemented exceptions,
1125         call GetMustImplement, that way we do not need the whitelist, and
1126         we save a handful of opcodes.
1127
1128 2006-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1129
1130         * HttpWebRequest.cs: add 2 more methods that are not supposed to have
1131         a body. Fixes bug #80001.
1132
1133 2006-11-15  Andrew Skiba  <andrews@mainsoft.com>
1134
1135         * WebHeaderCollection.cs: add stubs for new 2.0 properties.
1136
1137 2006-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1138
1139         * HttpWebResponse.cs: cookies are actually added to the request
1140         container if any. Fixes bug #79821.
1141
1142 2006-11-02  Michael Hutchinson  <m.j.hutchinson@gmail.com>
1143
1144         * WebRequest.cs: more closely follow MS behaviour: use system settings 
1145           unless told otherwise, and respect app.config.
1146
1147 2006-11-01  Michael Hutchinson  <m.j.hutchinson@gmail.com>
1148
1149         * GlobalProxySelection.cs: Obsolete GlobalProxySelection under 2.0 
1150           profile, and move code to new property WebRequest.DefaultWebProxy.
1151         * WebRequest.cs: Implement new 2.0 property DefaultWebProxy.
1152           Add support for config option UseSystemDefault using simplistic
1153           implementation of new 2.0 method GetSystemWebProxy ().
1154
1155 2006-10-30  Atsushi Enomoto  <atsushi@ximian.com>
1156
1157         * FtpWebRequest.cs : more build fixes.
1158
1159 2006-10-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1160
1161         * EndPointListener.cs: update comment and avoid exception when the
1162         program is exiting.
1163
1164 2006-10-30  Miguel de Icaza  <miguel@novell.com>
1165
1166         * WebRequestMethods.cs: Another typo fix.
1167
1168         * ServicePointManager.cs: Set the default properly.
1169
1170         * SecurityProtocolType.cs: Remove non-existant defines. 
1171
1172 2006-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1173
1174         * HttpWebRequest.cs: internally allow buffer if it's not a known
1175         GET-only method instead of enabling that only for POST/PUT. Fixes bug
1176         #79595.
1177
1178 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
1179
1180         * WebConnection.cs: TARGET_JVM
1181
1182 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1183
1184         * WebException.cs: patch by Andrew Skiba that fixes serialization
1185         compatibility with .NET and the default value for status.
1186
1187 2006-09-28  Andrew Skiba <andrews@mainsoft.com>
1188
1189         * Dns.cs: TARGET_JVM
1190
1191 2006-09-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1192
1193         * CookieContainer.cs: send the cookies from the collection we got for
1194         the given URI, not the whole collection.
1195         * HttpWebResponse.cs: only add the cookies to this instance, not to the
1196         cookie container set in the request.
1197
1198 2006-09-11  Sebastien Pouliot  <sebastien@ximian.com>
1199
1200         * WebConnection.cs: Patch to remove the hack that was required for 
1201         using the older versions of the SSL/TLS classes. This hack is no more
1202         required :-). Patch by Gonzalo Paniagua Javier.
1203
1204 2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1205
1206         * HttpConnection.cs: when the content length is available, keep it
1207         updated after synchronous read. Renamed 'available' to 'remaining_body'.
1208         * RequestStream.cs: when creating the stream, pass the remaining length
1209         starting from the offset in the buffer.
1210
1211 2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1212
1213         * RequestStream.cs: make sure we return 0 when no more bytes left.
1214         Paticularly, when we have a content length and the whole response is
1215         buffered.
1216
1217 2006-08-20  Miguel de Icaza  <miguel@novell.com>
1218
1219         * RequestStream.cs (Read): A bug fix for #79112 and what I
1220         consider to be an important change.
1221
1222         The bug fix is that we update the "available" variable as soon as
1223         we consume data from Read, this means that a second call into Read
1224         wont block.   Available was only being updated on a secondary code
1225         path, now we alwaysupdate it after using FillFromBuffer.
1226
1227         The second component is what I believe the right behavior should
1228         be.  There was a check for "if count > available" that set count
1229         to available in that case.   The idea was to limit the data read
1230         from the buffer that belonged to this particular request, to allow
1231         pipelining. 
1232
1233         But this test was done after FillFromBuffer, which assumed that
1234         all the data held in the buffer (the one used by FillFromBuffer)
1235         must belong to the this request, and only future data did not.
1236
1237         I think my change is correct, but it assumes that the initialized
1238         RequestStream will be used for other pipelined HTTP requests,
1239         which is not something am 100% sure of, so Gonzalo needs to check
1240         this. 
1241
1242 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1243
1244         * Cookie.cs: avoid nullref in GetHashCode and Equals.
1245
1246 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1247
1248         * CookieCollection.cs:
1249         * CookieContainer.cs: remove expired cookies.
1250
1251 2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
1252
1253         * Dns.cs : (GetHostEntry) when passed IP addresses, it does not issue
1254           query to DNS. Patch by Petri Latvala.
1255
1256 2006-07-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1257
1258         * CookieContainer.cs: don't send a secure cookie over an insecure
1259         channel.
1260
1261 2006-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1262
1263         * WebProxy.cs: (IsBypassed) 'loopback', 'localhost' and any address
1264         that starts with 127 are special.
1265
1266 2006-05-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1267
1268         * HttpListener.cs: Fixes race condition in BeginGetContext. Patch by
1269         Pawel Sakowski that fixes bug #78365.
1270
1271 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
1272
1273         * ServicePointManager.cs : oops, CONFIGURATION_DEP.
1274
1275 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
1276
1277         * GlobalProxySelection.cs : if corresponding config section is
1278           DefaultProxySection then use it.
1279
1280 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
1281
1282         * WebRequest.cs : if corresponding config section is
1283           WebRequestModulesSection then use it.
1284
1285 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
1286
1287         * ServicePointManager.cs : if corresponding config section is
1288           ConnectionManagementSection then use it.
1289
1290 2006-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1291
1292         * ResponseStream.cs:
1293         * HttpListenerResponse.cs: allow 0 length POST. Patch by Horst Reiterer.
1294         Closes bug #78316.
1295
1296 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1297
1298         * CredentialCache.cs: added DefaultNetworkCredentials.
1299
1300 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1301
1302         * NetworkCredential.cs: implement ICredentialsByHost interface.
1303
1304 2006-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1305
1306         * WebConnection.cs: reset the challenge and the status code when
1307         creating the tunnel and sending the proxy auth. headers. Improve error
1308         message when there's an error creating the tunnel.
1309         * HttpWebRequest.cs: don't trigger an early throw for a POST that gets
1310         a 401 or 407 response.
1311
1312 2006-04-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1313
1314         * WebConnectionData.cs:
1315         * WebConnection.cs:
1316         * HttpWebRequest.cs: when tunneling an ssl conneciton through a proxy,
1317         we were not handling a proxy authentication request. Fixes bug #78150
1318         take 2.
1319
1320 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1321
1322         * WebProxy.cs: a .ctor was not forwarding the 'credentials' argument.
1323         This fixes bug #78150. Also fix the bypass check for local requests.
1324
1325 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1326
1327         * WebProxy.cs: removed bogus ^M.
1328
1329 2006-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1330
1331         * HttpWebResponse.cs: don't remove the Set-Cookie headers. Fixes bug
1332         #78028.
1333
1334 2006-04-04  Atsushi Enomoto  <atsushi@ximian.com>
1335
1336         * WebClient.cs : added a bunch of async method support.
1337
1338 2006-04-03  Chris Toshok  <toshok@ximian.com>
1339
1340         * HttpWebResponse.cs (ContentEncoding): return "" if the header
1341         isn't present.
1342
1343 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
1344
1345         * DownloadStringCompletedEventHandler.cs : missing delegate.
1346
1347 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
1348
1349         * Dns.cs : minor argument renaming.
1350
1351 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
1352
1353         * DownloadDataCompletedEventArgs.cs
1354           DownloadDataCompletedEventHandler.cs
1355           DownloadProgressChangedEventArgs.cs
1356           DownloadProgressChangedEventHandler.cs
1357           DownloadStringCompletedEventArgs.cs
1358           OpenReadCompletedEventArgs.cs
1359           OpenReadCompletedEventHandler.cs
1360           OpenWriteCompletedEventArgs.cs
1361           OpenWriteCompletedEventHandler.cs
1362           UploadDataCompletedEventArgs.cs
1363           UploadDataCompletedEventHandler.cs
1364           UploadFileCompletedEventArgs.cs
1365           UploadFileCompletedEventHandler.cs
1366           UploadProgressChangedEventArgs.cs
1367           UploadProgressChangedEventHandler.cs
1368           UploadStringCompletedEventArgs.cs
1369           UploadStringCompletedEventHandler.cs
1370           UploadValuesCompletedEventArgs.cs
1371           UploadValuesCompletedEventHandler.cs : added 2.0 types.
1372
1373 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
1374
1375         * Dns.cs : filled missing NET_2_0 members.
1376
1377 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
1378
1379         * IPAddress.cs : ugh, I was testing with run-test-ondotnet, not
1380           run-test. Those IPv6 properties needed to be reimplemented.
1381
1382 2006-03-27  Atsushi Enomoto  <atsushi@ximian.com>
1383
1384         * IPAddress.cs : added NET_2_0 TryParse() and IPv6 related properties.
1385
1386 2006-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1387
1388         * WebConnectionStream.cs: avoid Begin/EndWrite when the body length is
1389         zero.
1390
1391 2006-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1392
1393         * HttpWebRequest.cs: send the request if ContentLength is set for
1394         POST/PUT, the request stream has that exact amount of bytes in it and
1395         we're trying to get the response stream.
1396
1397         This way, closing the request stream is not needed in order to actually
1398         send the request. Fixes bug #77753.
1399
1400         * WebConnectionStream.cs: throw if the number of bytes written is
1401         greater than the specified request content length.
1402
1403 2006-03-11  Miguel de Icaza  <miguel@novell.com>
1404
1405         * WebClient.cs: Only expose the right methods to avoid warnings. 
1406
1407         * FtpDataStream.cs (Dispose): Fix signature.
1408
1409         * FtpWebResponse.cs: Comment out keepAlive field (unused, sounds
1410         like we are missing features here).
1411
1412         * IPAddress.cs: Move m_HashCode property to the end, and set
1413         pragmas to disable warnings.
1414
1415 2006-02-16  Dick Porter  <dick@ximian.com>
1416
1417         * IPEndPoint.cs: The SocketAddress AddressFamily takes up the
1418         first two bytes, not just one.  Check the size of the
1419         SocketAddress buffer for IPv6 as well.
1420
1421         * Dns.cs: Cope when GetHostByName_internal or
1422         GetHostByAddr_internal returns fewer items in the array than it
1423         intended to (maybe due to conversion errors.)
1424
1425 2006-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1426
1427         * FtpWebResponse.cs: Add UpdateStatus method, to update both
1428         statusCode and statusDescription at the same time. 
1429
1430 2006-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1431
1432         * FtpWebRequest.cs: Remove WebExceptionStatus argument
1433         from CreateExceptionFromResponse, since exceptions gotten
1434         from server response always have a WebExceptionStatus.ProtocolError
1435         value.
1436         
1437 2006-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1438
1439         * FtpWebRequest.cs: Add renaming support when using 
1440         WebRequestMethods.Ftp.Rename method.
1441         
1442 2006-02-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1443
1444         * ChunkedInputStream.cs:
1445         * ChunkStream.cs: handle partial trailers and zero reads. Patch by Pawel
1446         Sakowski.
1447
1448 2006-02-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1449
1450         * HttpWebRequest.cs: don't send the expect-100 if if there's no content.
1451
1452         * HttpListenerRequest.cs:
1453         * HttpConnection.cs:
1454         * RequestStream.cs: use the content length header to avoid reading past
1455         the end of the stream.
1456
1457         Patch by Horst Reiterer.
1458
1459 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1460
1461         * FtpWebRequest.cs: Add supportedCommands array with the sorted
1462         methods, to search using Array.BinarySearch. Remove CheckMethod.
1463
1464 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1465
1466         * FtpWebRequest.cs: Fixed some typos and small issues.
1467         
1468 2006-02-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1469
1470         * HttpWebRequest.cs: dummy implementation of UnsafeAuthenticationBlah
1471         property.
1472
1473 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1474
1475         * FtpRequestCreator.cs: 
1476         * FtpAsyncResult.cs:
1477         * FtpDataStream.cs:
1478         * FtpWebRequest.cs:
1479         * FtpWebResponse.cs: Initial implementation of FtpWebRequest (2.0)
1480         
1481 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1482
1483         * FtpStatusCode.cs: Fix a typo.
1484         
1485 2006-01-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1486
1487         * WebClient.cs: (2.0) UploadString() returns string, not void.
1488
1489 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1490
1491         * HttpWebResponse.cs: ignore non-integer values for max-age and version.
1492         Fixes bug #77199. Thanks to Cyrille Colin.
1493
1494 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1495
1496         * HttpWebResponse.cs: cope with malformed cookies with '=' as value.
1497         Patch by Cyrille Colin. Fixes bug #77179.
1498
1499 2005-12-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1500
1501         * FtpStatusCode.cs: New 2.0 enum.
1502
1503 2005-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1504
1505         * CookieContainer.cs: fix matching of subdomains. Patch by Cyrille
1506         Colin.
1507
1508 2005-12-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1509
1510         * HttpWebResponse.cs: don't loop forever when no name or value between
1511         semicolons. Fixes bug #76943.
1512
1513 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1514
1515         * HttpWebResponse.cs: don't fail if the cookie ends with a 'name'
1516         without a value. Fixes bug #76922.
1517
1518 2005-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1519
1520         * EndPointListener.cs:
1521         * HttpListenerRequest.cs: don't require the Host header for 1.0. Just
1522         map that to the '*' or '+' host.
1523
1524 2005-11-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1525
1526         * IPAddress.cs: the byte[] ctor supports length 4 in .NET 2.0.
1527         Fixes bug #76792.
1528
1529 2005-11-21 Senganal T   <tsenganal@novell.com>
1530
1531         * Dns.cs : corrected a mistake in GetHostEntry ()
1532
1533 2005-11-21 Senganal T   <tsenganal@novell.com>
1534
1535         * Dns.cs : added GetHostEntry() method for 2.0 api conformance
1536
1537 2005-11-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1538
1539         * HttpRequestHeader.cs: add missing values.
1540
1541 2005-11-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1542
1543         * HttpListenerPrefixCollection.cs:
1544         * HttpWebResponse.cs:
1545         * Dns.cs:
1546         * HttpListenerRequest.cs:
1547         * HttpWebRequest.cs:
1548         * HttpListenerResponse.cs: a few signature fixes for 2.0.
1549
1550 2005-11-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1551
1552         * HttpListenerPrefixCollection.cs:
1553         * EndPointListener.cs:
1554         * HttpStreamAsyncResult.cs:
1555         * HttpListenerContext.cs:
1556         * HttpListenerBasicIdentity.cs:
1557         * AuthenticationSchemeSelector.cs:
1558         * HttpListener.cs:
1559         * WebHeaderCollection.cs:
1560         * ListenerPrefix.cs:
1561         * HttpListenerException.cs:
1562         * HttpResponseHeader.cs:
1563         * EndPointManager.cs:
1564         * HttpListenerRequest.cs:
1565         * HttpRequestHeader.cs:
1566         * BindIPEndPoint.cs:
1567         * ResponseStream.cs:
1568         * ChunkedInputStream.cs:
1569         * HttpStatusCode.cs:
1570         * ListenerAsyncResult.cs:
1571         * ChunkStream.cs:
1572         * HttpConnection.cs:
1573         * HttpUtility.cs:
1574         * HttpListenerResponse.cs:
1575         * RequestStream.cs: initial implementation of HttpListener. There are
1576         a few TODOs left (cookies, HTTPS) but almost everything else is in.
1577
1578 2005-11-15  Sebastien Pouliot  <sebastien@ximian.com>
1579
1580         * IPv6Address.cs: Added on overload to ToString to get a the full 
1581         length address returned (as required by System.Uri).
1582
1583 2005-11-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1584
1585         * WebRequestMethods.cs: New 2.0 class.
1586         
1587 2005-11-05  Atsushi Enomoto  <atsushi@ximian.com>
1588
1589         * WebClient: use POST for DownloadData(). Fixed bug #76631.
1590
1591 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
1592
1593         * AuthenticationSchemes.cs : Fixed enum values and added [Flags].
1594
1595 2005-10-19  Atsushi Enomoto  <atsushi@ximian.com>
1596
1597         * WebClient.cs : added net_2_0 DownloadString() and DownloadData()
1598           with HTTP method as well.
1599
1600 2005-10-19  Atsushi Enomoto  <atsushi@ximian.com>
1601
1602         * WebClient.cs : added UploadString() and Encoding (net_2_0). Added
1603           some new overloaded stuff that takes Uri instead of string address.
1604
1605 2005-10-17  Sebastien Pouliot  <sebastien@ximian.com> 
1606
1607         * ICredentialPolicy.cs: New. Interface for 2.0.
1608
1609 2005-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1610
1611         * AuthenticationSchemes.cs : new 2.0 enum.
1612
1613 2005-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1614
1615         * GlobalProxySelection.cs: remove double lock.
1616         * HttpWebRequest.cs: remove double lock in GetServicePoint() and use
1617         a private object when locking.
1618
1619 2005-07-15  Miguel de Icaza  <miguel@novell.com>
1620
1621         * DigestClient.cs: Fix bug #75556, the qop argument must be
1622         quoted, per http://www.faqs.org/rfcs/rfc2617.html section
1623         `quo-options'.
1624
1625 2005-07-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1626
1627         * WebConnectionStream.cs: initiate writing the body before trying to
1628         read. This fixes the performance problems observed in web services.
1629         Closes bug #75455.
1630
1631 2005-06-27  Lluis Sanchez Gual <lluis@novell.com>
1632
1633         * IPAddress.cs: Changed field names for the sake of serialization
1634         interoperability with MS.NET.
1635         
1636 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1637
1638         * WebConnection.cs: if cnc.EndRead throws, mark the asyncresult as done.
1639         * WebConnectionStream.cs: if we're done with the body of a chunk, don't
1640         require the next chunk header to be there, as some servers might close
1641         the connection (while also sending 'Connection: close').
1642
1643 2005-06-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1644
1645         * HttpWebRequest.cs: MS implementation follows redirects for POST. Seems
1646         to me that this is against 10.3.3 in RFC 2616, but may be the user
1647         'authorization' to do this is implicit in AllowAutoRedirect...
1648
1649 2005-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1650
1651         * WebConnection.cs: SslClientStream.BeginRead might not be asynchronous
1652         if there's no record available to read. This is a workaround that makes
1653         the call to BeginRead itself asynchronous. Fixes bug #75342.
1654
1655 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1656
1657         * WebConnection.cs:
1658         * HttpWebRequest.cs:
1659         * WebConnectionStream.cs: initiate the polling for input data after
1660         sending the header so that we detect any response that the server sends
1661         back even if we're still trying to write the request for a POST/PUT.
1662         If we get the response (or an error) before any one calls GetResponse(),
1663         keep it around instead of ignoring it.
1664
1665 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1666
1667         * HttpWebRequest.cs: send the right header/user/password in
1668         PreAuthenticate in presence of a proxy.
1669
1670 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1671
1672         * IPv6Address.cs: fix IsLoopback. Closes bug #75128.
1673
1674 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1675
1676         * IPv6Address.cs: don't do extra check on ipv4 if this is a ipv6
1677         address. Fixes bug #75125.
1678
1679 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1680
1681         * ServicePointManager.cs: when going through a proxy, use 2 different
1682         service points depending on the scheme. Fixes bug #75135.
1683
1684 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1685
1686         * Dns.cs: don't parse the address when it comes from an IPAddress.
1687
1688 2005-05-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1689
1690         * WebConnection.cs: prevent 2 nullrefs when the aborting during
1691         Connect() and reset the status to Success before starting a new
1692         request.
1693
1694 2005-05-19  Sebastien Pouliot  <sebastien@ximian.com>
1695
1696         * WebRequest.cs: Throw NotImplementedException (not NotSupported
1697         Exception) for stuff that should have been abstract. No exception
1698         is thrown by the serialization constructor.
1699
1700 2005-05-04 James Willcox  <james@ximian.com>
1701
1702         * DigestClient.cs: convert to a hex string with "X8" consistently
1703         for nc-value
1704
1705 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1706
1707         * WebConnection.cs: don't rethrow errors in Write, as the error will be
1708         received by GetResponse*. The result is that the threadpool thread doing
1709         this will not end up printing the exception. Fixes bug #74817.
1710
1711 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1712
1713         * ServicePoint.cs: HostEntry needs to be thread safe.
1714
1715 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1716
1717         * WebConnection.cs: removed a 'slightly' important line by mistake.
1718         * WebConnectionStream.cs: if the transfer encoding is chunked, ignore
1719         content-length header if present.
1720
1721 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1722
1723         * WebConnection.cs: no need to use an AutoResetEvent.
1724         * WebConnectionStream.cs: don't start any more reads on the socket
1725         after getting a 0 signalling the end. This fixes Ben's infamous foo.cs
1726         test.
1727
1728 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1729
1730         * BasicClient.cs: firefox/IE just send latin1, stripping the high byte
1731         from unicode >= 256 characters.
1732
1733 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1734
1735         * BasicClient.cs: use latin1 when encoding the username/domain/password.
1736         Fixes bug #74745.
1737
1738 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1739
1740         * WebConnectionStream.cs: if the BeginRead/BeginWrite is completed
1741         synchronously, no need to create the ManualResetEvent to wait on.
1742
1743 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1744
1745         * WebConnectionStream.cs: call SetComplete in EndWrite when we're not
1746         buffering the request body. Fixes bug #74637.
1747
1748         * WebAsyncResult.cs: renamed field.
1749
1750 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1751
1752         * WebConnectionStream.cs:
1753         * WebAsyncResult.cs: ensure we only call EndRead once per async. result.
1754         Update total before invoking the callback when present.
1755
1756 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1757
1758         * WebConnection.cs:
1759         * WebConnectionStream.cs: don't start reading until we've sent at least
1760         the headers. This way we ensure that a Write happens before any Read,
1761         which is needed by the SSL code.
1762
1763 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1764
1765         * HttpWebRequest.cs: ensure we read everything before redirecting.
1766
1767 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1768
1769         * WebConnectionStream.cs: provide a default callback when doing async.
1770         read/write and waiting for a timeout so that the callback sets the
1771         event and we don't block forever. Fixes bug #74539 take 3.
1772
1773 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1774
1775         * WebConnection.cs:
1776         * HttpWebRequest.cs: now Abort() works properly. Fixes bug #74177.
1777
1778 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1779
1780         * WebConnection.cs: fix some breakage from my last patch.
1781         * WebConnectionStream.cs: invoke the callback when done even in EndRead.
1782
1783 2005-04-10  Sebastien Pouliot  <sebastien@ximian.com>
1784
1785         * WebConnection.cs: Added support for TrustFailure when throwing a
1786         WebException. Fix bug #74286.
1787
1788 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1789
1790         * HttpWebRequest.cs: 
1791         * WebConnectionStream.cs: implemented support for ReadWriteTimeout.
1792
1793 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1794
1795         * WebConnection.cs: if we're reading chunked data and didn't use the
1796         stream to read, we gotta set the async. result as complete and invoke
1797         the callback. Don't call nstream.EndRead with the wrong IAsyncResult.
1798
1799         * WebConnectionStream.cs: in EndRead, pass the correct IAsyncResult to
1800         cnc.EndRead. Lock on a field instead of 'this'.
1801
1802 2005-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1803
1804         * HttpWebRequest.cs: throw the exception if we got an error, as now
1805         it's catched in the redirection handling code.
1806
1807 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1808
1809         * HttpWebRequest.cs: moved redirection handling to a proper place.
1810
1811 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1812
1813         * WebHeaderCollection.cs: added if-modified-since to the list of
1814         restricted headers.
1815
1816         * ServicePoint.cs: use a field object when locking.
1817
1818 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1819
1820         * WebConnectionStream.cs: ForceCompletion actually calls NextRead. No
1821         need to wait for a Close/ReadAll when we have no content.
1822
1823 2005-04-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1824
1825         * NtlmClient.cs: fix typo in assembly name.
1826
1827 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1828
1829         * CookieContainer.cs: adding to a CookieCollection might not increment
1830         the number of items if the cookie is replaced. Now Count works properly.
1831         Fixed an array index exception (typo).
1832
1833         * CookieCollection.cs: also compare the version.
1834
1835         * HttpWebResponse.cs: when we have cookies, add them to the request
1836         container.
1837
1838         * HttpWebRequest.cs: changed last parameter of HttpWebResponse ctor.
1839
1840 2005-03-30  Miguel de Icaza  <miguel@novell.com>
1841
1842         * Cookie.cs: Compare using the InvariantCulture, to match the
1843         behavior of CookieContainer that already did this.
1844
1845 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1846
1847         * WebConnection.cs: we don't need to trigger the next queued request
1848         until the response is closed.
1849
1850 2005-03-29  Miguel de Icaza  <miguel@novell.com>
1851
1852         * HttpWebResponse.cs: Handle quotations in the cookies values, per
1853         the spec http://www.faqs.org/rfcs/rfc2109.html, it is allowed to
1854         have quotations.
1855
1856 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1857
1858         * BasicClient.cs:
1859         * DigestClient.cs: check that GetCredential() does not return null.
1860
1861 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1862
1863         * BasicClient.cs: ensure credentials are not null.
1864
1865 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1866
1867         * HttpWebResponse.cs: moved cookie parsing into its own class.
1868         * WebHeaderCollection.cs: remove (probably bogus) GetMultipleValues
1869         call.
1870         * HttpWebRequest.cs: don't let exception raised in the ctor of
1871         HttpWebResponse vanish.
1872
1873         Fixes bug #73275.
1874
1875 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1876
1877         * WebHeaderCollection.cs: handle commas inside quotes when splitting
1878         a multi-value header. Fixes bug #73151.
1879
1880 2005-02-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1881
1882         * DigestClient.cs: fix for digest auth. and URIs containing query. Patch
1883         by James Wilcox. Fixes bug #72571.
1884
1885 2005-02-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1886
1887         * HttpWebResponse.cs:
1888         * WebConnection.cs:
1889         * HttpWebRequest.cs:
1890         * WebConnectionStream.cs: don't read the entire response unless the
1891         user requests it. Fixes bug #72443.
1892
1893 2005-02-08  Zoltan Varga  <vargaz@freemail.hu>
1894
1895         * IPv6Address.cs: Fix endianess problems.
1896
1897         * IPAddress.cs: Fix misleading comments.
1898
1899 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1900
1901         * HttpWebRequest.cs: send the headers when we're supposed to write
1902         a POST/PUT but call GetResponse before GetRequestStream.
1903
1904         * WebConnectionStream.cs: new RequestWritten property.
1905
1906 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
1907
1908         * EndpointPermission.cs: Fix IsSubsetof(hostname) so that the regression 
1909           tests work.  In particular, IsSubsetOf ("12.13.*.*", "12.13.14.*") failed
1910           because 14 wasn't a subset of * (which it is).  Fix: if part1 is we 
1911           continue to the next portion.
1912
1913 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
1914
1915         * IPAddress.cs (ParseIPV4): Fix so that the regression tests work.  In
1916           particular, " foo" and ".1.1.6" weren't being caught (" foo" because it
1917           started with a space, and ".1.1.6" because the split string accepted a
1918           0-length portion, which would make 1...6 valid, but isn't valid based on
1919           similar test cases).
1920
1921 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
1922
1923         * WebHeaderCollection.cs: Fix GetValues(string) to split the values on
1924           commas if the header is a Multi-Value header.  This matches
1925           MonoTests.System.Net.WebHeaderCollectionTest.
1926
1927 2005-01-19  Sebastien Pouliot  <sebastien@ximian.com>
1928
1929         * WebPermissionAttribute.cs: Fixed NET_1_1 behaviour.
1930
1931 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1932
1933         * WebConnectionStream.cs: remove unneeded check. Write detects and
1934         triggers the exception now.
1935
1936 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1937
1938         * AuthenticationManager.cs: don't lock on a public Type.
1939         * HttpWebRequest.cs: read the error response for auth. errors.
1940
1941 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1942
1943         * HttpWebRequest.cs: set webResponse back to null when redirecting.
1944         Fix the previous patch so that it reads the whole response even if
1945         auto-redirect is not enabled. Closes bug #70484.
1946
1947 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1948
1949         * HttpWebResponse.cs: added ReadAll method.
1950
1951         * WebConnection.cs: in HandleError, set the response error after
1952         closing the socket. Use an async. delegate to finish reading any prior
1953         WebConnectionStream.
1954
1955         * HttpWebRequest.cs: for error responses that allow content, read the
1956         stream immediately. Fixes bug #70483.
1957
1958 2004-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1959
1960         * CookieContainer.cs: quote the port number.
1961
1962 2004-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1963
1964         * WebConnection.cs:
1965         * WebConnectionStream.cs: removed TryReconnect. It's no longer needed.
1966
1967 2004-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1968
1969         * WebConnection.cs: set the event in Close so that if the queue is
1970         empty, we won't block forever on next request. The finalizer was
1971         removed because we're not implementing IDisposable pattern here.
1972
1973 2004-12-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1974
1975         * WebConnection.cs: handle errors on chunked streams. Fixes bug #66858.
1976         * ChunkStream.cs: added error checking all over.
1977
1978         * HttpWebRequest.cs: throw the exception received in SetResponseError
1979         if we already have a response.
1980         (SetRequestData): Don't nest the exception if it's a WebException.
1981
1982 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1983
1984         * WebConnection.cs: remove prevStream and don't set busy to false in
1985         HandleError. prevStream is not needed any more and setting 'busy' so
1986         early might let a request skip the queue.
1987         
1988         * WebConnectionGroup.cs: decrement the indexer when removing a dead
1989         reference from the arraylist.
1990
1991         * WebConnectionStream.cs:
1992         (ReadAll): call NextRead if it has not been called before even when
1993         we have completed the request. Reuse the read buffer when reading a
1994         response of unknown size. Increase the buffer to 8kB.
1995         (BeginRead): increase pendingReads earlier and even when reading from
1996         the internal buffer.
1997         (EndRead): decrease pendingReads later and always.
1998
1999 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2000
2001         * CookieContainer.cs: style, fixed checks for properties, implemented
2002         the MonoTODOs for the method that take an Uri. GetCookies and
2003         GetCookieHeaders now really return only the cookies that are requested
2004         filtering by the Uri parameter.
2005
2006         * Cookie.cs: style, added default values for Comment, Domain and Port.
2007
2008 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2009
2010         * CookieCollection.cs: reformatted, fixed Add by adding a new method to
2011         search across the arraylist, as list.IndexOf is not what we want.
2012
2013 2004-11-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2014
2015         * WebConnection.cs: check for FIN or RST on the socket before reusing.
2016         Fixes bug #69388.
2017
2018 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2019
2020         * ChunkStream.cs: simplified condition for WantMore property.
2021
2022         * WebConnection.cs: in Connect(), finish any pending reads we might
2023         have for chunked data. Ignore possible blank lines at the very
2024         beginning of the server response. Honor user set KeepAlive in
2025         HttpWebRequest for HTTP/1.1 connections. Thanks to Eyal Alayuf for
2026         his suggestions and code.
2027
2028 2004-11-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2029
2030         * HttpWebResponse.cs: don't lock up when the cookie received ends with
2031         a semicolon. Patch by Darryl VanDorp. Fixes bug #68956.
2032
2033 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2034
2035         * HttpWebRequest.cs: don't fail if the request has already been sent
2036         when accessing ContentType setter. Fixes bug #68848.
2037
2038 2004-10-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2039
2040         * ChunkStream.cs:
2041         (WantMore): we're not done until we get a 0 chunk size and the trailer.
2042         The 0 can be expressed as more than one character too (ie, 000000).
2043
2044         * HttpWebRequest.cs: new argument in SetResponseError.
2045         * WebConnection.cs: added argument to HandleError as a hint for
2046         debugging.
2047         (Connect): make the chunked stream be in the expected state when
2048         reusing.
2049
2050         * WebConnectionStream.cs: removed unused method (ResetWriteBuffer).
2051
2052 2004-10-10 David Sheldon <dave-mono@earth.li>
2053
2054         * HttpWebRequest.cs: Use RemoveAndAdd for AddRange. Fixes unittest.
2055
2056 2004-10-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2057
2058         * HttpWebRequest.cs: use RemoveAndAdd for headers multivalue headers.
2059         * WebHeaderCollection.cs: added RemoveAndAdd that behaves like the old
2060         SetInternal.
2061
2062 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2063
2064         * HttpWebRequest.cs: ProxyQuery returns true when we use a proxy without
2065         tunneling a secure connection.
2066
2067         * ServicePoint.cs: added UseConnect property.
2068
2069         * ServicePointManager.cs: set the UseConnect property when we use a http
2070         proxy for a https connection.
2071
2072         * WebConnection.cs: setup the tunnled connection when using a proxy and
2073         https.
2074
2075 2004-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2076
2077         * HttpWebResponse.cs: remove unused SplitValue method.
2078
2079 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
2080
2081         * DnsPermission.cs: Updated to pass new unit tests.
2082         * DnsPermissionAttribute.cs: Cleanup.
2083         * SocketPermission.cs: Updated to pass new unit tests.
2084         * SocketPermissionAttribute.cs: Updated to pass new unit tests.
2085         * WebPermission.cs: Implemented some TODO - not complete yet.
2086         * WebPermissionAttribute.cs: Updated to pass new unit tests.
2087
2088 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2089
2090         * Cookie.cs: don't fail when using default constructor. Fixes bug
2091         #62890.
2092
2093 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2094
2095         * HttpWebResponse.cs: set-cookie and set-cookie2 can be present more
2096         than once and have multiple values. Don't rely on string.split when
2097         parsing cookie values.
2098
2099         * WebHeaderCollection.cs: same thing for set-cookie and set-cookie2.
2100         Fixed GetValues (it was splitting values that contained a comma) and
2101         changed SetInternal to handle multi-value headers.
2102
2103         Fixes bug #62744.
2104
2105 2004-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2106
2107         * WebProxy.cs: fix scheme detection. Patch by Konstantin Triger
2108         (kostat@mainsoft.com).
2109
2110 2004-07-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2111
2112         * HttpWebRequest.cs: detect changes in scheme or port when redirecting.
2113         Fixes las take on bug 61218.
2114
2115 2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2116
2117         * WebConnection.cs: moved loading of the ssl stream Type to its own
2118         method. Don't create a new ssl stream if we're reusing the connection.
2119
2120         * WebConnectionStream.cs: ensure the number of bytes copied in ReadAll
2121         is the expected even if the dta from the server has extra bytes.
2122
2123 2004-07-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2124
2125         * WebConnection.cs:
2126         * WebConnectionStream.cs: when the status code is 1xx, 204 or 304,
2127         "responses MUST NOT include a message-body". We tried to read the
2128         stream even when getting those codes and considered the 0 length
2129         read as a failure.
2130
2131 2004-07-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2132
2133         * HttpWebRequest.cs: removed bogus Monitor.Exit.
2134         * WebConnection.cs: use Address instead of RequestUri when checking for
2135         the scheme in order to select the stream type. Fixes bug #61218.
2136
2137 2004-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2138
2139         * ChunkStream.cs: added ChunkLeft property.
2140         * WebConnection.cs:
2141         (EndRead): when using small byte arrays to read from a chunked stream,
2142         ensure we've read the chunk size and try to fulfill the request
2143         completely. fixes bug 59653.
2144
2145 2004-05-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2146
2147         * WebConnectionStream.cs: fixed CanRead property. Closes bug #59273.
2148
2149 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2150
2151         * DigestClient.cs: cache the sessions based on address and
2152         credentials, not only address. Added poor men's expiration to
2153         the session cache. Fixes bug #59202.
2154
2155 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2156
2157         * IPAddress.cs:
2158         * IPEndPoint.cs:
2159         * IPv6Address.cs: no more warnings about IPAddress.Address.
2160
2161 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2162
2163         * WebException.cs: implemented serialization .ctor and
2164         GetObjectData().
2165
2166 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2167
2168         * WebAsyncResult.cs: don't create the WaitHandle if not needed.
2169
2170 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2171
2172         * HttpWebRequest.cs: added 3 missing properties for 1.1. They are not
2173         used yet.
2174
2175         * NetConfig.cs: added MaxResponseHeadersLength field.
2176
2177         * ServicePoint.cs:
2178         * ServicePointManager.cs: added missing properties for 1.1. 
2179
2180 2004-05-03  Sebastien Pouliot  <sebastien@ximian.com>
2181
2182         * WebConnection.cs: Use assembly name const to load Mono.Security.
2183
2184 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
2185
2186         * NtlmClient.cs: Use assembly name const to load Mono.Security.
2187
2188 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2189
2190         * WebConnectionStream.cs: avoid the exception when getting the content
2191         length if possible.
2192
2193 2004-03-29  Lluis Sanchez Gual <lluis@ximian.com>
2194
2195         * HttpWebRequest.cs: Use a lock block instead of Monitor.Enter/Exit, so
2196         the lock is released in case of exception (for example, a 
2197         ThreadAbortException). This also "fixes" bug #52417.
2198         Beware, this requires a runtime update (due to a bug in Monitor.Exit).
2199         * ServicePoint.cs: Changed method from internal to private, since it
2200         is not called from outside the class.
2201
2202 2004-03-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2203
2204         * HttpWebRequest.cs: added the exception status to the error message.
2205         * WebConnection.cs: add headers using SetInternal instead of Add to
2206         bypass header name validation. Fixes bug #55994.
2207         * WebHeaderCollection.cs: added SetInternal (string header).
2208
2209 2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2210
2211         * WebConnection.cs:
2212         * WebConnectionGroup.cs: the requests queue is now shared for all the
2213         connections belonging to the same connection group.
2214
2215 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
2216
2217         * DefaultCertificatePolicy.cs: New. Certificate validation
2218         policy compatible with the documented one present in Fx. It
2219         allows valid certificates and expired certificates to be used
2220         for SSL connections.
2221         * ServicePointManager.cs: Removed the DummyPolicy. Now creates
2222         a DefaultCertificatePolicy to validate certificates. 
2223
2224 2004-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2225
2226         * ServicePoint.cs: SendContinue is always false for HTTP/1.0
2227
2228         * WebConnection.cs: get rid of WaitForContinue() (yes!) and prevent
2229         calling more the ContinueDelegate more than once when we get the
2230         headers in several packets.
2231
2232         * WebConnectionStream.cs: removed call to WaitForContinue.
2233
2234 2004-02-25  Sebastien Pouliot  <sebastien@ximian.com>
2235
2236         * WebConnection.cs: Update previous patch to use HttpsClientStream
2237         (internal in Mono.Security assembly) in place of SslClientStream.
2238         This will reduce reflection and allow to use ICertificatePolicy.
2239
2240 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2241
2242         * DigestClient.cs: fix quote handling. Reordered attributes in response.
2243         Fixed typo (QOP->CNonce). Now Digest works with apache2.
2244
2245 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2246
2247         * DigestClient.cs: removed Console.
2248         * HttpWebRequest.cs: 401/407 were hanging for GET. Fixed.
2249
2250 2004-02-24  Sebastien Pouliot  <sebastien@ximian.com>
2251
2252         * DigestClient.cs: Fixed issue with Apache server which do not use "
2253         for specifying the digest algorithm (.e.g. algorithm=MD5 not ="MD5").
2254
2255 2004-02-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2256
2257         * HttpWebRequest.cs: arghhh. I used the server response headers instead
2258         of what the client is supposed to send. Thanks to Helge Hess.
2259
2260 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2261
2262         * AuthenticationManager.cs: implemented PreAuthenticate().
2263
2264         * HttpWebRequest.cs: once we know the version of the server, use it if
2265         below the requested one. Remove 'Expect', 'Content-Length' and /or 
2266         'Transfer-Encoding' if appropiate due to changes in version. Fixed 
2267         'Host' header for non-standard ports. Support preauthentication. Closes
2268         bug #50530.
2269
2270 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2271
2272         * HttpWebRequest.cs: check for missing or wrong URI in Location header
2273         when redirecting.
2274
2275         * WebConnection.cs: if the data read does not contain all the headers,
2276         keep it around and read the rest until we get to the response body.
2277         Allow response code with no description. Fixed bug #54543.
2278
2279 2004-02-18  Sebastien Pouliot  <sebastien@ximian.com>
2280
2281         * SecurityProtocolType.cs: Added missing [Serializable] to enum. Added 
2282         Default and Ssl2 to NET_2_0 profile. Enum is now internal for NET_1_0
2283         profile (as we need it for SslClientStream).
2284         * ServicePoint.cs: Added internal SetCertificates(client,server).
2285         * ServicePointManager.cs: Added CheckCertificateRevocationList and
2286         CheckCertificateRevocationList static properties (public in 1.1, 
2287         internal for 1.0).
2288         * WebConnection.cs: Dynamically creates a SslClientStream (from 
2289         Mono.Security assembly) in case of https. Changed NetworkStream to 
2290         Stream everywhere.
2291
2292 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2293
2294         * HttpWebRequest.cs: send the 'Connection: keep-alive' header when we
2295         don't know the server version or it's 1.0.
2296
2297         * ServicePoint.cs: added SetVersion.
2298
2299         * WebAsyncResult.cs: remove ChunkAsyncResult.
2300
2301         * WebConnection.cs: set the ServicePoint version when getting a response
2302         from the server.
2303
2304         * WebConnectionStream.cs: when posting chunked content, send the head,
2305         body and trailer of the chunk at once instead of doing 3 separate
2306         writes, which may cause troubles.
2307
2308 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2309
2310         * WebConnection.cs: if we get a 100 when we're not waiting for it, set
2311         that information in the ServicePoint.
2312
2313         * WebConnectionStream.cs: send headers in the right order for
2314         non-chunked POST.
2315
2316 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2317
2318         * WebConnectionStream.cs: fixed nullrefs in BeginWrite/EndWrite.
2319
2320 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2321
2322         * HttpWebRequest.cs: on second and sucesive tries when authenticating,
2323         don't use chunked encoding for POST, as we know the content length and
2324         have the body. Nullify bodyBuffer always in CheckFinalStatus.
2325
2326         * WebAsyncResult.cs: added ChunkAsyncResult property. It holds the
2327         IAsyncResult when writing CRLF at the end of a chunk.
2328
2329         * WebConnectionStream.cs: support sending chunked data.
2330
2331 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
2332
2333         * HttpWebRequest.cs: When retrying a POST request after an
2334         authentication failure, resend the body. This fixes bug #51841.
2335         * WebConnectionStream.cs: Added properties for getting what's been
2336         written.
2337
2338 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2339
2340         * HttpWebRequest.cs: don't send 'Expect: 100-continue' for 1.0 version.
2341
2342 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2343
2344         * HttpWebRequest.cs: support proxy authentication.
2345
2346 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2347
2348         * BasicClient.cs:
2349         * DigestClient.cs: use IndexOf instead of StartsWith to deal with
2350         servers that provide several authentication schemas.
2351
2352 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2353
2354         * ChunkStream.cs: use an array of buffers instead of a MemoryStream for
2355         storing the chunks. This way, we won't miss traling data from the
2356         previous chunk when a new one is received before the other is fully
2357         read.
2358
2359 2004-01-27  Nick Drochak <ndrochak@ieee.org>
2360
2361         * DigestClient.cs:
2362         * HttpWebRequest.cs:
2363         * IPv6Address.cs:
2364         * WebClient.cs:
2365         * WebConnection.cs:
2366         * WebConnectionStream.cs: Remove unused variables thus eliminating some
2367         build warnings.
2368
2369 2004-01-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2370
2371         * WebConnection.cs: patch by Yaacov Akiba Slama that fixes 100-continue
2372         handling for the case when the same packet also contains the actual
2373         [2-5]xx response.
2374
2375 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
2376
2377         * HttpWebRequest.cs: Added missing property.
2378
2379 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2380
2381         * Dns.cs: don't block forever in EndResolve and EndGetHostByName. Fixes
2382         bug #53222.
2383
2384 2004-01-16  Lluis Sanchez Gual <lluis@ximian.com>
2385
2386         * ChunkStream.cs: The "size" parameter of Write is not the number of
2387         bytes to write, but the last offset to be written. Thus, in WriteAndRead
2388         Back, since "read" is not an offset but the number of bytes, it must be 
2389         added to the offset. Maybe it would be a good idea to change the name of
2390         the parameter, since it is confusing. This should fix bug #52591.
2391
2392 2004-01-12  Lluis Sanchez Gual <lluis@ximian.com>
2393
2394         * WebConnection.cs: Yet another fix for WebConnection. This fixes 
2395         bug #52169.
2396
2397 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2398
2399         * WebConnection.cs: Data.Init is a bad boy. Lluis realized. He also
2400         tidied up the end of ReadDone. Disabled relaunching the request if 2
2401         InitRead are called, since now we don't throw everything into
2402         RegisterWaitForSingleObject but one request at a time.
2403
2404         * WebConnectionGroup.cs: when checking available connections, allow them
2405         not to be Connected but allocated to honor the connection limit.
2406         
2407         * WebConnectionStream.cs: CheckComplete() now checks for nextReadCalled
2408         too. ReadAll don't mess contentLength if it's provided in the headers.
2409
2410         BIG thanks to Lluis. Turns out that we were debugging the same stuff and
2411         his Data.Init discovery was THE thing I was missing.
2412
2413         Fixes bug #51277.
2414
2415 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2416
2417         * ServicePointManager.cs: use GetMaxConnections to get the appropiate
2418         number of connections limit.
2419
2420 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2421
2422         * MonoHttpDate.cs: use the invariant culture, not en-US. Suspected
2423         guilty for bug 52629.
2424
2425 2003-12-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2426
2427         * CredentialCache.cs: return null instead of throwing NotImplemented.
2428
2429 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2430
2431         * HttpWebRequest.cs: fixed checking if method allows a body. Patch by
2432         Benjamin Jemlich (pcgod@gmx.net).
2433
2434 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2435
2436         * HttpWebRequest.cs: deal with authentication schemes that have more
2437         than 1 round trip (Ntlm).
2438
2439 2003-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2440
2441         * NtlmClient.cs: new class that actually uses one from Mono.Http to do
2442         the authentication.
2443
2444 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2445
2446         * HttpWebRequest.cs: when building the redirect URI, use the previous
2447         one as the base URI, which makes relative URIs work.
2448
2449 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2450
2451         * DigestClient.cs: merged in code from Sebastien Pouliot and Greg
2452         Reinacker that Supports cnonce and preauthentication.
2453
2454 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2455
2456         * DigestClient.cs: initial Digest authentication. Works with apache
2457         mod_digest.
2458
2459 2003-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2460
2461         * HttpWebRequest.cs: removed unneeded StringBuilder.
2462         * WebConnection.cs: default to keep the connection open for HTTP/1.1
2463         only or HTTP/1.0 + (Proxy-)Connection header. Fixes bug #51208.
2464
2465 2003-11-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2466
2467         * WebConnection.cs: turns out that socket.Connected is not useful until
2468         we actually try to send/receive data, even if the other end has already
2469         closed the socket. Added TryReconnect() and Connected.
2470
2471         * WebConnectionData.cs: default value for StatusCode is 0 now.
2472
2473         * WebConnectionGroup.cs: reuse the connection since the beginning,
2474         instead of opening up to ConnectionLimit and then reusing.
2475
2476         * WebConnectionStream.cs: reopen the socket if we're trying to reuse
2477         one which fails on first write.
2478
2479 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2480
2481         * WebConnectionStream.cs: when a callback is passed to BeginRead/Write,
2482         wrap it and do our job before calling it. Fixes bug #48497.
2483
2484 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2485
2486         * WebExceptionStatus.cs: Restyled, Added .Net 1.1 members
2487         * SecurityProtocolType.cs: Added and implemented
2488
2489 2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2490
2491         * HttpWebRequest.cs: fixed redirects when they target another host.
2492
2493 2003-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2494
2495         * IPAddress.cs: prevent exceptions when trying to parse the static IPv6
2496         addresses.
2497
2498 2003-10-17  Pedro Martinez Julia  <yoros@wanadoo.es>
2499
2500         * WebClient.cs: use Path.DirectorySeparator instead of "/" for
2501         windows compatibility. Add some checks for file paths like
2502         "C:/xxx/yyy/..." and like "/home/xxx/...".
2503
2504 2003-10-16  Pedro Martinez Julia  <yoros@wanadoo.es>
2505
2506         * WebClient.cs: added a slash between directory and file names.
2507
2508 2003-10-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2509
2510         * HttpWebRequest.cs:
2511         * HttpWebResponse.cs: better abort handling and leave the stream in a
2512         stable status on abort.
2513
2514 2003-10-12  Pedro Martinez Julia  <yoros@wanadoo.es>
2515
2516         * WebClient.cs: refine reading of local files (like MS.NET).
2517
2518 2003-10-10  Pedro Martinez Julia  <yoros@wanadoo.es>
2519
2520         * WebClient.cs: MS.NET works right when we try OpenRead("file.txt")
2521         but we didn't. Now, when Uri fails with an exception, it adds
2522         "file://" before the URI and tries again.
2523
2524 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2525
2526         * ServicePoint.cs: preparing for recycling. Not yet finished.
2527         * ServicePointManager.cs: this is the one that reads config.
2528         * WebConnectionGroup.cs: don't read config here.
2529         * WebConnection.cs: added the queue again. Launch queued requests on
2530         error.
2531
2532 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2533
2534         * WebConnection.cs: the queue is now handled by the threadpool.
2535         Initialize the connection data in a place where it does not depend on
2536         the execution order of the requests in threadpool. More error handling.
2537
2538         * WebConnectionGroup.cs: use the limits in the config file and reuse
2539         connections when the limit is reached.
2540
2541 2003-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2542
2543         * HttpWebRequest.cs: handle 304 a la MS.
2544         * WebConnection.cs: set the response data when reading 0 bytes.
2545
2546 2003-09-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2547
2548         * WebConnectionStream.cs: fix by Lluis to avoid the stream being in an
2549         invalid state.
2550
2551 2003-08-14  Nick Drochak <ndrochak@gol.com>
2552
2553         * WebRequest.cs: Check lower case string since that is what we will add.
2554
2555 2003-08-04  Jerome Laban <jlaban@wanadoo.fr>
2556
2557         * IPHostEntry.cs: Default contructor must not initialize members.
2558         (Fixes bug #45575).
2559
2560 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2561
2562         * CredentialCache.cs: Removed undefined serializable attribute
2563
2564 2003-07-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2565
2566         * ChunkStream.cs:
2567         (WantMore): true if we've not received the last chunk yet. Fixes
2568         bug #45463. Thanks to Miguel for tracking this down and providing a
2569         test case.
2570         
2571         * WebConnection.cs: removed bogus ^M's.
2572         
2573         * WebHeaderCollection.cs: provide more info when the header or value is
2574         wrong.
2575
2576 2003-07-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2577
2578         * ChunkStream.cs: Removed unused members
2579         * IPAddress.cs: Removed unused exception variable, fixes compiler
2580         warning.
2581         * WebConnection.cs: Removed unused exception variables, fixes compiler
2582         warnings.
2583
2584 2003-07-14  Lluis Sanchez Gual <lluis@ximian.com>
2585
2586         * NetConfig.cs: If Clone method is not public, then it must use
2587           explicit interface method implementation syntax.
2588
2589 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
2590
2591         * Dns.cs: Reworked indentation.
2592         Added IPv6 support.
2593         Added literal address checking in GetHostByAddress.
2594         Changed Dns.Resolve behavior.
2595         * IPAddress.cs:
2596         * IPEndPoint.cs: Added IPv6 support.
2597         * IPv6Address.cs: Added address compression.
2598         * NetConfig.cs: Added configuration section.    
2599
2600 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
2601
2602         * ServicePoint.cs: Removed Connect and GetEndPoint methods.
2603         Removed reverse resolution when uri is literal IP address. 
2604         * WebConnection.cs: IPv6 compatibility update: Try to connect
2605         to all addresses returned by IPHostEntry.
2606         * WebConnectionGroup.cs: Removed unused parameter. 
2607
2608 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2609
2610         * WebProxy.cs: Add serialization/ deserialization support
2611
2612 2003-07-10  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2613
2614         * ProxyUseType.cs:
2615         * WebStatus.cs: Deleted (do not exist in this assembly)
2616         * IPv6Address.cs: Made internal
2617
2618 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2619
2620         * HttpWebRequest.cs:
2621         * ServicePointManager.cs:
2622         * WebConnection.cs: added support for proxies.
2623
2624 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2625
2626         * DnsPermissionAttribute.cs:
2627         * SocketPermissionAttribute.cs: Fixed wrong AttributeUsageAttribute
2628
2629 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2630
2631         * WebPermission.cs: Added and partially implemented
2632         * WebPermissionAttribute.cs: Added and implemented
2633
2634 2003-07-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2635
2636         * WebClient.cs: fixed bug #45651.
2637
2638 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2639
2640         * WebClient.cs: Small fix by Sebastian <scut@nb.in-berlin.de>.
2641
2642 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2643
2644         * WebConnection.cs: fixed header writing the reusing a connection and
2645         the server does not send 100-continue response.
2646
2647 2003-06-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2648
2649         * WebConnection.cs: close the socket and connection when disposing.
2650         * WebRequest.cs: removed setter for RequestUri. Allow non-public ctors
2651         when creating instances.
2652
2653         * HttpWebRequest.cs:
2654         * HttpWebResponse.cs:
2655         * FileWebRequest.cs: support serialization.
2656
2657         * FileWebResponse.cs: support serialization and fixed dispose checks.
2658
2659         * FileWebRequestCreator.cs:
2660         * HttpRequestCreator.cs: added internal .ctor.
2661
2662 2003-06-24  Lluis Sanchez Gual <lluis@ximian.com>
2663
2664         * HttpWebRequest.cs: SetWriteStream(): SendRequestHeaders should be
2665         called before asyncWrite.SetCompleted, to make sure that the waiting
2666         thread does not start to send more information before
2667         SendRequestHeaders has finished.
2668
2669 2003-06-22  Lluis Sanchez Gual <lluis@ximian.com>
2670
2671         * WebConnectionStream.cs: Only increment pendingReads if an asynchronous
2672         read is really needed.
2673
2674 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2675
2676         * WebHeaderCollection.cs: prevent duplication headers used niternally.
2677
2678 2003-06-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2679
2680         * HttpWebRequest.cs: if CookieContainer has not been set, make
2681         HttpWebResponse ignore Set-Cookie* headers.
2682
2683         * HttpWebResponse.cs: Set-Cookie and Set-Cookie headers removed if
2684         CookieContainer have been provided to the request.
2685
2686 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2687
2688         * AuthenticationManager.cs: get the list of authentication modules from
2689         the configuration files. Added Clear and fixed Unregister.
2690
2691         * BasicClient.cs: fully implemented.
2692
2693         * HttpWebRequest.cs: added support for Basic authentication when
2694         credentials are set.
2695
2696         * NetworkCredential.cs: fixed GetCredential.
2697
2698 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2699
2700         * HttpWebRequest.cs: *really* take care of requestSent to prevent
2701         sending the same request twice.
2702         * WebAsyncResult.cs: don't close the handle. Just Reset.
2703         * WebConnectionStream.cs: removed unneeded line.
2704
2705 2003-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2706
2707         * HttpWebRequest.cs: use InternalClose when we are not going to send the
2708         rest of the request stream because of an error after sending the
2709         headers.
2710
2711         * WebConnection.cs: check for completion after setting the response.
2712         Enable reading in NextRead.
2713
2714         * WebConnectionStream.cs: re-fixed the count for partially buffered
2715         reads. If the network stream returns 0 bytes, we're done.
2716
2717 2003-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2718
2719         * WebClient.cs: implemented UploadFile. Fixed SetupRequest to set the
2720         special headers *after* the others.
2721
2722 2003-06-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2723
2724         * WebConnectionStream.cs: when the read is partially filled from the
2725         initial buffer, add those bytes too. Thanks to Lluis for debugging this.
2726
2727 2003-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2728
2729         * HttpWebRequest.cs: added ExpectContinue property.
2730         * WebConnection.cs: allow 100 Continue to be delayed after waiting for
2731         it.
2732
2733 2003-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2734
2735         * HttpWebRequest.cs: don't send "Expect: 100-continue" is the server
2736         is known not to respond to that.
2737
2738         * ServicePoint.cs: added SendContinue property.
2739
2740         * WebConnection.cs: only wait 2 seconds for a continue reply. If it
2741         timeouts, set SendContinue to false and proceeed sending data.
2742
2743         * WebConnectionStream.cs: if 100-continue is not received and instead we
2744         get a 417 or anything else, don't send the data.
2745
2746         * WebClient.cs: implemented all missing properties and methods except
2747         UploadFile.
2748
2749 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2750
2751         * FileWebRequestCreator.cs: splitted from WebRequest.
2752         * HttpRequestCreator.cs: splitted fromWebRequest.
2753         * WebRequest.cs: added methods that are used by the new configuration
2754         handler to set prefix/type name requests creators.
2755
2756 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2757
2758         * AuthenticationManager.cs:
2759         * Authorization.cs:
2760         * BasicClient.cs: new file.
2761         * ChunkStream.cs: new file.
2762         * Cookie.cs:
2763         * CookieContainer.cs:
2764         * GlobalProxySelection.cs:
2765         * HttpWebRequest.cs:
2766         * HttpWebResponse.cs:
2767         * IAuthenticationModule.cs:
2768         * ServicePoint.cs:
2769         * ServicePointManager.cs:
2770         * WebAsyncResult.cs: new file.
2771         * WebConnection.cs: new file.
2772         * WebConnectionData.cs: new file.
2773         * WebConnectionGroup.cs: new file.
2774         * WebConnectionStream.cs: new file.
2775         * WebException.cs:
2776         * WebHeaderCollection.cs:
2777         * WebProxy.cs:
2778         * WebResponse.cs:
2779
2780         Reworked HttpWebRequest and related classes.
2781
2782 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
2783
2784         * HttpWebRequest.cs (EndGetResponse): Do not throw exceptions on
2785         InternalServerError (500)
2786
2787 2003-05-29  Miguel de Icaza  <miguel@ximian.com>
2788
2789         * HttpWebRequest.cs (Close): Move the code that accumulates the
2790         output to Close from Flush.  Flush could have been called in the
2791         middle of the processing, and would have generated invalid results
2792         (which it did).
2793
2794 2003-05-23  Zoltan Varga  <vargaz@freemail.hu>
2795
2796         * Dns.cs (GetHostByAddress): Return the local host when called with
2797         IF_ANY.
2798
2799 2003-04-29  Miguel de Icaza  <miguel@ximian.com>
2800
2801         * WebClient.cs (DownloadData): Close the underlyng stream.
2802         (DownloadFile): Use using, so the file gets closed.
2803
2804 2003-04-24  Miguel de Icaza  <miguel@ximian.com>
2805
2806         * WebClient.cs (DownloadData): Instead of using a MemoryStream,
2807         keep track of all the small chunks in an ArrayList.  The
2808         MemoryStream had the property of reallocating itself, and the
2809         problem was that MemoryStream.GetBuffer would return the buffer
2810         (correctly), but not something of the right size.  So clients of
2811         DownloadData would get the extra unused bytes as part of the
2812         result.
2813
2814         The solution would have been to make another copy at this point,
2815         instead, we only keep the small allocations around in the
2816         ArrayList, and we only do one large allocation at the end.
2817
2818         * HttpWebResponse.cs: If there is a Content-Length header, pass
2819         this information to our HttpWebResponseStream, so it knows when to
2820         stop, instead of waiting for the stream to be shut down by the
2821         other end.
2822
2823         * HttpWebRequest.cs: Only set the `delay-header-writing' mode on
2824         the underlying stream if the method will do a content transfer and
2825         no Content-Length was provided. If not (HEAD and GET or
2826         Content-Length provided), keep going.
2827         
2828 2003-04-23  Miguel de Icaza  <miguel@ximian.com>
2829
2830         * HttpWebRequest.cs: .NET Allows the HttpWebRequest to not have
2831         the ContentLength specified on the request.  If that happens, we
2832         have to accumulate all the data written, and once we accumulate
2833         the data, we send it off.  
2834
2835         Notice that the documentation in .NET is actually incorrect, they
2836         state that setting ContentLength is mandatory.  It is not.
2837
2838 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2839
2840         * HttpWebResponse.cs: fixes bug #41180.
2841
2842 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2843
2844         * HttpWebRequest.cs: throw an exception is the response code is >= 300.
2845
2846 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2847
2848         * HttpWebRequest.cs: implemented IDisposable, make the request stream
2849         read only. Changed the way of disposing the socket.
2850
2851         * HttpWebResponse.cs: wrapped the socket in a write-only NetworkStream,
2852         handle chunked transfer encoding (no more hangs), added serialization
2853         stuff, call CheckDisposed at the beginning of methods/properties (not
2854         in a finally clause).
2855
2856 2003-02-17  Nick Drochak <ndrochak@gol.com>
2857
2858         * WebClient.cs : Implemented Credentials property.
2859
2860 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2861
2862         * SocketAddress.cs: byte 1 of the data is the high byte of the family,
2863         not the size.
2864
2865 2003-01-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2866
2867         * WebClient.cs : hacked OpenRead, DownloadData and DownloadFile.
2868
2869 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2870
2871         * HttpWebRequest.cs: applied patch from Tim Haynes
2872         (thaynes@openlinksw.com).
2873
2874         Avoided double-sending of the request to the server when both
2875         GetRequestStream() and GetResponse() are called.
2876         System Header attributes survive the Headers attribute set.
2877         Added handling of Connection: KeepAlive/Close
2878
2879 2002-10-03  Dick Porter  <dick@ximian.com>
2880
2881         * Dns.cs: Fixed GetHostName()
2882
2883 2002-09-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2884
2885         * HttpWebRequest.cs:
2886         * HttpWebResponse.cs: applied another patch from Shahms E. King
2887         (shahms@shahms.com).
2888
2889 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2890
2891         * HttpWebRequest.cs:
2892         * HttpWebResponse.cs: applied patch from Shahms E. King
2893         (shahms@shahms.com).
2894
2895 2002-05-29  Lawrence Pit <loz@cable.a2000.nl>
2896
2897         * MonoHttpDate.cs: added
2898         * HttpWebRequest.cs: using MonoHttpDate
2899         * HttpWebResponse.cs: using MonoHttpDate
2900         * DnsPermission.cs: correct XML output
2901         * SocketPermission.cs: correct XML output
2902
2903 2002-05-21  Lawrence Pit <loz@cable.a2000.nl>
2904
2905         * WebClient.cs: stubbed
2906         * WebProxy.cs: fixed bug; had to change internal representation
2907         of bypasslist to ArrayList, different implementation of checking
2908         regex's.
2909
2910 2002-05-20  Lawrence Pit <loz@cable.a2000.nl>
2911
2912         * WebProxy.cs: added, implemented
2913         * ServicePoint.cs: implemented most
2914         * ServicePointManager.cs: implemented
2915         * HttpWebRequest.cs: started implementation
2916         * HttpWebResponse.cs: improved disposable routines
2917         * FileWebRequest.cs: slight improvement of Close method
2918         
2919 2002-05-19  Lawrence Pit <loz@cable.a2000.nl>
2920
2921         * FileWebRequest.cs: finished implementation of async methods.
2922         * FileWebResponse.cs: improved disposable routines.
2923         * IPEndPoint.cs: fixed bug #24666 in Serialize and Create methods, 
2924         byte ordering of address was backwards.
2925
2926 2002-05-13  Lawrence Pit <loz@cable.a2000.nl>
2927
2928         * Dns.cs: Reimplemented (simplified and fixed) asynchronous methods by
2929         relying on standard asynchronous delegate features. Added checks for
2930         null strings.
2931         * HttpWebResponse.cs: implemented properties
2932         * FileWebResponse.cs: improved the way resources are disposed.
2933         * FileWebRequest.cs: started implementation of asynchronous methods
2934         * ServicePointManager.cs: implemented properties
2935
2936 2002-05-12  Lawrence Pit <loz@cable.a2000.nl>
2937
2938         * HttpWebRequest.cs: properties implemented
2939         * HttpWebResponse.cs: added
2940         * GlobalProxySelection.cs: implemented
2941         * FileWebResponse.cs: added
2942         * FileWebRequest.cs: some methods implemented
2943
2944 2002-05-11  Lawrence Pit <loz@cable.a2000.nl>
2945
2946         * WebHeaderCollection.cs: implemented
2947         * WebRequest.cs: implemented
2948         * FileWebRequest.cs and HttpWebRequest.cs stubs added
2949
2950 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
2951
2952         * Rewrote IPAddress.Parse method, passing all unit tests
2953
2954 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
2955
2956         * fixed bug in IPEndPoint.Equals method
2957         * fixed bug in IPAddress.Parse method
2958         * fixed bug in IPAddress.SwapLong method
2959         * fixed several bugs in Cookie.cs
2960
2961 2002-05-06  Lawrence Pit <loz@cable.a2000.nl>
2962
2963         * WebRequest.cs: added
2964         * WebResponse.cs: implemented
2965         * WebException.cs: implemented
2966         * WebHeaderCollection.cs: added
2967         * HttpVersion.cs: implemented
2968         * HttpContinueDelegate.cs: added
2969         * IWebProxy.cs: added
2970         * IWebRequestCreate.cs: added
2971         * ICertificatePolicy.cs: added
2972         * ServicePoint.cs: stubbed
2973         * ServicePointManager.cs: stubbed
2974         * CookieContainer.cs: added
2975         * Authorization.cs: implemented
2976
2977 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
2978
2979         * CredentialCache.cs: implemented
2980
2981 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
2982
2983         * IPAddress.cs: fixed IsLoopback, address was already in host order
2984
2985 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
2986
2987         * IPv6Address.cs: added (note: not part of .net spec)
2988
2989 2002-05-01  Lawrence Pit <loz@cable.a2000.nl>
2990
2991         * DnsPermission.cs: implemented
2992         * DnsPermissionAttribute.cs: implemented
2993
2994 2002-04-28  Lawrence Pit <loz@cable.a2000.nl>
2995
2996         * EndpointPermission.cs: implemented
2997         * SocketPermission.cs: implemented
2998         * SocketPermissionAttribute.cs: implemented
2999         * ProtocolViolationException.cs: implemented
3000         * Dns.c: passing w32 error code when no host found
3001
3002 2002-04-27  Lawrence Pit <loz@cable.a2000.nl>
3003
3004         * Cookie.cs: implemented
3005         * CookieCollection.cs: implemented
3006         * CookieException.cs: implemented
3007
3008 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3009
3010         * IPAddress.cs: initialize the read only fields with Parse().
3011
3012 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3013
3014         * IPAddress.cs: little changes to behave as MS.
3015
3016 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3017
3018         * Dns.cs (Resolve): behave as MS. Agreed with Mads.
3019
3020 2002-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3021
3022         * IPAddress.cs: the icalls for sockets are endianness-aware. So I
3023         changed a few things. Also included a workaround for bug #23547.
3024
3025 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3026
3027         * IPAddress.cs: use System.BitConverter.IsLittleEndian (suggested
3028         by Paolo) instead of guessing the endianness.
3029
3030         * SocketAddress.cs: implemented Equals() and GetHashcode().
3031         
3032 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3033
3034         * IPEndPoint.cs: modifications to constructors according to the
3035         specifications (suggested by Lawrence Pit).
3036
3037 2002-04-15  Patrik Torstensson <patrik.torstensson@labs2.com>
3038
3039         * IPEndPoint.cs: Fixed build breaker.
3040
3041 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3042
3043         * IPEndPoint.cs: implemented Equals() and GetHashCode(). Now 100%
3044         complete.
3045
3046 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3047
3048         * IPAddress.cs: finished all MonoTODO's. Use network order to store 
3049         the address. Check for max and min values in Address:set. IsLoopback()
3050         returns now true for all 127.x.y.z. Some more checks in Parse ().
3051         Some changes to behave as MS does.
3052
3053 2002-02-24  Duncan Mak  <duncan@ximian.com>
3054
3055         * ICredentialLookup.cs: Added the GetCredential method to the
3056         interface. The interface is named "ICredentials", should this file
3057         be renamed?     
3058
3059         * NetworkCredential.cs: Added to CVS. Need to investigate on how
3060         GetCredential() works
3061
3062 2002-01-23  Dick Porter  <dick@ximian.com>
3063
3064         * SocketAddress.cs: Implemented.
3065
3066         * IPEndPoint.cs: Turned 'Address' field into a real property.
3067         Implemented Create() and Serialize() methods.
3068
3069         * IPAddress.cs: Fixed class constructor, turned 'Address' field
3070         into a real property. Removed undocumented "public
3071         IPAddress(string)" constructor.
3072
3073         * EndPoint.cs: Implemented.  All methods return
3074         NotSupportedException to enforce subclass overriding.
3075
3076         * Dns.cs: Replaced fixed-layout Hostent struct and cygwin
3077         P/Invokes with portable internal calls.
3078
3079 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
3080
3081         * Dns.cs: Updated to API changes.
3082
3083         * IPAddress.cs: Updated API.  Much left to implement.
3084
3085         * Dns.cs: Remove IPToString method
3086
3087 2002-01-06  Ravi Pratap  <ravi@ximian.com>
3088
3089         * Dns.cs, AuthenticationManager.cs, SocketAddress.cs : MonoTODO
3090         attribute insertion.
3091
3092 2001-11-22  Nick Drochak <ndrochak@gol.com>
3093
3094         * IPAddress.cs: Fix constructor bug, properly name Address property,
3095         and use triple-slash for comments.
3096
3097 2001-11-20  Miguel de Icaza  <miguel@ximian.com>
3098
3099         * IPAddress.cs: Updated to contain Any, Broadcast, Loopback and
3100         None as suggested by Phillip.
3101
3102 2001-09-26  Mads Pultz <mpultz@get2net.dk>
3103         * Dns.cs: Initial work on BeginGetHostByName and EndGetHostByName implemented.
3104
3105 2001-09-24  Mads Pultz <mpultz@get2net.dk>
3106
3107         * Dns.cs: Minor changes (some print statements removed)
3108
3109 2001-09-23  Mads Pultz <mpultz@get2net.dk>
3110
3111         * Dns.cs: Initial work submitted to repository.
3112         * IPHostEntry.cs: Initial work submitted to repository.
3113
3114 2001-07-12  Sean MacIsaac  <macisaac@ximian.com>
3115
3116         * Authorization.cs: Fixed compiler error.
3117
3118         * IAuthenticationModule.cs: Changes for Beta2.
3119
3120         * IPAddress.cs: Internal storage changed to be uint not int.
3121
3122         * IPEndPoint.cs: Fixed compiler error.
3123
3124         * EndPoint.cs: Fixed compiler error.
3125
3126         * AuthenticationManager.cs: Fixed typo.