New tests, updates
[mono.git] / mcs / class / System / System.Net.Sockets / ChangeLog
1 2009-05-22  Sebastien Pouliot  <sebastien@ximian.com>
2
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
9         check in NET_2_1).
10
11 2009-05-14  Sebastien Pouliot  <sebastien@ximian.com>
12
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
17
18 2009-05-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
19
20         * TcpClient.cs:
21         * Socket.cs:
22         * UdpClient.cs: use GetHostAddresses() instead of Resolve or
23         GetHostEntry.
24
25 2009-05-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
26
27         * UdpClient.cs: if possible, avoid DNS lookups when the host name is
28         an IP address. Related to bug #502866.
29
30 2009-04-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
31
32         * Socket.cs: return the last error if a connect to multiple addresses
33         fails.
34
35 2009-04-22  Sebastien Pouliot  <sebastien@ximian.com>
36
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 :)
43
44 2009-04-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
45
46         * Socket.cs: End* methods can only be called once per IAsyncResult.
47         Bug #466031 fixed.
48
49 2009-04-09  Sebastien Pouliot  <sebastien@ximian.com>
50
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)
56         into Moonlight.
57         * SocketAsyncEventArgs.cs: Ifdef out some cases for NET_2_1 so 
58         Moonlight can use it's own (smaller) SocketAsyncOperation enum
59
60 2009-02-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
61
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.
65
66 2009-01-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
67
68         * Socket.cs: don't throw when there's no ipv6 configuration.
69
70 2009-01-09  Dick Porter  <dick@ximian.com>
71
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
75         464201.
76
77 2009-01-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
78
79         * TcpClient.cs: use IPv6Any when the family is IPv6.
80         Bug #462688 fixed.
81
82 2008-12-30  Bill Holmes  <billholmes54@gmail.com>
83
84         * Socket.cs (Accept_internal) :  Changing the signature to pass 
85           the blocking state.
86
87         Code is contributed under MIT/X11 license.
88
89 2008-12-20  Miguel de Icaza  <miguel@novell.com>
90
91         * SocketException.cs: Add missing API.
92
93         * SocketAsyncEventArgs.cs (Dispose): this has to be a public
94         member according to the specs.
95
96 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
97
98         * Socket.cs: add a new ReceiveFrom_nocheck that does not throw an
99         exception in case of error.
100
101 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
102
103         * Socket.cs: if Blocking is set, translate a WouldBlock into a
104         TimedOut.
105
106 2008-12-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
107
108         * UdpClient.cs: don't Poll() in Receive(), the call to ReceiveFrom
109         will block anyway. Fixes bug #455894.
110
111 2008-11-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
112
113         * Socket.cs: mark the socket as not connected when there is a pending
114         error or exception about to be thrown.
115         Bug #443346 fixed.
116
117 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
118
119         * Socket.cs : Adding a comment to provide locations where
120           changes to MonoSocketAsyncResult need to be synced.
121
122         Code is contributed under MIT/X11 license.
123
124 2008-09-06  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * Socket.cs : (SocketAsyncResult) release byte buffer early so that
127           it does not have to store extra data in pool. Fixed bug #397627.
128
129 2008-07-31  Jb Evain  <jbevain@novell.com>
130
131         * Socket.cs
132         * NetworkStream.cs: cleanup for NET_2_1
133
134         * SocketException_2_1.cs: new specific version for NET_2_1.
135
136 2008-06-19  Dick Porter  <dick@ximian.com>
137
138         * Socket.cs: Implement generic Send() and Receive() methods.
139         Fixes bug 395168.
140
141 2008-06-12  Stephane Delcroix  <sdelcroix@novell.com>
142
143         * Socket.cs: minimal changes to run in the 2.1 profile
144
145 2008-06-11  Stephane Delcroix  <sdelcroix@novell.com>
146
147         * SocketAsyncEventArgs.cs: catch SocketException in ConnectAsync
148         and set the SocketError accordingly.
149
150 2008-05-09  Marek Habersack  <mhabersack@novell.com>
151
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.
157
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.
164
165 2008-05-08  Marek Habersack  <mhabersack@novell.com>
166
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.
171
172 2008-04-17  Miguel de Icaza  <miguel@novell.com>
173
174         * NetworkStream.cs: Throw an IOException if the socket is not
175         connected, not an ArgumentException.   
176
177         Fixes #371923, it is also the way its documented on MSDN. 
178
179 2008-04-13  Jb Evain  <jbevain@novell.com>
180
181         * Socket.cs: ifdef out the Sys.Config part for the
182         2.1 profile.
183         Merged from the Moonlight 2 branch.
184
185 Wed Mar 12 20:06:07 CET 2008 Paolo Molaro <lupus@ximian.com>
186
187         * Socket.cs: add a static ctor so that ipv4Supported and ipv6Supported
188         are initialized (they are used by the runtime).
189
190 2008-02-01  Dick Porter  <dick@ximian.com>
191
192         * TcpClient.cs: If the Connect fails (when given an array of
193         addresses) leave the socket object in a usable state.  Fixes bug
194         355473.
195
196 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
197
198         * NetworkStream.cs : in 2.0 Close() is not needed and does not exist.
199
200 2007-11-01  Miguel de Icaza  <miguel@novell.com>
201
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.
204
205         Thanks to Zoltan Varga for tracking the performance issue down.
206         The bug was #325032
207
208 2007-10-30  Dick Porter  <dick@ximian.com>
209
210         * UdpClient.cs: Don't set the multicast option twice.  Fixes bug
211         324033.
212
213 2007-10-21  Robert Jordan  <robertj@gmx.net>
214
215         * Socket.cs: Remove GetHashCode override from the NET_2_0
216         profile. Add LAMESPEC comment. Fixes bug #325113.
217
218 2007-09-22  Gert Driesen  <drieseng@users.sourceforge.net>
219
220         * Socket.cs: Removed unused method.
221
222 2007-08-02  Dick Porter  <dick@ximian.com>
223
224         * Socket.cs: Patch from Brian Nickel (brian.nickel@gmail.com) to
225         improve EndPoint handling.
226
227 2007-07-08  Gert Driesen  <drieseng@users.sourceforge.net>
228
229         * Socket.cs: Code formatting. Marked not implemented methods as TODO.
230         Removed extra spaces.
231
232 2007-07-04  Dick Porter  <dick@ximian.com>
233
234         * Socket.cs: Don't set DontFragment by default for IPv6 sockets.
235         Fixes bug 81985.
236
237 2007-05-16 Adar Wesley <adarw@mainsoft.com>
238
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,
244         DuplicateAndClose
245
246 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
247
248         * Socket.jvm.cs: Handle property throws NotImplementedException.        
249
250 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
251
252         * NetworkStream.cs:
253         * TcpClient.cs:
254         * TcpListener.cs:
255         * UdpClient.cs:                 
256         added MonoNotSupported attribute for TARGATE_JVM.       
257                 
258 2007-03-11  Gert Driesen  <drieseng@users.sourceforge.net>
259
260         * TcpClient.cs: Do not initialize network stream in Connect. In
261         Dispose, only nullify client if network stream was not obtained.
262         Fixes bug #81105.
263
264 2007-01-30  Ilya Kharmatsky <ilyak -at- mainsoft.com>
265
266         * Socket.jvm.cs: additional stubs for net_2_0 properties,
267         bug fixes (EnsureStillUsable method inserted)
268
269 2007-01-28  Ilya Kharmatsky <ilyak -at- mainsoft.com>
270
271         * Socket.jvm.cs: added stubs for net_2_0 properties and methods.
272
273 2007-01-26  Dick Porter  <dick@ximian.com>
274
275         * Socket.cs: SupportsIPv6 is obsolete in the 2.0 profile.  Stub
276         out BeginReceiveMessageFrom(), BeginSendFile(),
277         EndReceiveMessageFrom(), EndSendFile(), ReceiveMessageFrom(), and
278         SendFile().
279
280         * IPPacketInformation.cs: New in the 2.0 profile
281
282         * SocketFlags.cs: Remove useless (and empty) inline documentation,
283         and add 2.0 items.
284
285         * TcpListener.cs: Mark Server as public in the 2.0 profile.
286
287         * UdpClient.cs: Mark Dispose(bool) as protected in the 2.0
288         profile.
289
290         System.Net.Sockets should now be 2.0-complete.
291
292 2007-01-26  Dick Porter  <dick@ximian.com>
293
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
296         == true.
297
298 2007-01-24  Dick Porter  <dick@ximian.com>
299
300         * IOControlCode.cs: 
301         * SocketInformationOptions.cs: 
302         * TransmitFileOptions.cs: Fix enum values
303
304         * AddressFamily.cs: Not Serializable in the 2.0 profile
305
306 2007-01-24  Dick Porter  <dick@ximian.com>
307
308         * NetworkStream.cs: 2.0 profile updates, based on a patch by
309         Sridhar Kulkarni (sridharkulkarni@gmail.com)
310
311 2007-01-23  Dick Porter  <dick@ximian.com>
312
313         * TcpListener.cs: 
314         * TcpClient.cs: 2.0 profile updates, based on a patch by Sridhar
315         Kulkarni (sridharkulkarni@gmail.com)
316
317 2007-01-22  Miguel de Icaza  <miguel@novell.com>
318
319         * Socket.cs: Move the throw new NotImplementedException ()
320         elsewhere to prevent Moma reports.
321
322 2007-01-20  Dick Porter  <dick@ximian.com>
323
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.
327
328 2007-01-11  Dick Porter  <dick@ximian.com>
329
330         * IOControlCode.cs: 
331         * SocketInformation.cs: 
332         * Socket.cs: 
333         * UdpClient.cs: 2.0 profile updates, loosely based on a patch by
334         Sridhar Kulkarni.
335
336         * SocketInformationOptions.cs: 
337         * TransmitFileOptions.cs: Implemented by Sridhar Kulkarni
338         (sridharkulkarni@gmail.com)
339
340 Wed Dec 13 12:04:02 CET 2006 Paolo Molaro <lupus@ximian.com>
341
342         * Socket.cs: stub ReceiveBufferSize and SendBufferSize to
343         get ironpython to compile.
344
345 2006-11-23  Dick Porter  <dick@ximian.com>
346
347         * Socket.cs: Only set Connected = true in Poll() and Select() if
348         the socket error status is 0.  Fixes bug 79878.
349
350 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
351
352         * Socket.cs,NetworkStream.cs,SocketException.cs: TARGET_JVM
353
354 2006-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
355
356         * Socket.cs: update the SocketOperation enum.
357
358 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
359
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.
363         
364         * SocketException.cs: add new internal ctor (int, string).
365
366 2006-08-12  Miguel de Icaza  <miguel@novell.com>
367
368         * Socket.cs (NoDelay): Implement.
369
370 2006-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
371
372         * Socket.cs: patch from Sanghyeon Seo that implements
373         (Send|Receive)Timeout for 2.0.
374         * MulticastOption.cs: more 2.0 stuff.
375
376 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
377
378         * Socket.cs : use ConfigurationManager.GetSection() under NET_2_0.
379           Also make sure to avoid NRE.
380
381 2006-06-24  Zoltan Varga  <vargaz@gmail.com>
382
383         * Socket.cs: Add stubs for net 2.0 SendTimeout and ReceiveTimeout properties.
384
385 2006-06-20  Zoltan Varga  <vargaz@gmail.com>
386
387         * ProtocolType.cs SocketOptionName.cs: Add missing net 2.0 fields.
388
389 2006-05-30  Gert Driesen  <drieseng@users.sourceforge.net>
390
391         * NetworkStream.cs: Marked Dispose (bool) virtual on 1.x profile.
392
393 2006-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
394
395         * Socket.cs:
396         * SocketError.cs: implemented Reseive/Send overloads that do not throw
397         in case of error. Patch by Tomi Valkeinen.
398
399 2006-03-11  Miguel de Icaza  <miguel@novell.com>
400
401         * NetworkStream.cs (Dispose): Use the right signature depending on
402         the profile being built.
403
404 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
405
406         * Socket.cs: pass something not empty to the unixep ctor.
407
408 2006-03-03  Dick Porter  <dick@ximian.com>
409
410         * UdpClient.cs: Fix IPv6 family check.  Fixes bug 77689.
411
412 2006-02-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
413
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.
417
418 2006-02-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
419
420         * Socket.cs: added a missing overload for SetSocketOption.
421
422 2006-01-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
423
424         * Socket.cs: use the 2.0 configuration classes when checking for IPv6
425         support.
426
427 2006-01-04  Sebastien Pouliot  <sebastien@ximian.com>
428
429         * TcpClient.cs: The Client property is public in 2.0 while it was
430         protected in earlier release. Fix bug #77048.
431
432 2005-12-07  Robert Jordan  <robertj@gmx.net>
433
434         * SocketError.cs: Added.
435         * SocketException: Implemented SocketErrorCode. Fixes bug #76915.
436
437 2005-10-11  Dick Porter  <dick@ximian.com>
438
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.
442
443 2005-09-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
444
445         * Socket.cs: add checks for 'disposed' all over. Fixes bug #76249.
446
447 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
448
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.
451
452 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
453
454         * Socket.cs: disallow connecting to .Any addresses. Fixes bug #75154.
455
456 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
457
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.
460
461 2005-05-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
462
463         * Socket.cs: apply the same hack on blocking Connect calls as the one
464         used in Accept.
465
466 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
467
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).
474
475 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
476
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.
481
482 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
483
484         * Socket.cs: if there are outstanding aio requests and one of them gets
485         an ObjectDisposedException, throw the same exception for the rest.
486
487 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
488
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.
493
494 2005-04-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
495
496         * Socket.cs: Begin/End Send/SendTo guarantee that all bytes are written
497         or an exception is thrown. Fixes bug #74475.
498
499 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
500
501         * Socket.cs: no need for locking in Worker. The actual read / write for
502         Receive / Send is performed in the runtime time.
503
504 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
505
506         * Socket.cs: added a 'blocking' field that is passed to the runtime.
507
508 2005-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
509
510         * Socket.cs: invoke the callback after scheduling the next request for
511         the socket. Fixes bug #74539.
512
513 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
514
515         * Socket.cs: update socket connected status in an async request finishes
516         synchronously. Use 'callback' instead of 'real_callback' field, which is
517         now unused.
518
519 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
520
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()
525         in the threadpool.
526
527         * NetworkStream.cs: better message for the exception.
528
529 2005-04-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
530
531         * Socket.cs: remove unused async IO code.
532
533 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
534
535         * Socket.cs: don't Poll/block in Connect aither.
536
537 2005-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
538
539         * Socket.cs: don't block on Accept if the socket is non-blocking.
540         Fixes bug #73053. Patch by Ankit Jain.
541
542 2005-02-23  Dick Porter  <dick@ximian.com>
543
544         * UdpClient.cs: Set the Broadcast option, as apparently the MS
545         runtime defaults make UDP sockets broadcastable.
546
547 2004-12-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
548
549         * Socket.cs: for Receive*/Send*, don't set the connected status to false
550         when the error is EINPROGRESS or EWOULDBLOCK.
551
552 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
553
554         * NetworkStream.cs: Write should ensure that writes all the contents
555         of the buffer. Fixes bug #70123. Besos para Miguelito.
556
557 2004-10-14  Dick Porter  <dick@ximian.com>
558
559         * Socket.cs (Sockets ): Set Accept()ed socket blocking status to
560         be the same as the listening socket.  This follows MS behaviour.
561
562 2004-08-04  Dick Porter  <dick@ximian.com>
563
564         * Socket.cs: Update Connected state in Select and Poll; this is
565         when we find out that non-blocking Connects succeed.  Fixes bug
566         62398.
567
568 2004-07-28  Dick Porter  <dick@ximian.com>
569
570         * Socket.cs: ReceiveFrom might not return a valid EndPoint.  Patch
571         by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug 61608.
572
573 2004-07-15  Dick Porter  <dick@ximian.com>
574
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.
578
579 2004-07-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
580
581         * Socket.cs: if'ed RemoveReferences calls.
582
583 2004-07-09  Dick Porter  <dick@ximian.com>
584
585         * Socket.cs: Slight tweak to allow unknown objects to be returned
586         by GetSocketOption().
587
588 2004-06-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
589
590         * Socket.cs: connect on non-blocking sockets returns EINPROGRESS. Fixes
591         bug #60811.
592
593 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
594
595         * Socket.cs: wrong error code in connect and accept. EWOULDBLOCK is
596         10035. Fixes bug #60563.
597
598 2004-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
599
600         * Socket.cs: fixed Accept for non-blocking sockets.
601
602 2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
603
604         * LingerOption.cs: marked field private to fix API signature
605         * MulticastOption.cs: marked field private to fix API signature
606
607 2004-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
608
609         * Socket.cs: throw ArgumentNullException if all the list are null OR
610         empty. Fixes bug #59632.
611
612 2004-05-21  Patrik Torstensson <totte@hiddenpeaks.com>
613
614         * TcpListener.cs: Fixes a lot of the problems with remoting nunit tests.
615         
616         (AcceptTcpClient): Don't create TcpClient before a
617         connection is accepted.
618         
619         (LocalEndPoint): Use Server LocalEndPoint if connected
620         otherwise use endpoint from ctor.
621         
622         (Init): Save end point, not server endpoint. This did
623         cause TcpListener to ignore port sent via constructor.
624
625         (Pending): Fixed wait time (method should return directly)
626         
627         (Start): Moved Bind here instead of Init method; old method
628         caused us to bind ports even if the listener was stopped.
629         
630         (Stop): Null server when stopping
631
632 2004-05-13  Dick Porter  <dick@ximian.com>
633
634         * UdpClient.cs: 
635         * TcpClient.cs: Public API fixes
636
637 2004-05-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
638
639         * Socket.cs: fixed Connect for non-blocking sockets. Closes bug #58169.
640
641 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
642
643         * Socket.cs: fix for BeginConnect and non-blocking sockets.
644
645 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
646
647         * Socket.cs: Use assembly name const to load Mono.Posix.
648
649 2004-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
650
651         * Socket.cs: only enable socket AIO if MONO_ENABLE_SOCKET_AIO is there.
652         I will remove this once THE bug is hunted.
653
654 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
655
656         * Socket.cs: added support for unmanaged asynchronous IO. Speed up
657         error checking.
658         * UdpClient.cs: fixed Dispose so that it only closes the socket when
659         called explicitly.
660
661 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
662
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.
666
667 2004-04-08  Dick Porter  <dick@ximian.com>
668
669         * Socket.cs: Rearrange the internal calls so that the exceptions
670         are thrown from managed code
671
672 2004-03-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
673
674         * Socket.cs: when Dispose (bool) is called from the finalizer, always
675         do the cleanup. Fixes yet another nullref with xsp.
676
677 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
678
679         * Socket.cs: implemented IOControl.
680
681 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
682
683         * Socket.cs: use the threadpool for asynchronous calls instead of
684         creating new threads.
685
686 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
687
688         * Socket.cs: added locks around waithandle assign and comparison in
689         class Worker. Handle other exceptions than SocketException for
690         non-blocking sockets.
691
692 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
693
694         * Socket.cs: handle WSAEWOULDBLOCK for non-blocking sockets. Fixes
695         bug #53168. Avoid the creation of the ManualResetEvent in class Worker
696         whenever possible.
697
698 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
699
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.
704
705 2004-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
706
707         * Socket.cs: patch from Brad Fitzpatrick <brad@danga.com> episode 2.
708
709 2003-12-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
710
711         * Socket.cs: fix for several asynchronous methods to delay exception
712         throwing.  Patch by Brad Fitzpatrick <brad@danga.com>.
713
714 2003-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
715
716         * TcpListener.cs: get the LocalEndPoint from the socket after binding.
717         Fixes bug #52329.
718
719 2003-10-20  Miguel de Icaza  <miguel@ximian.com>
720
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
724         IDisposable.Dipose.
725
726 2003-09-11  Lluis Sanchez Gual <lluis@ximian.com>
727
728         * NetworkStream.cs: Added [In,Out] attributes to Read method.
729
730 2003-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
731
732         * TcpListener.cs: various fixes to make the new tests pass. Closes
733         bug #47848.
734
735 2003-08-10  Miguel de Icaza  <miguel@ximian.com>
736
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.
740  
741 2003-07-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
742
743         * NetworkStream.cs:
744         * Socket.cs: fixed array boundary checks. 0 sized arrays are allowed.
745
746 2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
747
748         * Socket.cs: Added GetHashCode method
749
750 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
751
752         * Socket.cs:
753         * ProtocolType.cs:
754         * SocketOptionLevel.cs:
755         * TcpListener.cs:
756         * TcpClient.cs:
757         * UdpClient.cs:
758         
759         Added IPv6 support.
760
761         * IPv6MulticastOption.cs: Added for IPv6 support.
762
763 2003-05-16  Dick Porter  <dick@ximian.com>
764
765         * Socket.cs: Use Mono.Posix.UnixEndPoint if its available
766
767 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
768
769         * MulticastOption.cs: patch by Jerome Laban included in bug #42393.
770
771 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
772
773         * Socket.cs:
774         (Select): don't create arrays if not needed.
775         (Poll): call Select_internal directly.
776
777         Warning: you need an up to date runtime for this to work!
778
779 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
780
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.
786
787 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
788
789         * Socket.cs:
790         (SendTo): fix from Jerome Laban <jlaban@wanadoo.fr>.
791
792 2003-02-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
793
794         * Socket.cs: patch from Elan Feingold <efeingold@mn.rr.com>. Fixes
795         NullReferenceException when the callback is null.
796
797 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
798
799         * NetworkStream.cs: allow 0 size array in Write.
800
801 2003-02-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
802
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.
807
808 2003-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
809
810         * NetworkStream.cs: the check for disposed should not be done in the
811         finally clause.
812
813 2003-01-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
814
815         * UdpClient.cs: fixed bug #36226.
816
817 2002-11-13  Dick Porter  <dick@ximian.com>
818
819         * Socket.cs: Only close the socket in one place, ie the Dispose
820         method.  Fixes bug 32054.
821
822 2002-11-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
823
824         * Socket.cs: offset == size == 0 it's ok in Send ().
825
826 2002-11-03  Phillip Pearson  <pp@myelin.co.nz>
827
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().
833
834 2002-10-08  Dick Porter  <dick@ximian.com>
835
836         * Socket.cs: 
837         * NetworkStream.cs: Bounds checking fixes, and better exception
838         texts.  Changes by timothyjmills@hotmail.com (Timothy J. Mills).
839
840 2002-10-03  Dick Porter  <dick@ximian.com>
841
842         * TcpClient.cs: NoDelay is a TCP option, not Socket
843
844 2002-09-16  Miguel de Icaza  <miguel@ximian.com>
845
846         * SocketFlags.cs: Add missing enumeration.
847
848         * UdpClient.cs: Make Dispose private.
849
850 2002-08-20  Dick Porter  <dick@ximian.com>
851
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.
855
856 2002-06-24  Dick Porter  <dick@ximian.com>
857
858         * Socket.cs: Make SetSocketOption cope with boolean values (they
859         are passed as objects, not the ints the runtime was expecting)
860
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.
867
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
872
873 2002-04-24  Dick Porter  <dick@ximian.com>
874
875         * Socket.cs (Poll): Give correct argument to Select(), as spotted
876         by Jaroslaw Kowalski <jarek@atm.com.pl>
877
878 2002-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
879
880         * UdpClient.cs: implemented.
881
882 2002-04-02  Dick Porter  <dick@ximian.com>
883
884         * TcpListener.cs: in Start(), set the socket listen backlog value
885         to a sane value (noticed by Jonathan Stowe <gellyfish@gellyfish.com>)
886
887 2002-02-13  Dick Porter  <dick@ximian.com>
888
889         * Socket.cs: Implemenent Select, Blocking, Connected,
890         GetSocketOption, Poll, SetSocketOption and Shutdown
891
892         * MulticastOption.cs: 
893         * LingerOption.cs: Delete override methods that don't need to be
894         implemented
895
896 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
897
898         * NetworkStream.cs: Implement class.
899
900 2002-01-23  Dick Porter  <dick@ximian.com>
901
902         * SocketException.cs: Implemented
903
904         * Socket.cs: Implemented most methods
905
906         * LingerOption.cs: Made compile
907
908         * AddressFamily.cs: Removed empty auto-generated comments
909
910 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
911
912         * SocketException.cs: Reimplemented.
913
914 2002-01-06  Ravi Pratap  <ravi@ximian.com>
915
916         * ChangeLog : Add to this directory.
917
918         * SocketException.cs, TcpClient.cs, TcpListener.cs : MonoTODO
919         attribute decoration.