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