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