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