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