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