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