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