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