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