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