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