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