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