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