In System.Timers:
[mono.git] / mcs / class / System / System.Net.Sockets / ChangeLog
1 2010-03-19  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * Socket.cs: Remove some NET_2_0 defines (using) and add a few
4         MOONLIGHT defines needed to reuse Socket in the client http stack
5         * Socket_2_1.cs: Remove some MOONLIGHT defines
6         * SocketAsyncEventArgs.cs: For Moonlight check policy if outside
7         System.dll (the client stack use sockets with it's own web 
8         xdomain policy)
9
10 2010-03-16  Jb Evain  <jbevain@novell.com>
11
12         * Socket_2_1.cs, SocketAsyncEventArgs.cs: use MOONLIGHT symbol to
13         disambiguate MonoTouch and Moonlight code.
14
15 2010-03-10  Sebastien Pouliot  <sebastien@ximian.com>
16
17         * SocketAsyncEventArgs.cs: Remove the use of reflection to check
18         xdomain poilicy on sockets (since the policy code now resides in
19         System.Net.dll)
20
21 2010-01-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22
23         * NetworkStream.cs: Our explicit impl of IDisposable.Dispose belongs
24         to 1.0/1.1 only. Also move the call to GC.SupressFinalize to
25         Dispose(bool), as expected and as done by other Stream children
26         implementing a destructor.
27         Fixes #564637.
28
29 2010-01-21  Sebastien Pouliot  <sebastien@ximian.com>
30
31         * SocketAsyncEventArgs.cs: Apply Gendarme's ProtectCallToEventDelegatesRule
32
33 2009-12-04  Sebastien Pouliot  <sebastien@ximian.com>
34
35         * System.Net.Sockets/SocketAsyncEventArgs.cs: Implement 
36         ConnectByNameError property for Moonlight 3 (and fx 4.0)
37
38 2009-11-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
39
40         * Socket_2_1.cs: throw when shutting down a socket that is not
41         connected. Don't linger if the socket is not connected.
42
43 2009-11-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
44
45         * Socket_2_1.cs: stop any blocking thread before closing the socket.
46
47 2009-11-03  Sebastien Pouliot  <sebastien@ximian.com>
48
49         * SocketAsyncEventArgs.cs: Set error back to SocketError.Success
50         once CheckEndPoint succeed.
51         [Fix bug #549586]
52
53 2009-10-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
54
55         * Socket.cs: implement *SendFile().
56
57 2009-09-28  Sebastien Pouliot  <sebastien@ximian.com>
58
59         * SocketAsyncEventArgs.cs: Default SocketError.AccessDenied on 
60         Connect in case none of the DnsEndPoint provides an adequate 
61         address (family).
62
63 2009-09-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
64
65         * Socket_2_1.cs: Close(int timeout) blocks up to timeout ms if there's
66         pending data to be written to the socket. If there's no pending data,
67         it closes and returns right away. Instead of using Timer and then
68         doing a 'hard' close(), we set the linger option for the socket.
69
70 2009-09-27  Sebastien Pouliot  <sebastien@ximian.com>
71
72         * SocketAsyncEventArgs.cs: Don't use Socket.Poll for NET_2_1.
73         Throw NIE for use of BufferList in Receive.
74         * Socket.cs: Move Close(int) to Socket_2_1.cs. Remove NET_2_1
75         defines since the file is not used by Moonlight
76         * Socket_2_1.cs: Add Close(int) from Socket. Define out Poll
77         and Blocking.
78
79 2009-09-26  Sebastien Pouliot  <sebastien@ximian.com>
80
81         * SocketAsyncEventArgs.cs: Fix paramater validations and default 
82         values
83
84 2009-09-23  Sebastien Pouliot  <sebastien@ximian.com>
85
86         * Socket_2_1.cs: Remove NET_2_1 socket policy checks from here.
87         * SocketAsyncEventArgs.cs: Support DnsEndPoint correctly (NET_2_1 but
88         that will be useful for NET_4_0 soon). Add socket policy checks here
89         since it could be called several times to connect to a host.
90
91 2009-09-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
92
93         * NetworkStream.cs: after disposing the stream, CanRead/CanWrite
94         return false.
95
96 2009-09-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
97
98         * SocketAsyncEventArgs.cs: fix check for non-null.
99         Fixes bug #516455.
100
101 2009-07-14  Sebastien Pouliot  <sebastien@ximian.com>
102
103         * Socket_2_1.cs, SocketAsyncEventArgs.cs: A bit more NET_2_1 defines
104         to help the tuner remove some extra types for moonlight.
105
106 2009-06-28  Gert Driesen  <drieseng@users.sourceforge.net>
107
108         * Socket.cs: Modified some argument names to match MS. Moved disposed
109         check before argument checks in Receive. Use SocketError.InvalidArgument
110         instead of using magic numbers. Added back comments that was
111         accidentally removed in my previous commit.
112         * Socket_2_1.cs: Modified some argument names to match MS.
113
114 2009-06-28  Gert Driesen  <drieseng@users.sourceforge.net>
115
116         * Socket.cs: In GetSocketOption, throw SocketException when (byte [])
117         option value is null. Use SocketError fields instead of using "magic"
118         number. In SetSocketOption (SocketOptionLevel, SocketOptionName, object)
119         only accept Linger, AddMembership, DropMembership and verify option
120         value.
121         * MulticastOption.cs: Added argument checks. Save interfaceIndex that is
122         passed to .ctor, and removed MonoTODO. Renamed arguments to match MS.
123         Reset InterfaceIndex when LocalAddress is modified, and reset
124         LocalAddress when InterfaceIndex is modified.
125         * UdpClient.cs: Modified exception to more closely match MS. Fixed
126         (int, AddressFamily) .ctor to construct IPv6 endpoint when family is
127         InterNetworkV6. Added null check for multicastAddr to (IPAddress)
128         JoinMulticastGroup overload. In (int, IPAddress) and (IPAddress,
129         IPAddress) overloads of JoinMulticastGroup throw SocketException when
130         client is IPv4. Added null check for multicastAddr to (IPAddress, int),
131         overload, and moved JoinMulticastGroup call after argument checks.
132         * IPv6MulticastOption.cs: Renamed argument names to match MS. Added
133         null check to set_Group. Added range check to set_InterfaceIndex.
134
135 2009-06-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
136
137         * Socket.cs: turn WSAEINVAL into ArgumentException.
138
139 2009-06-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
140
141         * Socket.cs: MS throws a SocketException in the byte[] overload when
142         the value is null.
143
144 2009-05-22  Sebastien Pouliot  <sebastien@ximian.com>
145
146         * Socket_2_1.cs: Do not throw a SecurityException if the security
147         policy check fails in NET_2_1 but set the SocketError to AccessDenied
148         ensure the EndPoint has a valid policy before connecting.
149         * SocketAsyncEventArgs.cs: Don't recurse endlessly in SendCallback
150         and ReceiveCallback if the socket is not connected. Check for
151         AccessDenied in ConnectCallback (needed for the security policy
152         check in NET_2_1).
153
154 2009-05-14  Sebastien Pouliot  <sebastien@ximian.com>
155
156         * Socket_2_1.cs: Add ConnectAsync support for NET_2_1 which will
157         ensure the EndPoint has a valid policy before connecting.
158         * SocketAsyncEventArgs.cs: Add support for IList<ArraySegment<byte>>
159         when sending. Add ConnectSocket for NET_2_1
160
161 2009-05-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
162
163         * TcpClient.cs:
164         * Socket.cs:
165         * UdpClient.cs: use GetHostAddresses() instead of Resolve or
166         GetHostEntry.
167
168 2009-05-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
169
170         * UdpClient.cs: if possible, avoid DNS lookups when the host name is
171         an IP address. Related to bug #502866.
172
173 2009-04-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
174
175         * Socket.cs: return the last error if a connect to multiple addresses
176         fails.
177
178 2009-04-22  Sebastien Pouliot  <sebastien@ximian.com>
179
180         * Socket_2_1.cs: Use old-n-simple CheckProtocolSupport to implement
181         OSSupportsIP[v4|v6] for Moonlight (NET_2_1 only) so we can avoid 
182         including a bunch of types (22) from System.Net.NetworkInformation 
183         and drop the number of [SecuritySafeCritical] methods to audit (the 
184         same 22) and [SecurityCritical] (8) beside getting a smaller 
185         System.Net.dll assembly :)
186
187 2009-04-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
188
189         * Socket.cs: End* methods can only be called once per IAsyncResult.
190         Bug #466031 fixed.
191
192 2009-04-09  Sebastien Pouliot  <sebastien@ximian.com>
193
194         * Socket.cs: Split socket class into two files (this one and the
195         new Socket_2_1.cs). This let us remove (some) existing #if in the
196         sources and avoid (a lot) of new ones for Moonlight.
197         * Socket_2_1.cs: Just enough of socket for NET_2_1. This helps
198         the tuner not to bring a lot of extra stuff (some visible)
199         into Moonlight.
200         * SocketAsyncEventArgs.cs: Ifdef out some cases for NET_2_1 so 
201         Moonlight can use it's own (smaller) SocketAsyncOperation enum
202
203 2009-02-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
204
205         * Socket.cs: instead of clearing the sockets form the output and then
206         adding them back, we just remove the ones that have not been signaled.
207         Fixes bug #354090 and bug #476138.
208
209 2009-01-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
210
211         * Socket.cs: don't throw when there's no ipv6 configuration.
212
213 2009-01-09  Dick Porter  <dick@ximian.com>
214
215         * Socket.cs: Special case 0-length receive requests in the
216         BeginAccept overloads that wait for data, so they behave as the
217         non-waiting version.  Seems to match MS behaviour, fixes bug
218         464201.
219
220 2009-01-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
221
222         * TcpClient.cs: use IPv6Any when the family is IPv6.
223         Bug #462688 fixed.
224
225 2008-12-30  Bill Holmes  <billholmes54@gmail.com>
226
227         * Socket.cs (Accept_internal) :  Changing the signature to pass 
228           the blocking state.
229
230         Code is contributed under MIT/X11 license.
231
232 2008-12-20  Miguel de Icaza  <miguel@novell.com>
233
234         * SocketException.cs: Add missing API.
235
236         * SocketAsyncEventArgs.cs (Dispose): this has to be a public
237         member according to the specs.
238
239 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
240
241         * Socket.cs: add a new ReceiveFrom_nocheck that does not throw an
242         exception in case of error.
243
244 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
245
246         * Socket.cs: if Blocking is set, translate a WouldBlock into a
247         TimedOut.
248
249 2008-12-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
250
251         * UdpClient.cs: don't Poll() in Receive(), the call to ReceiveFrom
252         will block anyway. Fixes bug #455894.
253
254 2008-11-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
255
256         * Socket.cs: mark the socket as not connected when there is a pending
257         error or exception about to be thrown.
258         Bug #443346 fixed.
259
260 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
261
262         * Socket.cs : Adding a comment to provide locations where
263           changes to MonoSocketAsyncResult need to be synced.
264
265         Code is contributed under MIT/X11 license.
266
267 2008-09-06  Atsushi Enomoto  <atsushi@ximian.com>
268
269         * Socket.cs : (SocketAsyncResult) release byte buffer early so that
270           it does not have to store extra data in pool. Fixed bug #397627.
271
272 2008-07-31  Jb Evain  <jbevain@novell.com>
273
274         * Socket.cs
275         * NetworkStream.cs: cleanup for NET_2_1
276
277         * SocketException_2_1.cs: new specific version for NET_2_1.
278
279 2008-06-19  Dick Porter  <dick@ximian.com>
280
281         * Socket.cs: Implement generic Send() and Receive() methods.
282         Fixes bug 395168.
283
284 2008-06-12  Stephane Delcroix  <sdelcroix@novell.com>
285
286         * Socket.cs: minimal changes to run in the 2.1 profile
287
288 2008-06-11  Stephane Delcroix  <sdelcroix@novell.com>
289
290         * SocketAsyncEventArgs.cs: catch SocketException in ConnectAsync
291         and set the SocketError accordingly.
292
293 2008-05-09  Marek Habersack  <mhabersack@novell.com>
294
295         * SocketAsyncEventArgs.cs: implemented support for executing
296         asynchronous socket actions, called from the new xxxxAsync methods
297         in Socket. The asynchronous operations do not use the ThreadPool
298         as I can't get the sample applications to work (send/receive
299         callbacks don't work) - it may change in the future.
300
301         * Socket.cs: implemented several xxxxAsync 2.0sp1 methods. The
302         ones not implemented for now are: ReceiveMessageFromAsync and
303         SendPacketsAsync. AcceptAsync doesn't perform the check for the
304         buffer size for now - need to implement runtime support for that.
305         Made several methods internal, so that they can be accessed from
306         SocketAsyncEventArgs code.
307
308 2008-05-08  Marek Habersack  <mhabersack@novell.com>
309
310         * SocketAsyncOperation.cs, SendPacketsElement.cs,
311         SocketAsyncEventArgs.cs: added initial implementations for
312         2.0SP1/3.5 classes used in the (to be implemented) new xxxAsync
313         methods of the Socket class.
314
315 2008-04-17  Miguel de Icaza  <miguel@novell.com>
316
317         * NetworkStream.cs: Throw an IOException if the socket is not
318         connected, not an ArgumentException.   
319
320         Fixes #371923, it is also the way its documented on MSDN. 
321
322 2008-04-13  Jb Evain  <jbevain@novell.com>
323
324         * Socket.cs: ifdef out the Sys.Config part for the
325         2.1 profile.
326         Merged from the Moonlight 2 branch.
327
328 Wed Mar 12 20:06:07 CET 2008 Paolo Molaro <lupus@ximian.com>
329
330         * Socket.cs: add a static ctor so that ipv4Supported and ipv6Supported
331         are initialized (they are used by the runtime).
332
333 2008-02-01  Dick Porter  <dick@ximian.com>
334
335         * TcpClient.cs: If the Connect fails (when given an array of
336         addresses) leave the socket object in a usable state.  Fixes bug
337         355473.
338
339 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
340
341         * NetworkStream.cs : in 2.0 Close() is not needed and does not exist.
342
343 2007-11-01  Miguel de Icaza  <miguel@novell.com>
344
345         * Socket.cs: Do not set the Send and Receive buffer sizes for the
346         socket to the defaults set on Windows, they kill our performance.
347
348         Thanks to Zoltan Varga for tracking the performance issue down.
349         The bug was #325032
350
351 2007-10-30  Dick Porter  <dick@ximian.com>
352
353         * UdpClient.cs: Don't set the multicast option twice.  Fixes bug
354         324033.
355
356 2007-10-21  Robert Jordan  <robertj@gmx.net>
357
358         * Socket.cs: Remove GetHashCode override from the NET_2_0
359         profile. Add LAMESPEC comment. Fixes bug #325113.
360
361 2007-09-22  Gert Driesen  <drieseng@users.sourceforge.net>
362
363         * Socket.cs: Removed unused method.
364
365 2007-08-02  Dick Porter  <dick@ximian.com>
366
367         * Socket.cs: Patch from Brian Nickel (brian.nickel@gmail.com) to
368         improve EndPoint handling.
369
370 2007-07-08  Gert Driesen  <drieseng@users.sourceforge.net>
371
372         * Socket.cs: Code formatting. Marked not implemented methods as TODO.
373         Removed extra spaces.
374
375 2007-07-04  Dick Porter  <dick@ximian.com>
376
377         * Socket.cs: Don't set DontFragment by default for IPv6 sockets.
378         Fixes bug 81985.
379
380 2007-05-16 Adar Wesley <adarw@mainsoft.com>
381
382         * Socket.jvm.cs: added missing methods EndDisconnect, IOControl,
383         Send 2.0 overloads, Receive 2.0 overloads, ReceiveMessageFrom,
384         BeginReceiveMessageFrom, EndReceiveMessageFrom, 
385         EndAccept 2.0 overloads, BeginSend, EndSend, BeginReceive, 
386         EndReceive, SendFile, BeginSendFile, EndSendFile, Disconnect,
387         DuplicateAndClose
388
389 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
390
391         * Socket.jvm.cs: Handle property throws NotImplementedException.        
392
393 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
394
395         * NetworkStream.cs:
396         * TcpClient.cs:
397         * TcpListener.cs:
398         * UdpClient.cs:                 
399         added MonoNotSupported attribute for TARGATE_JVM.       
400                 
401 2007-03-11  Gert Driesen  <drieseng@users.sourceforge.net>
402
403         * TcpClient.cs: Do not initialize network stream in Connect. In
404         Dispose, only nullify client if network stream was not obtained.
405         Fixes bug #81105.
406
407 2007-01-30  Ilya Kharmatsky <ilyak -at- mainsoft.com>
408
409         * Socket.jvm.cs: additional stubs for net_2_0 properties,
410         bug fixes (EnsureStillUsable method inserted)
411
412 2007-01-28  Ilya Kharmatsky <ilyak -at- mainsoft.com>
413
414         * Socket.jvm.cs: added stubs for net_2_0 properties and methods.
415
416 2007-01-26  Dick Porter  <dick@ximian.com>
417
418         * Socket.cs: SupportsIPv6 is obsolete in the 2.0 profile.  Stub
419         out BeginReceiveMessageFrom(), BeginSendFile(),
420         EndReceiveMessageFrom(), EndSendFile(), ReceiveMessageFrom(), and
421         SendFile().
422
423         * IPPacketInformation.cs: New in the 2.0 profile
424
425         * SocketFlags.cs: Remove useless (and empty) inline documentation,
426         and add 2.0 items.
427
428         * TcpListener.cs: Mark Server as public in the 2.0 profile.
429
430         * UdpClient.cs: Mark Dispose(bool) as protected in the 2.0
431         profile.
432
433         System.Net.Sockets should now be 2.0-complete.
434
435 2007-01-26  Dick Porter  <dick@ximian.com>
436
437         * Socket.cs: There's no point checking the SO_ERROR status of a
438         socket after poll() or select() if we already know that connected
439         == true.
440
441 2007-01-24  Dick Porter  <dick@ximian.com>
442
443         * IOControlCode.cs: 
444         * SocketInformationOptions.cs: 
445         * TransmitFileOptions.cs: Fix enum values
446
447         * AddressFamily.cs: Not Serializable in the 2.0 profile
448
449 2007-01-24  Dick Porter  <dick@ximian.com>
450
451         * NetworkStream.cs: 2.0 profile updates, based on a patch by
452         Sridhar Kulkarni (sridharkulkarni@gmail.com)
453
454 2007-01-23  Dick Porter  <dick@ximian.com>
455
456         * TcpListener.cs: 
457         * TcpClient.cs: 2.0 profile updates, based on a patch by Sridhar
458         Kulkarni (sridharkulkarni@gmail.com)
459
460 2007-01-22  Miguel de Icaza  <miguel@novell.com>
461
462         * Socket.cs: Move the throw new NotImplementedException ()
463         elsewhere to prevent Moma reports.
464
465 2007-01-20  Dick Porter  <dick@ximian.com>
466
467         * Socket.cs(SocketDefaults): Catch and ignore any SocketExceptions
468         thrown from setting default socket options - some platforms might
469         not support a particular default we're trying to set.
470
471 2007-01-11  Dick Porter  <dick@ximian.com>
472
473         * IOControlCode.cs: 
474         * SocketInformation.cs: 
475         * Socket.cs: 
476         * UdpClient.cs: 2.0 profile updates, loosely based on a patch by
477         Sridhar Kulkarni.
478
479         * SocketInformationOptions.cs: 
480         * TransmitFileOptions.cs: Implemented by Sridhar Kulkarni
481         (sridharkulkarni@gmail.com)
482
483 Wed Dec 13 12:04:02 CET 2006 Paolo Molaro <lupus@ximian.com>
484
485         * Socket.cs: stub ReceiveBufferSize and SendBufferSize to
486         get ironpython to compile.
487
488 2006-11-23  Dick Porter  <dick@ximian.com>
489
490         * Socket.cs: Only set Connected = true in Poll() and Select() if
491         the socket error status is 0.  Fixes bug 79878.
492
493 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
494
495         * Socket.cs,NetworkStream.cs,SocketException.cs: TARGET_JVM
496
497 2006-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
498
499         * Socket.cs: update the SocketOperation enum.
500
501 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
502
503         * Socket.cs: replace hardcoded error numbers with the SocketError
504         values. When ReceiveTimeout is set on a blocking socket, correctly
505         report timeouts in the generated exception.
506         
507         * SocketException.cs: add new internal ctor (int, string).
508
509 2006-08-12  Miguel de Icaza  <miguel@novell.com>
510
511         * Socket.cs (NoDelay): Implement.
512
513 2006-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
514
515         * Socket.cs: patch from Sanghyeon Seo that implements
516         (Send|Receive)Timeout for 2.0.
517         * MulticastOption.cs: more 2.0 stuff.
518
519 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
520
521         * Socket.cs : use ConfigurationManager.GetSection() under NET_2_0.
522           Also make sure to avoid NRE.
523
524 2006-06-24  Zoltan Varga  <vargaz@gmail.com>
525
526         * Socket.cs: Add stubs for net 2.0 SendTimeout and ReceiveTimeout properties.
527
528 2006-06-20  Zoltan Varga  <vargaz@gmail.com>
529
530         * ProtocolType.cs SocketOptionName.cs: Add missing net 2.0 fields.
531
532 2006-05-30  Gert Driesen  <drieseng@users.sourceforge.net>
533
534         * NetworkStream.cs: Marked Dispose (bool) virtual on 1.x profile.
535
536 2006-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
537
538         * Socket.cs:
539         * SocketError.cs: implemented Reseive/Send overloads that do not throw
540         in case of error. Patch by Tomi Valkeinen.
541
542 2006-03-11  Miguel de Icaza  <miguel@novell.com>
543
544         * NetworkStream.cs (Dispose): Use the right signature depending on
545         the profile being built.
546
547 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
548
549         * Socket.cs: pass something not empty to the unixep ctor.
550
551 2006-03-03  Dick Porter  <dick@ximian.com>
552
553         * UdpClient.cs: Fix IPv6 family check.  Fixes bug 77689.
554
555 2006-02-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
556
557         * TcpClient.cs: when the socket is not connected, don't try to set the
558         socket options, as they are ignored on linux. Wait until Connect
559         succeeds and then apply the options.
560
561 2006-02-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
562
563         * Socket.cs: added a missing overload for SetSocketOption.
564
565 2006-01-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
566
567         * Socket.cs: use the 2.0 configuration classes when checking for IPv6
568         support.
569
570 2006-01-04  Sebastien Pouliot  <sebastien@ximian.com>
571
572         * TcpClient.cs: The Client property is public in 2.0 while it was
573         protected in earlier release. Fix bug #77048.
574
575 2005-12-07  Robert Jordan  <robertj@gmx.net>
576
577         * SocketError.cs: Added.
578         * SocketException: Implemented SocketErrorCode. Fixes bug #76915.
579
580 2005-10-11  Dick Porter  <dick@ximian.com>
581
582         * Socket.cs: Don't call connect(2) twice for non-blocking sockets,
583         it breaks on macos (and probably other bsd-based stacks too,) use
584         poll() and getsockopt() to check if it worked.
585
586 2005-09-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
587
588         * Socket.cs: add checks for 'disposed' all over. Fixes bug #76249.
589
590 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
591
592         * TcpClient.cs: patch by Hans Kratz that uses an integer when setting
593         NoDelay instead of a bool, which is only handled in 2.0.
594
595 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
596
597         * Socket.cs: disallow connecting to .Any addresses. Fixes bug #75154.
598
599 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
600
601         * Socket.cs: adapted Select to the new Select_internal that uses poll()
602         instead of select(). Managed part of the fix for bug #71203.
603
604 2005-05-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
605
606         * Socket.cs: apply the same hack on blocking Connect calls as the one
607         used in Accept.
608
609 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
610
611         * Socket.cs: see bug #74842, which is fixed with this patch for details
612         and test cases on the blocking behavior of accept() when close() is
613         called from another thread. The solution applied is to Abort the thread
614         that is blocking in Accept_internal() when someone calls Close (), then
615         reset the abort state if the socket is disposed and return the same
616         error as MS (10004 - interrupted).
617
618 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
619
620         * Socket.cs: match MS behavior on SetSocketOption with a boolean
621         argument. MS 1.1 throws an ArgumentException, but 2.0 turns true/false
622         into 1/0 and works fine. Fixes bug #71753. Added checks for disposed
623         in the 3 SetSocketOption.
624
625 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
626
627         * Socket.cs: if there are outstanding aio requests and one of them gets
628         an ObjectDisposedException, throw the same exception for the rest.
629
630 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
631
632         * Socket.cs: removed hack added to fix bug #53229 (more than a year ago)
633         that kept sockets opened until all AIO operations where finished. If
634         the socket is closed, Receive returns 0 in EndReceive, the rest throw
635         the ObjectDisposedException. Set the socket handle to -1 when closing.
636
637 2005-04-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
638
639         * Socket.cs: Begin/End Send/SendTo guarantee that all bytes are written
640         or an exception is thrown. Fixes bug #74475.
641
642 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
643
644         * Socket.cs: no need for locking in Worker. The actual read / write for
645         Receive / Send is performed in the runtime time.
646
647 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
648
649         * Socket.cs: added a 'blocking' field that is passed to the runtime.
650
651 2005-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
652
653         * Socket.cs: invoke the callback after scheduling the next request for
654         the socket. Fixes bug #74539.
655
656 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
657
658         * Socket.cs: update socket connected status in an async request finishes
659         synchronously. Use 'callback' instead of 'real_callback' field, which is
660         now unused.
661
662 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
663
664         * Socket.cs: added SocketOperation enum and 2 new fields to
665         SocketAsyncResult that are used by the runtime. Asynchronous read/write
666         are serialized so that only 1 of each kind is really 'active'.
667         Handle non-blocking connects in BeginConnect instead of doing 2 Poll()
668         in the threadpool.
669
670         * NetworkStream.cs: better message for the exception.
671
672 2005-04-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
673
674         * Socket.cs: remove unused async IO code.
675
676 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
677
678         * Socket.cs: don't Poll/block in Connect aither.
679
680 2005-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
681
682         * Socket.cs: don't block on Accept if the socket is non-blocking.
683         Fixes bug #73053. Patch by Ankit Jain.
684
685 2005-02-23  Dick Porter  <dick@ximian.com>
686
687         * UdpClient.cs: Set the Broadcast option, as apparently the MS
688         runtime defaults make UDP sockets broadcastable.
689
690 2004-12-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
691
692         * Socket.cs: for Receive*/Send*, don't set the connected status to false
693         when the error is EINPROGRESS or EWOULDBLOCK.
694
695 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
696
697         * NetworkStream.cs: Write should ensure that writes all the contents
698         of the buffer. Fixes bug #70123. Besos para Miguelito.
699
700 2004-10-14  Dick Porter  <dick@ximian.com>
701
702         * Socket.cs (Sockets ): Set Accept()ed socket blocking status to
703         be the same as the listening socket.  This follows MS behaviour.
704
705 2004-08-04  Dick Porter  <dick@ximian.com>
706
707         * Socket.cs: Update Connected state in Select and Poll; this is
708         when we find out that non-blocking Connects succeed.  Fixes bug
709         62398.
710
711 2004-07-28  Dick Porter  <dick@ximian.com>
712
713         * Socket.cs: ReceiveFrom might not return a valid EndPoint.  Patch
714         by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug 61608.
715
716 2004-07-15  Dick Porter  <dick@ximian.com>
717
718         * Socket.cs: Don't try and dereference a null array in Select()
719         (possible if a descriptor list of length 0 was passed.)  Patch by
720         Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug 61595.
721
722 2004-07-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
723
724         * Socket.cs: if'ed RemoveReferences calls.
725
726 2004-07-09  Dick Porter  <dick@ximian.com>
727
728         * Socket.cs: Slight tweak to allow unknown objects to be returned
729         by GetSocketOption().
730
731 2004-06-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
732
733         * Socket.cs: connect on non-blocking sockets returns EINPROGRESS. Fixes
734         bug #60811.
735
736 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
737
738         * Socket.cs: wrong error code in connect and accept. EWOULDBLOCK is
739         10035. Fixes bug #60563.
740
741 2004-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
742
743         * Socket.cs: fixed Accept for non-blocking sockets.
744
745 2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
746
747         * LingerOption.cs: marked field private to fix API signature
748         * MulticastOption.cs: marked field private to fix API signature
749
750 2004-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
751
752         * Socket.cs: throw ArgumentNullException if all the list are null OR
753         empty. Fixes bug #59632.
754
755 2004-05-21  Patrik Torstensson <totte@hiddenpeaks.com>
756
757         * TcpListener.cs: Fixes a lot of the problems with remoting nunit tests.
758         
759         (AcceptTcpClient): Don't create TcpClient before a
760         connection is accepted.
761         
762         (LocalEndPoint): Use Server LocalEndPoint if connected
763         otherwise use endpoint from ctor.
764         
765         (Init): Save end point, not server endpoint. This did
766         cause TcpListener to ignore port sent via constructor.
767
768         (Pending): Fixed wait time (method should return directly)
769         
770         (Start): Moved Bind here instead of Init method; old method
771         caused us to bind ports even if the listener was stopped.
772         
773         (Stop): Null server when stopping
774
775 2004-05-13  Dick Porter  <dick@ximian.com>
776
777         * UdpClient.cs: 
778         * TcpClient.cs: Public API fixes
779
780 2004-05-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
781
782         * Socket.cs: fixed Connect for non-blocking sockets. Closes bug #58169.
783
784 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
785
786         * Socket.cs: fix for BeginConnect and non-blocking sockets.
787
788 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
789
790         * Socket.cs: Use assembly name const to load Mono.Posix.
791
792 2004-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
793
794         * Socket.cs: only enable socket AIO if MONO_ENABLE_SOCKET_AIO is there.
795         I will remove this once THE bug is hunted.
796
797 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
798
799         * Socket.cs: added support for unmanaged asynchronous IO. Speed up
800         error checking.
801         * UdpClient.cs: fixed Dispose so that it only closes the socket when
802         called explicitly.
803
804 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
805
806         * Socket.cs: added GetSupportsAsync and Poll_internal internal calls.
807         Cleaned up Worker class: moved fields to SocketAsyncResult and use Poll
808         when the socket is non-blocking before getting EWOULDBLOCK error.
809
810 2004-04-08  Dick Porter  <dick@ximian.com>
811
812         * Socket.cs: Rearrange the internal calls so that the exceptions
813         are thrown from managed code
814
815 2004-03-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
816
817         * Socket.cs: when Dispose (bool) is called from the finalizer, always
818         do the cleanup. Fixes yet another nullref with xsp.
819
820 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
821
822         * Socket.cs: implemented IOControl.
823
824 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
825
826         * Socket.cs: use the threadpool for asynchronous calls instead of
827         creating new threads.
828
829 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
830
831         * Socket.cs: added locks around waithandle assign and comparison in
832         class Worker. Handle other exceptions than SocketException for
833         non-blocking sockets.
834
835 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
836
837         * Socket.cs: handle WSAEWOULDBLOCK for non-blocking sockets. Fixes
838         bug #53168. Avoid the creation of the ManualResetEvent in class Worker
839         whenever possible.
840
841 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
842
843         * Socket.cs: if we have a pending async event, delay socket closing
844         until EndX is called. Fixes bug #53229. Check parameters and if the
845         socket has been disposed. Implemented IDisposable explicitly. The
846         threads created have IsBackground = true now.
847
848 2004-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
849
850         * Socket.cs: patch from Brad Fitzpatrick <brad@danga.com> episode 2.
851
852 2003-12-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
853
854         * Socket.cs: fix for several asynchronous methods to delay exception
855         throwing.  Patch by Brad Fitzpatrick <brad@danga.com>.
856
857 2003-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
858
859         * TcpListener.cs: get the LocalEndPoint from the socket after binding.
860         Fixes bug #52329.
861
862 2003-10-20  Miguel de Icaza  <miguel@ximian.com>
863
864         * TcpClient.cs: Fix void Dispose (bool disposing) to follow the
865         pattern.  It was shutting down the managed resources even in the
866         finalizer case, it should only do that when called from
867         IDisposable.Dipose.
868
869 2003-09-11  Lluis Sanchez Gual <lluis@ximian.com>
870
871         * NetworkStream.cs: Added [In,Out] attributes to Read method.
872
873 2003-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
874
875         * TcpListener.cs: various fixes to make the new tests pass. Closes
876         bug #47848.
877
878 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
879
880         * UdpClient.cs (Receive): Fix Bug 45633;  We should do a blocking
881         call until a datagram is arrives from the remote host.  This
882         removes the 512 "magic" buffer size when we did not have any data.
883  
884 2003-07-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
885
886         * NetworkStream.cs:
887         * Socket.cs: fixed array boundary checks. 0 sized arrays are allowed.
888
889 2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
890
891         * Socket.cs: Added GetHashCode method
892
893 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
894
895         * Socket.cs:
896         * ProtocolType.cs:
897         * SocketOptionLevel.cs:
898         * TcpListener.cs:
899         * TcpClient.cs:
900         * UdpClient.cs:
901         
902         Added IPv6 support.
903
904         * IPv6MulticastOption.cs: Added for IPv6 support.
905
906 2003-05-16  Dick Porter  <dick@ximian.com>
907
908         * Socket.cs: Use Mono.Posix.UnixEndPoint if its available
909
910 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
911
912         * MulticastOption.cs: patch by Jerome Laban included in bug #42393.
913
914 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
915
916         * Socket.cs:
917         (Select): don't create arrays if not needed.
918         (Poll): call Select_internal directly.
919
920         Warning: you need an up to date runtime for this to work!
921
922 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
923
924         * UdpClient.cs: don't bind the socket unless .ctor (IPEndPoint) is used.
925         Added more checks and throws.
926         Small fixes in Send to avoid duplicating the buffer.
927         Moved CheckIfDisposed calls to the start of the methods instead of doing
928         the check inside a finally clause.
929
930 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
931
932         * Socket.cs:
933         (SendTo): fix from Jerome Laban <jlaban@wanadoo.fr>.
934
935 2003-02-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
936
937         * Socket.cs: patch from Elan Feingold <efeingold@mn.rr.com>. Fixes
938         NullReferenceException when the callback is null.
939
940 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
941
942         * NetworkStream.cs: allow 0 size array in Write.
943
944 2003-02-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
945
946         * Socket.cs: make Worker.Connect and Receive work with non-blocking
947         sockets. May be Receive* and Send* in Worker need to do the same. I'll
948         wait for bug reports. Set IsCompleted to true before invoking the end
949         callback. Fixes bug #38136.
950
951 2003-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
952
953         * NetworkStream.cs: the check for disposed should not be done in the
954         finally clause.
955
956 2003-01-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
957
958         * UdpClient.cs: fixed bug #36226.
959
960 2002-11-13  Dick Porter  <dick@ximian.com>
961
962         * Socket.cs: Only close the socket in one place, ie the Dispose
963         method.  Fixes bug 32054.
964
965 2002-11-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
966
967         * Socket.cs: offset == size == 0 it's ok in Send ().
968
969 2002-11-03  Phillip Pearson  <pp@myelin.co.nz>
970
971         * TcpClient.cs: Fixed SetTcpClient() to pass through to the Client 
972         property, which now sets stream to null (it's set by GetStream()).  This 
973         should make GetStream() work on a TcpClient which has had the socket set 
974         by assignment to the Client property, not only one that has been created 
975         by TcpListener.AcceptTcpClient().
976
977 2002-10-08  Dick Porter  <dick@ximian.com>
978
979         * Socket.cs: 
980         * NetworkStream.cs: Bounds checking fixes, and better exception
981         texts.  Changes by timothyjmills@hotmail.com (Timothy J. Mills).
982
983 2002-10-03  Dick Porter  <dick@ximian.com>
984
985         * TcpClient.cs: NoDelay is a TCP option, not Socket
986
987 2002-09-16  Miguel de Icaza  <miguel@ximian.com>
988
989         * SocketFlags.cs: Add missing enumeration.
990
991         * UdpClient.cs: Make Dispose private.
992
993 2002-08-20  Dick Porter  <dick@ximian.com>
994
995         * Socket.cs: Fix deadlock when the AsyncResult callback calls
996         End*().  Set the async request's worker property so it can return
997         results.  These two fixes combined fix bug 28092.
998
999 2002-06-24  Dick Porter  <dick@ximian.com>
1000
1001         * Socket.cs: Make SetSocketOption cope with boolean values (they
1002         are passed as objects, not the ints the runtime was expecting)
1003
1004 2002-05-17  Lawrence Pit <loz@cable.a2000.nl>
1005         * TcpListener.cs: Renamed LocalEndPoint to LocalEndpoint
1006         * NetworkStream.cs, UdpClient.cs and TcpClient.cs: modified disposable 
1007         routines, added checks for disposed state.
1008         * UdpClient.cs: commented out GetHashCode and Equals as it's not
1009         overriden in ms.net implementation.
1010
1011 2002-05-17  Jaroslaw Kowalski <jarek@atm.com.pl>
1012         * TcpClient.cs: fixed SetTcpClient so that
1013         TcpListener.AcceptTcpClient works and allows
1014         you to call GetStream() on its result
1015
1016 2002-04-24  Dick Porter  <dick@ximian.com>
1017
1018         * Socket.cs (Poll): Give correct argument to Select(), as spotted
1019         by Jaroslaw Kowalski <jarek@atm.com.pl>
1020
1021 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1022
1023         * UdpClient.cs: implemented.
1024
1025 2002-04-02  Dick Porter  <dick@ximian.com>
1026
1027         * TcpListener.cs: in Start(), set the socket listen backlog value
1028         to a sane value (noticed by Jonathan Stowe <gellyfish@gellyfish.com>)
1029
1030 2002-02-13  Dick Porter  <dick@ximian.com>
1031
1032         * Socket.cs: Implemenent Select, Blocking, Connected,
1033         GetSocketOption, Poll, SetSocketOption and Shutdown
1034
1035         * MulticastOption.cs: 
1036         * LingerOption.cs: Delete override methods that don't need to be
1037         implemented
1038
1039 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1040
1041         * NetworkStream.cs: Implement class.
1042
1043 2002-01-23  Dick Porter  <dick@ximian.com>
1044
1045         * SocketException.cs: Implemented
1046
1047         * Socket.cs: Implemented most methods
1048
1049         * LingerOption.cs: Made compile
1050
1051         * AddressFamily.cs: Removed empty auto-generated comments
1052
1053 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
1054
1055         * SocketException.cs: Reimplemented.
1056
1057 2002-01-06  Ravi Pratap  <ravi@ximian.com>
1058
1059         * ChangeLog : Add to this directory.
1060
1061         * SocketException.cs, TcpClient.cs, TcpListener.cs : MonoTODO
1062         attribute decoration.