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