1 2009-05-22 Sebastien Pouliot <sebastien@ximian.com>
3 * Socket_2_1.cs: Do not throw a SecurityException if the security
4 policy check fails in NET_2_1 but set the SocketError to AccessDenied
5 ensure the EndPoint has a valid policy before connecting.
6 * SocketAsyncEventArgs.cs: Don't recurse endlessly in SendCallback
7 and ReceiveCallback if the socket is not connected. Check for
8 AccessDenied in ConnectCallback (needed for the security policy
11 2009-05-14 Sebastien Pouliot <sebastien@ximian.com>
13 * Socket_2_1.cs: Add ConnectAsync support for NET_2_1 which will
14 ensure the EndPoint has a valid policy before connecting.
15 * SocketAsyncEventArgs.cs: Add support for IList<ArraySegment<byte>>
16 when sending. Add ConnectSocket for NET_2_1
18 2009-05-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
22 * UdpClient.cs: use GetHostAddresses() instead of Resolve or
25 2009-05-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
27 * UdpClient.cs: if possible, avoid DNS lookups when the host name is
28 an IP address. Related to bug #502866.
30 2009-04-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
32 * Socket.cs: return the last error if a connect to multiple addresses
35 2009-04-22 Sebastien Pouliot <sebastien@ximian.com>
37 * Socket_2_1.cs: Use old-n-simple CheckProtocolSupport to implement
38 OSSupportsIP[v4|v6] for Moonlight (NET_2_1 only) so we can avoid
39 including a bunch of types (22) from System.Net.NetworkInformation
40 and drop the number of [SecuritySafeCritical] methods to audit (the
41 same 22) and [SecurityCritical] (8) beside getting a smaller
42 System.Net.dll assembly :)
44 2009-04-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
46 * Socket.cs: End* methods can only be called once per IAsyncResult.
49 2009-04-09 Sebastien Pouliot <sebastien@ximian.com>
51 * Socket.cs: Split socket class into two files (this one and the
52 new Socket_2_1.cs). This let us remove (some) existing #if in the
53 sources and avoid (a lot) of new ones for Moonlight.
54 * Socket_2_1.cs: Just enough of socket for NET_2_1. This helps
55 the tuner not to bring a lot of extra stuff (some visible)
57 * SocketAsyncEventArgs.cs: Ifdef out some cases for NET_2_1 so
58 Moonlight can use it's own (smaller) SocketAsyncOperation enum
60 2009-02-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
62 * Socket.cs: instead of clearing the sockets form the output and then
63 adding them back, we just remove the ones that have not been signaled.
64 Fixes bug #354090 and bug #476138.
66 2009-01-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
68 * Socket.cs: don't throw when there's no ipv6 configuration.
70 2009-01-09 Dick Porter <dick@ximian.com>
72 * Socket.cs: Special case 0-length receive requests in the
73 BeginAccept overloads that wait for data, so they behave as the
74 non-waiting version. Seems to match MS behaviour, fixes bug
77 2009-01-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
79 * TcpClient.cs: use IPv6Any when the family is IPv6.
82 2008-12-30 Bill Holmes <billholmes54@gmail.com>
84 * Socket.cs (Accept_internal) : Changing the signature to pass
87 Code is contributed under MIT/X11 license.
89 2008-12-20 Miguel de Icaza <miguel@novell.com>
91 * SocketException.cs: Add missing API.
93 * SocketAsyncEventArgs.cs (Dispose): this has to be a public
94 member according to the specs.
96 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
98 * Socket.cs: add a new ReceiveFrom_nocheck that does not throw an
99 exception in case of error.
101 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
103 * Socket.cs: if Blocking is set, translate a WouldBlock into a
106 2008-12-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
108 * UdpClient.cs: don't Poll() in Receive(), the call to ReceiveFrom
109 will block anyway. Fixes bug #455894.
111 2008-11-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
113 * Socket.cs: mark the socket as not connected when there is a pending
114 error or exception about to be thrown.
117 2008-09-10 Bill Holmes <billholmes54@gmail.com>
119 * Socket.cs : Adding a comment to provide locations where
120 changes to MonoSocketAsyncResult need to be synced.
122 Code is contributed under MIT/X11 license.
124 2008-09-06 Atsushi Enomoto <atsushi@ximian.com>
126 * Socket.cs : (SocketAsyncResult) release byte buffer early so that
127 it does not have to store extra data in pool. Fixed bug #397627.
129 2008-07-31 Jb Evain <jbevain@novell.com>
132 * NetworkStream.cs: cleanup for NET_2_1
134 * SocketException_2_1.cs: new specific version for NET_2_1.
136 2008-06-19 Dick Porter <dick@ximian.com>
138 * Socket.cs: Implement generic Send() and Receive() methods.
141 2008-06-12 Stephane Delcroix <sdelcroix@novell.com>
143 * Socket.cs: minimal changes to run in the 2.1 profile
145 2008-06-11 Stephane Delcroix <sdelcroix@novell.com>
147 * SocketAsyncEventArgs.cs: catch SocketException in ConnectAsync
148 and set the SocketError accordingly.
150 2008-05-09 Marek Habersack <mhabersack@novell.com>
152 * SocketAsyncEventArgs.cs: implemented support for executing
153 asynchronous socket actions, called from the new xxxxAsync methods
154 in Socket. The asynchronous operations do not use the ThreadPool
155 as I can't get the sample applications to work (send/receive
156 callbacks don't work) - it may change in the future.
158 * Socket.cs: implemented several xxxxAsync 2.0sp1 methods. The
159 ones not implemented for now are: ReceiveMessageFromAsync and
160 SendPacketsAsync. AcceptAsync doesn't perform the check for the
161 buffer size for now - need to implement runtime support for that.
162 Made several methods internal, so that they can be accessed from
163 SocketAsyncEventArgs code.
165 2008-05-08 Marek Habersack <mhabersack@novell.com>
167 * SocketAsyncOperation.cs, SendPacketsElement.cs,
168 SocketAsyncEventArgs.cs: added initial implementations for
169 2.0SP1/3.5 classes used in the (to be implemented) new xxxAsync
170 methods of the Socket class.
172 2008-04-17 Miguel de Icaza <miguel@novell.com>
174 * NetworkStream.cs: Throw an IOException if the socket is not
175 connected, not an ArgumentException.
177 Fixes #371923, it is also the way its documented on MSDN.
179 2008-04-13 Jb Evain <jbevain@novell.com>
181 * Socket.cs: ifdef out the Sys.Config part for the
183 Merged from the Moonlight 2 branch.
185 Wed Mar 12 20:06:07 CET 2008 Paolo Molaro <lupus@ximian.com>
187 * Socket.cs: add a static ctor so that ipv4Supported and ipv6Supported
188 are initialized (they are used by the runtime).
190 2008-02-01 Dick Porter <dick@ximian.com>
192 * TcpClient.cs: If the Connect fails (when given an array of
193 addresses) leave the socket object in a usable state. Fixes bug
196 2007-11-13 Atsushi Enomoto <atsushi@ximian.com>
198 * NetworkStream.cs : in 2.0 Close() is not needed and does not exist.
200 2007-11-01 Miguel de Icaza <miguel@novell.com>
202 * Socket.cs: Do not set the Send and Receive buffer sizes for the
203 socket to the defaults set on Windows, they kill our performance.
205 Thanks to Zoltan Varga for tracking the performance issue down.
208 2007-10-30 Dick Porter <dick@ximian.com>
210 * UdpClient.cs: Don't set the multicast option twice. Fixes bug
213 2007-10-21 Robert Jordan <robertj@gmx.net>
215 * Socket.cs: Remove GetHashCode override from the NET_2_0
216 profile. Add LAMESPEC comment. Fixes bug #325113.
218 2007-09-22 Gert Driesen <drieseng@users.sourceforge.net>
220 * Socket.cs: Removed unused method.
222 2007-08-02 Dick Porter <dick@ximian.com>
224 * Socket.cs: Patch from Brian Nickel (brian.nickel@gmail.com) to
225 improve EndPoint handling.
227 2007-07-08 Gert Driesen <drieseng@users.sourceforge.net>
229 * Socket.cs: Code formatting. Marked not implemented methods as TODO.
230 Removed extra spaces.
232 2007-07-04 Dick Porter <dick@ximian.com>
234 * Socket.cs: Don't set DontFragment by default for IPv6 sockets.
237 2007-05-16 Adar Wesley <adarw@mainsoft.com>
239 * Socket.jvm.cs: added missing methods EndDisconnect, IOControl,
240 Send 2.0 overloads, Receive 2.0 overloads, ReceiveMessageFrom,
241 BeginReceiveMessageFrom, EndReceiveMessageFrom,
242 EndAccept 2.0 overloads, BeginSend, EndSend, BeginReceive,
243 EndReceive, SendFile, BeginSendFile, EndSendFile, Disconnect,
246 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
248 * Socket.jvm.cs: Handle property throws NotImplementedException.
250 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
256 added MonoNotSupported attribute for TARGATE_JVM.
258 2007-03-11 Gert Driesen <drieseng@users.sourceforge.net>
260 * TcpClient.cs: Do not initialize network stream in Connect. In
261 Dispose, only nullify client if network stream was not obtained.
264 2007-01-30 Ilya Kharmatsky <ilyak -at- mainsoft.com>
266 * Socket.jvm.cs: additional stubs for net_2_0 properties,
267 bug fixes (EnsureStillUsable method inserted)
269 2007-01-28 Ilya Kharmatsky <ilyak -at- mainsoft.com>
271 * Socket.jvm.cs: added stubs for net_2_0 properties and methods.
273 2007-01-26 Dick Porter <dick@ximian.com>
275 * Socket.cs: SupportsIPv6 is obsolete in the 2.0 profile. Stub
276 out BeginReceiveMessageFrom(), BeginSendFile(),
277 EndReceiveMessageFrom(), EndSendFile(), ReceiveMessageFrom(), and
280 * IPPacketInformation.cs: New in the 2.0 profile
282 * SocketFlags.cs: Remove useless (and empty) inline documentation,
285 * TcpListener.cs: Mark Server as public in the 2.0 profile.
287 * UdpClient.cs: Mark Dispose(bool) as protected in the 2.0
290 System.Net.Sockets should now be 2.0-complete.
292 2007-01-26 Dick Porter <dick@ximian.com>
294 * Socket.cs: There's no point checking the SO_ERROR status of a
295 socket after poll() or select() if we already know that connected
298 2007-01-24 Dick Porter <dick@ximian.com>
301 * SocketInformationOptions.cs:
302 * TransmitFileOptions.cs: Fix enum values
304 * AddressFamily.cs: Not Serializable in the 2.0 profile
306 2007-01-24 Dick Porter <dick@ximian.com>
308 * NetworkStream.cs: 2.0 profile updates, based on a patch by
309 Sridhar Kulkarni (sridharkulkarni@gmail.com)
311 2007-01-23 Dick Porter <dick@ximian.com>
314 * TcpClient.cs: 2.0 profile updates, based on a patch by Sridhar
315 Kulkarni (sridharkulkarni@gmail.com)
317 2007-01-22 Miguel de Icaza <miguel@novell.com>
319 * Socket.cs: Move the throw new NotImplementedException ()
320 elsewhere to prevent Moma reports.
322 2007-01-20 Dick Porter <dick@ximian.com>
324 * Socket.cs(SocketDefaults): Catch and ignore any SocketExceptions
325 thrown from setting default socket options - some platforms might
326 not support a particular default we're trying to set.
328 2007-01-11 Dick Porter <dick@ximian.com>
331 * SocketInformation.cs:
333 * UdpClient.cs: 2.0 profile updates, loosely based on a patch by
336 * SocketInformationOptions.cs:
337 * TransmitFileOptions.cs: Implemented by Sridhar Kulkarni
338 (sridharkulkarni@gmail.com)
340 Wed Dec 13 12:04:02 CET 2006 Paolo Molaro <lupus@ximian.com>
342 * Socket.cs: stub ReceiveBufferSize and SendBufferSize to
343 get ironpython to compile.
345 2006-11-23 Dick Porter <dick@ximian.com>
347 * Socket.cs: Only set Connected = true in Poll() and Select() if
348 the socket error status is 0. Fixes bug 79878.
350 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
352 * Socket.cs,NetworkStream.cs,SocketException.cs: TARGET_JVM
354 2006-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
356 * Socket.cs: update the SocketOperation enum.
358 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
360 * Socket.cs: replace hardcoded error numbers with the SocketError
361 values. When ReceiveTimeout is set on a blocking socket, correctly
362 report timeouts in the generated exception.
364 * SocketException.cs: add new internal ctor (int, string).
366 2006-08-12 Miguel de Icaza <miguel@novell.com>
368 * Socket.cs (NoDelay): Implement.
370 2006-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
372 * Socket.cs: patch from Sanghyeon Seo that implements
373 (Send|Receive)Timeout for 2.0.
374 * MulticastOption.cs: more 2.0 stuff.
376 2006-06-28 Atsushi Enomoto <atsushi@ximian.com>
378 * Socket.cs : use ConfigurationManager.GetSection() under NET_2_0.
379 Also make sure to avoid NRE.
381 2006-06-24 Zoltan Varga <vargaz@gmail.com>
383 * Socket.cs: Add stubs for net 2.0 SendTimeout and ReceiveTimeout properties.
385 2006-06-20 Zoltan Varga <vargaz@gmail.com>
387 * ProtocolType.cs SocketOptionName.cs: Add missing net 2.0 fields.
389 2006-05-30 Gert Driesen <drieseng@users.sourceforge.net>
391 * NetworkStream.cs: Marked Dispose (bool) virtual on 1.x profile.
393 2006-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
396 * SocketError.cs: implemented Reseive/Send overloads that do not throw
397 in case of error. Patch by Tomi Valkeinen.
399 2006-03-11 Miguel de Icaza <miguel@novell.com>
401 * NetworkStream.cs (Dispose): Use the right signature depending on
402 the profile being built.
404 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
406 * Socket.cs: pass something not empty to the unixep ctor.
408 2006-03-03 Dick Porter <dick@ximian.com>
410 * UdpClient.cs: Fix IPv6 family check. Fixes bug 77689.
412 2006-02-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
414 * TcpClient.cs: when the socket is not connected, don't try to set the
415 socket options, as they are ignored on linux. Wait until Connect
416 succeeds and then apply the options.
418 2006-02-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
420 * Socket.cs: added a missing overload for SetSocketOption.
422 2006-01-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
424 * Socket.cs: use the 2.0 configuration classes when checking for IPv6
427 2006-01-04 Sebastien Pouliot <sebastien@ximian.com>
429 * TcpClient.cs: The Client property is public in 2.0 while it was
430 protected in earlier release. Fix bug #77048.
432 2005-12-07 Robert Jordan <robertj@gmx.net>
434 * SocketError.cs: Added.
435 * SocketException: Implemented SocketErrorCode. Fixes bug #76915.
437 2005-10-11 Dick Porter <dick@ximian.com>
439 * Socket.cs: Don't call connect(2) twice for non-blocking sockets,
440 it breaks on macos (and probably other bsd-based stacks too,) use
441 poll() and getsockopt() to check if it worked.
443 2005-09-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
445 * Socket.cs: add checks for 'disposed' all over. Fixes bug #76249.
447 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
449 * TcpClient.cs: patch by Hans Kratz that uses an integer when setting
450 NoDelay instead of a bool, which is only handled in 2.0.
452 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
454 * Socket.cs: disallow connecting to .Any addresses. Fixes bug #75154.
456 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
458 * Socket.cs: adapted Select to the new Select_internal that uses poll()
459 instead of select(). Managed part of the fix for bug #71203.
461 2005-05-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
463 * Socket.cs: apply the same hack on blocking Connect calls as the one
466 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
468 * Socket.cs: see bug #74842, which is fixed with this patch for details
469 and test cases on the blocking behavior of accept() when close() is
470 called from another thread. The solution applied is to Abort the thread
471 that is blocking in Accept_internal() when someone calls Close (), then
472 reset the abort state if the socket is disposed and return the same
473 error as MS (10004 - interrupted).
475 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
477 * Socket.cs: match MS behavior on SetSocketOption with a boolean
478 argument. MS 1.1 throws an ArgumentException, but 2.0 turns true/false
479 into 1/0 and works fine. Fixes bug #71753. Added checks for disposed
480 in the 3 SetSocketOption.
482 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
484 * Socket.cs: if there are outstanding aio requests and one of them gets
485 an ObjectDisposedException, throw the same exception for the rest.
487 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
489 * Socket.cs: removed hack added to fix bug #53229 (more than a year ago)
490 that kept sockets opened until all AIO operations where finished. If
491 the socket is closed, Receive returns 0 in EndReceive, the rest throw
492 the ObjectDisposedException. Set the socket handle to -1 when closing.
494 2005-04-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
496 * Socket.cs: Begin/End Send/SendTo guarantee that all bytes are written
497 or an exception is thrown. Fixes bug #74475.
499 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
501 * Socket.cs: no need for locking in Worker. The actual read / write for
502 Receive / Send is performed in the runtime time.
504 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
506 * Socket.cs: added a 'blocking' field that is passed to the runtime.
508 2005-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
510 * Socket.cs: invoke the callback after scheduling the next request for
511 the socket. Fixes bug #74539.
513 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
515 * Socket.cs: update socket connected status in an async request finishes
516 synchronously. Use 'callback' instead of 'real_callback' field, which is
519 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
521 * Socket.cs: added SocketOperation enum and 2 new fields to
522 SocketAsyncResult that are used by the runtime. Asynchronous read/write
523 are serialized so that only 1 of each kind is really 'active'.
524 Handle non-blocking connects in BeginConnect instead of doing 2 Poll()
527 * NetworkStream.cs: better message for the exception.
529 2005-04-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
531 * Socket.cs: remove unused async IO code.
533 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
535 * Socket.cs: don't Poll/block in Connect aither.
537 2005-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
539 * Socket.cs: don't block on Accept if the socket is non-blocking.
540 Fixes bug #73053. Patch by Ankit Jain.
542 2005-02-23 Dick Porter <dick@ximian.com>
544 * UdpClient.cs: Set the Broadcast option, as apparently the MS
545 runtime defaults make UDP sockets broadcastable.
547 2004-12-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
549 * Socket.cs: for Receive*/Send*, don't set the connected status to false
550 when the error is EINPROGRESS or EWOULDBLOCK.
552 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
554 * NetworkStream.cs: Write should ensure that writes all the contents
555 of the buffer. Fixes bug #70123. Besos para Miguelito.
557 2004-10-14 Dick Porter <dick@ximian.com>
559 * Socket.cs (Sockets ): Set Accept()ed socket blocking status to
560 be the same as the listening socket. This follows MS behaviour.
562 2004-08-04 Dick Porter <dick@ximian.com>
564 * Socket.cs: Update Connected state in Select and Poll; this is
565 when we find out that non-blocking Connects succeed. Fixes bug
568 2004-07-28 Dick Porter <dick@ximian.com>
570 * Socket.cs: ReceiveFrom might not return a valid EndPoint. Patch
571 by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug 61608.
573 2004-07-15 Dick Porter <dick@ximian.com>
575 * Socket.cs: Don't try and dereference a null array in Select()
576 (possible if a descriptor list of length 0 was passed.) Patch by
577 Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug 61595.
579 2004-07-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
581 * Socket.cs: if'ed RemoveReferences calls.
583 2004-07-09 Dick Porter <dick@ximian.com>
585 * Socket.cs: Slight tweak to allow unknown objects to be returned
586 by GetSocketOption().
588 2004-06-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
590 * Socket.cs: connect on non-blocking sockets returns EINPROGRESS. Fixes
593 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
595 * Socket.cs: wrong error code in connect and accept. EWOULDBLOCK is
596 10035. Fixes bug #60563.
598 2004-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
600 * Socket.cs: fixed Accept for non-blocking sockets.
602 2004-06-10 Gert Driesen <drieseng@users.sourceforge.net>
604 * LingerOption.cs: marked field private to fix API signature
605 * MulticastOption.cs: marked field private to fix API signature
607 2004-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
609 * Socket.cs: throw ArgumentNullException if all the list are null OR
610 empty. Fixes bug #59632.
612 2004-05-21 Patrik Torstensson <totte@hiddenpeaks.com>
614 * TcpListener.cs: Fixes a lot of the problems with remoting nunit tests.
616 (AcceptTcpClient): Don't create TcpClient before a
617 connection is accepted.
619 (LocalEndPoint): Use Server LocalEndPoint if connected
620 otherwise use endpoint from ctor.
622 (Init): Save end point, not server endpoint. This did
623 cause TcpListener to ignore port sent via constructor.
625 (Pending): Fixed wait time (method should return directly)
627 (Start): Moved Bind here instead of Init method; old method
628 caused us to bind ports even if the listener was stopped.
630 (Stop): Null server when stopping
632 2004-05-13 Dick Porter <dick@ximian.com>
635 * TcpClient.cs: Public API fixes
637 2004-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
639 * Socket.cs: fixed Connect for non-blocking sockets. Closes bug #58169.
641 2004-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
643 * Socket.cs: fix for BeginConnect and non-blocking sockets.
645 2004-05-03 Lluis Sanchez Gual <lluis@ximian.com>
647 * Socket.cs: Use assembly name const to load Mono.Posix.
649 2004-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
651 * Socket.cs: only enable socket AIO if MONO_ENABLE_SOCKET_AIO is there.
652 I will remove this once THE bug is hunted.
654 2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
656 * Socket.cs: added support for unmanaged asynchronous IO. Speed up
658 * UdpClient.cs: fixed Dispose so that it only closes the socket when
661 2004-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
663 * Socket.cs: added GetSupportsAsync and Poll_internal internal calls.
664 Cleaned up Worker class: moved fields to SocketAsyncResult and use Poll
665 when the socket is non-blocking before getting EWOULDBLOCK error.
667 2004-04-08 Dick Porter <dick@ximian.com>
669 * Socket.cs: Rearrange the internal calls so that the exceptions
670 are thrown from managed code
672 2004-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
674 * Socket.cs: when Dispose (bool) is called from the finalizer, always
675 do the cleanup. Fixes yet another nullref with xsp.
677 2004-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
679 * Socket.cs: implemented IOControl.
681 2004-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
683 * Socket.cs: use the threadpool for asynchronous calls instead of
684 creating new threads.
686 2004-02-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
688 * Socket.cs: added locks around waithandle assign and comparison in
689 class Worker. Handle other exceptions than SocketException for
690 non-blocking sockets.
692 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
694 * Socket.cs: handle WSAEWOULDBLOCK for non-blocking sockets. Fixes
695 bug #53168. Avoid the creation of the ManualResetEvent in class Worker
698 2004-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
700 * Socket.cs: if we have a pending async event, delay socket closing
701 until EndX is called. Fixes bug #53229. Check parameters and if the
702 socket has been disposed. Implemented IDisposable explicitly. The
703 threads created have IsBackground = true now.
705 2004-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
707 * Socket.cs: patch from Brad Fitzpatrick <brad@danga.com> episode 2.
709 2003-12-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
711 * Socket.cs: fix for several asynchronous methods to delay exception
712 throwing. Patch by Brad Fitzpatrick <brad@danga.com>.
714 2003-12-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
716 * TcpListener.cs: get the LocalEndPoint from the socket after binding.
719 2003-10-20 Miguel de Icaza <miguel@ximian.com>
721 * TcpClient.cs: Fix void Dispose (bool disposing) to follow the
722 pattern. It was shutting down the managed resources even in the
723 finalizer case, it should only do that when called from
726 2003-09-11 Lluis Sanchez Gual <lluis@ximian.com>
728 * NetworkStream.cs: Added [In,Out] attributes to Read method.
730 2003-08-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
732 * TcpListener.cs: various fixes to make the new tests pass. Closes
735 2003-08-10 Miguel de Icaza <miguel@ximian.com>
737 * UdpClient.cs (Receive): Fix Bug 45633; We should do a blocking
738 call until a datagram is arrives from the remote host. This
739 removes the 512 "magic" buffer size when we did not have any data.
741 2003-07-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
744 * Socket.cs: fixed array boundary checks. 0 sized arrays are allowed.
746 2003-07-18 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
748 * Socket.cs: Added GetHashCode method
750 2003-07-14 Jerome Laban <jlaban@wanadoo.fr>
754 * SocketOptionLevel.cs:
761 * IPv6MulticastOption.cs: Added for IPv6 support.
763 2003-05-16 Dick Porter <dick@ximian.com>
765 * Socket.cs: Use Mono.Posix.UnixEndPoint if its available
767 2003-05-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
769 * MulticastOption.cs: patch by Jerome Laban included in bug #42393.
771 2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
774 (Select): don't create arrays if not needed.
775 (Poll): call Select_internal directly.
777 Warning: you need an up to date runtime for this to work!
779 2003-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
781 * UdpClient.cs: don't bind the socket unless .ctor (IPEndPoint) is used.
782 Added more checks and throws.
783 Small fixes in Send to avoid duplicating the buffer.
784 Moved CheckIfDisposed calls to the start of the methods instead of doing
785 the check inside a finally clause.
787 2003-03-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
790 (SendTo): fix from Jerome Laban <jlaban@wanadoo.fr>.
792 2003-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
794 * Socket.cs: patch from Elan Feingold <efeingold@mn.rr.com>. Fixes
795 NullReferenceException when the callback is null.
797 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
799 * NetworkStream.cs: allow 0 size array in Write.
801 2003-02-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
803 * Socket.cs: make Worker.Connect and Receive work with non-blocking
804 sockets. May be Receive* and Send* in Worker need to do the same. I'll
805 wait for bug reports. Set IsCompleted to true before invoking the end
806 callback. Fixes bug #38136.
808 2003-01-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
810 * NetworkStream.cs: the check for disposed should not be done in the
813 2003-01-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
815 * UdpClient.cs: fixed bug #36226.
817 2002-11-13 Dick Porter <dick@ximian.com>
819 * Socket.cs: Only close the socket in one place, ie the Dispose
820 method. Fixes bug 32054.
822 2002-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
824 * Socket.cs: offset == size == 0 it's ok in Send ().
826 2002-11-03 Phillip Pearson <pp@myelin.co.nz>
828 * TcpClient.cs: Fixed SetTcpClient() to pass through to the Client
829 property, which now sets stream to null (it's set by GetStream()). This
830 should make GetStream() work on a TcpClient which has had the socket set
831 by assignment to the Client property, not only one that has been created
832 by TcpListener.AcceptTcpClient().
834 2002-10-08 Dick Porter <dick@ximian.com>
837 * NetworkStream.cs: Bounds checking fixes, and better exception
838 texts. Changes by timothyjmills@hotmail.com (Timothy J. Mills).
840 2002-10-03 Dick Porter <dick@ximian.com>
842 * TcpClient.cs: NoDelay is a TCP option, not Socket
844 2002-09-16 Miguel de Icaza <miguel@ximian.com>
846 * SocketFlags.cs: Add missing enumeration.
848 * UdpClient.cs: Make Dispose private.
850 2002-08-20 Dick Porter <dick@ximian.com>
852 * Socket.cs: Fix deadlock when the AsyncResult callback calls
853 End*(). Set the async request's worker property so it can return
854 results. These two fixes combined fix bug 28092.
856 2002-06-24 Dick Porter <dick@ximian.com>
858 * Socket.cs: Make SetSocketOption cope with boolean values (they
859 are passed as objects, not the ints the runtime was expecting)
861 2002-05-17 Lawrence Pit <loz@cable.a2000.nl>
862 * TcpListener.cs: Renamed LocalEndPoint to LocalEndpoint
863 * NetworkStream.cs, UdpClient.cs and TcpClient.cs: modified disposable
864 routines, added checks for disposed state.
865 * UdpClient.cs: commented out GetHashCode and Equals as it's not
866 overriden in ms.net implementation.
868 2002-05-17 Jaroslaw Kowalski <jarek@atm.com.pl>
869 * TcpClient.cs: fixed SetTcpClient so that
870 TcpListener.AcceptTcpClient works and allows
871 you to call GetStream() on its result
873 2002-04-24 Dick Porter <dick@ximian.com>
875 * Socket.cs (Poll): Give correct argument to Select(), as spotted
876 by Jaroslaw Kowalski <jarek@atm.com.pl>
878 2002-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
880 * UdpClient.cs: implemented.
882 2002-04-02 Dick Porter <dick@ximian.com>
884 * TcpListener.cs: in Start(), set the socket listen backlog value
885 to a sane value (noticed by Jonathan Stowe <gellyfish@gellyfish.com>)
887 2002-02-13 Dick Porter <dick@ximian.com>
889 * Socket.cs: Implemenent Select, Blocking, Connected,
890 GetSocketOption, Poll, SetSocketOption and Shutdown
892 * MulticastOption.cs:
893 * LingerOption.cs: Delete override methods that don't need to be
896 2002-01-23 Miguel de Icaza <miguel@ximian.com>
898 * NetworkStream.cs: Implement class.
900 2002-01-23 Dick Porter <dick@ximian.com>
902 * SocketException.cs: Implemented
904 * Socket.cs: Implemented most methods
906 * LingerOption.cs: Made compile
908 * AddressFamily.cs: Removed empty auto-generated comments
910 2002-01-17 Miguel de Icaza <miguel@ximian.com>
912 * SocketException.cs: Reimplemented.
914 2002-01-06 Ravi Pratap <ravi@ximian.com>
916 * ChangeLog : Add to this directory.
918 * SocketException.cs, TcpClient.cs, TcpListener.cs : MonoTODO
919 attribute decoration.