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