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