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