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