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