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