ChangeLog 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521
  1. 2006-03-11 Miguel de Icaza <[email protected]>
  2. * NetworkStream.cs (Dispose): Use the right signature depending on
  3. the profile being built.
  4. 2006-03-09 Gonzalo Paniagua Javier <[email protected]>
  5. * Socket.cs: pass something not empty to the unixep ctor.
  6. 2006-03-03 Dick Porter <[email protected]>
  7. * UdpClient.cs: Fix IPv6 family check. Fixes bug 77689.
  8. 2006-02-23 Gonzalo Paniagua Javier <[email protected]>
  9. * TcpClient.cs: when the socket is not connected, don't try to set the
  10. socket options, as they are ignored on linux. Wait until Connect
  11. succeeds and then apply the options.
  12. 2006-02-03 Gonzalo Paniagua Javier <[email protected]>
  13. * Socket.cs: added a missing overload for SetSocketOption.
  14. 2006-01-19 Gonzalo Paniagua Javier <[email protected]>
  15. * Socket.cs: use the 2.0 configuration classes when checking for IPv6
  16. support.
  17. 2006-01-04 Sebastien Pouliot <[email protected]>
  18. * TcpClient.cs: The Client property is public in 2.0 while it was
  19. protected in earlier release. Fix bug #77048.
  20. 2005-12-07 Robert Jordan <[email protected]>
  21. * SocketError.cs: Added.
  22. * SocketException: Implemented SocketErrorCode. Fixes bug #76915.
  23. 2005-10-11 Dick Porter <[email protected]>
  24. * Socket.cs: Don't call connect(2) twice for non-blocking sockets,
  25. it breaks on macos (and probably other bsd-based stacks too,) use
  26. poll() and getsockopt() to check if it worked.
  27. 2005-09-27 Gonzalo Paniagua Javier <[email protected]>
  28. * Socket.cs: add checks for 'disposed' all over. Fixes bug #76249.
  29. 2005-06-07 Gonzalo Paniagua Javier <[email protected]>
  30. * TcpClient.cs: patch by Hans Kratz that uses an integer when setting
  31. NoDelay instead of a bool, which is only handled in 2.0.
  32. 2005-06-04 Gonzalo Paniagua Javier <[email protected]>
  33. * Socket.cs: disallow connecting to .Any addresses. Fixes bug #75154.
  34. 2005-06-01 Gonzalo Paniagua Javier <[email protected]>
  35. * Socket.cs: adapted Select to the new Select_internal that uses poll()
  36. instead of select(). Managed part of the fix for bug #71203.
  37. 2005-05-23 Gonzalo Paniagua Javier <[email protected]>
  38. * Socket.cs: apply the same hack on blocking Connect calls as the one
  39. used in Accept.
  40. 2005-05-07 Gonzalo Paniagua Javier <[email protected]>
  41. * Socket.cs: see bug #74842, which is fixed with this patch for details
  42. and test cases on the blocking behavior of accept() when close() is
  43. called from another thread. The solution applied is to Abort the thread
  44. that is blocking in Accept_internal() when someone calls Close (), then
  45. reset the abort state if the socket is disposed and return the same
  46. error as MS (10004 - interrupted).
  47. 2005-05-06 Gonzalo Paniagua Javier <[email protected]>
  48. * Socket.cs: match MS behavior on SetSocketOption with a boolean
  49. argument. MS 1.1 throws an ArgumentException, but 2.0 turns true/false
  50. into 1/0 and works fine. Fixes bug #71753. Added checks for disposed
  51. in the 3 SetSocketOption.
  52. 2005-05-03 Gonzalo Paniagua Javier <[email protected]>
  53. * Socket.cs: if there are outstanding aio requests and one of them gets
  54. an ObjectDisposedException, throw the same exception for the rest.
  55. 2005-05-02 Gonzalo Paniagua Javier <[email protected]>
  56. * Socket.cs: removed hack added to fix bug #53229 (more than a year ago)
  57. that kept sockets opened until all AIO operations where finished. If
  58. the socket is closed, Receive returns 0 in EndReceive, the rest throw
  59. the ObjectDisposedException. Set the socket handle to -1 when closing.
  60. 2005-04-18 Gonzalo Paniagua Javier <[email protected]>
  61. * Socket.cs: Begin/End Send/SendTo guarantee that all bytes are written
  62. or an exception is thrown. Fixes bug #74475.
  63. 2005-04-17 Gonzalo Paniagua Javier <[email protected]>
  64. * Socket.cs: no need for locking in Worker. The actual read / write for
  65. Receive / Send is performed in the runtime time.
  66. 2005-04-15 Gonzalo Paniagua Javier <[email protected]>
  67. * Socket.cs: added a 'blocking' field that is passed to the runtime.
  68. 2005-04-09 Gonzalo Paniagua Javier <[email protected]>
  69. * Socket.cs: invoke the callback after scheduling the next request for
  70. the socket. Fixes bug #74539.
  71. 2005-04-08 Gonzalo Paniagua Javier <[email protected]>
  72. * Socket.cs: update socket connected status in an async request finishes
  73. synchronously. Use 'callback' instead of 'real_callback' field, which is
  74. now unused.
  75. 2005-04-07 Gonzalo Paniagua Javier <[email protected]>
  76. * Socket.cs: added SocketOperation enum and 2 new fields to
  77. SocketAsyncResult that are used by the runtime. Asynchronous read/write
  78. are serialized so that only 1 of each kind is really 'active'.
  79. Handle non-blocking connects in BeginConnect instead of doing 2 Poll()
  80. in the threadpool.
  81. * NetworkStream.cs: better message for the exception.
  82. 2005-04-04 Gonzalo Paniagua Javier <[email protected]>
  83. * Socket.cs: remove unused async IO code.
  84. 2005-03-01 Gonzalo Paniagua Javier <[email protected]>
  85. * Socket.cs: don't Poll/block in Connect aither.
  86. 2005-02-28 Gonzalo Paniagua Javier <[email protected]>
  87. * Socket.cs: don't block on Accept if the socket is non-blocking.
  88. Fixes bug #73053. Patch by Ankit Jain.
  89. 2005-02-23 Dick Porter <[email protected]>
  90. * UdpClient.cs: Set the Broadcast option, as apparently the MS
  91. runtime defaults make UDP sockets broadcastable.
  92. 2004-12-28 Gonzalo Paniagua Javier <[email protected]>
  93. * Socket.cs: for Receive*/Send*, don't set the connected status to false
  94. when the error is EINPROGRESS or EWOULDBLOCK.
  95. 2004-12-03 Gonzalo Paniagua Javier <[email protected]>
  96. * NetworkStream.cs: Write should ensure that writes all the contents
  97. of the buffer. Fixes bug #70123. Besos para Miguelito.
  98. 2004-10-14 Dick Porter <[email protected]>
  99. * Socket.cs (Sockets ): Set Accept()ed socket blocking status to
  100. be the same as the listening socket. This follows MS behaviour.
  101. 2004-08-04 Dick Porter <[email protected]>
  102. * Socket.cs: Update Connected state in Select and Poll; this is
  103. when we find out that non-blocking Connects succeed. Fixes bug
  104. 62398.
  105. 2004-07-28 Dick Porter <[email protected]>
  106. * Socket.cs: ReceiveFrom might not return a valid EndPoint. Patch
  107. by Nick Vaughan ([email protected]), fixes bug 61608.
  108. 2004-07-15 Dick Porter <[email protected]>
  109. * Socket.cs: Don't try and dereference a null array in Select()
  110. (possible if a descriptor list of length 0 was passed.) Patch by
  111. Nick Vaughan ([email protected]), fixes bug 61595.
  112. 2004-07-12 Gonzalo Paniagua Javier <[email protected]>
  113. * Socket.cs: if'ed RemoveReferences calls.
  114. 2004-07-09 Dick Porter <[email protected]>
  115. * Socket.cs: Slight tweak to allow unknown objects to be returned
  116. by GetSocketOption().
  117. 2004-06-28 Gonzalo Paniagua Javier <[email protected]>
  118. * Socket.cs: connect on non-blocking sockets returns EINPROGRESS. Fixes
  119. bug #60811.
  120. 2004-06-23 Gonzalo Paniagua Javier <[email protected]>
  121. * Socket.cs: wrong error code in connect and accept. EWOULDBLOCK is
  122. 10035. Fixes bug #60563.
  123. 2004-06-20 Gonzalo Paniagua Javier <[email protected]>
  124. * Socket.cs: fixed Accept for non-blocking sockets.
  125. 2004-06-10 Gert Driesen <[email protected]>
  126. * LingerOption.cs: marked field private to fix API signature
  127. * MulticastOption.cs: marked field private to fix API signature
  128. 2004-06-05 Gonzalo Paniagua Javier <[email protected]>
  129. * Socket.cs: throw ArgumentNullException if all the list are null OR
  130. empty. Fixes bug #59632.
  131. 2004-05-21 Patrik Torstensson <[email protected]>
  132. * TcpListener.cs: Fixes a lot of the problems with remoting nunit tests.
  133. (AcceptTcpClient): Don't create TcpClient before a
  134. connection is accepted.
  135. (LocalEndPoint): Use Server LocalEndPoint if connected
  136. otherwise use endpoint from ctor.
  137. (Init): Save end point, not server endpoint. This did
  138. cause TcpListener to ignore port sent via constructor.
  139. (Pending): Fixed wait time (method should return directly)
  140. (Start): Moved Bind here instead of Init method; old method
  141. caused us to bind ports even if the listener was stopped.
  142. (Stop): Null server when stopping
  143. 2004-05-13 Dick Porter <[email protected]>
  144. * UdpClient.cs:
  145. * TcpClient.cs: Public API fixes
  146. 2004-05-07 Gonzalo Paniagua Javier <[email protected]>
  147. * Socket.cs: fixed Connect for non-blocking sockets. Closes bug #58169.
  148. 2004-05-03 Gonzalo Paniagua Javier <[email protected]>
  149. * Socket.cs: fix for BeginConnect and non-blocking sockets.
  150. 2004-05-03 Lluis Sanchez Gual <[email protected]>
  151. * Socket.cs: Use assembly name const to load Mono.Posix.
  152. 2004-05-01 Gonzalo Paniagua Javier <[email protected]>
  153. * Socket.cs: only enable socket AIO if MONO_ENABLE_SOCKET_AIO is there.
  154. I will remove this once THE bug is hunted.
  155. 2004-04-28 Gonzalo Paniagua Javier <[email protected]>
  156. * Socket.cs: added support for unmanaged asynchronous IO. Speed up
  157. error checking.
  158. * UdpClient.cs: fixed Dispose so that it only closes the socket when
  159. called explicitly.
  160. 2004-04-24 Gonzalo Paniagua Javier <[email protected]>
  161. * Socket.cs: added GetSupportsAsync and Poll_internal internal calls.
  162. Cleaned up Worker class: moved fields to SocketAsyncResult and use Poll
  163. when the socket is non-blocking before getting EWOULDBLOCK error.
  164. 2004-04-08 Dick Porter <[email protected]>
  165. * Socket.cs: Rearrange the internal calls so that the exceptions
  166. are thrown from managed code
  167. 2004-03-21 Gonzalo Paniagua Javier <[email protected]>
  168. * Socket.cs: when Dispose (bool) is called from the finalizer, always
  169. do the cleanup. Fixes yet another nullref with xsp.
  170. 2004-02-19 Gonzalo Paniagua Javier <[email protected]>
  171. * Socket.cs: implemented IOControl.
  172. 2004-02-18 Gonzalo Paniagua Javier <[email protected]>
  173. * Socket.cs: use the threadpool for asynchronous calls instead of
  174. creating new threads.
  175. 2004-02-12 Gonzalo Paniagua Javier <[email protected]>
  176. * Socket.cs: added locks around waithandle assign and comparison in
  177. class Worker. Handle other exceptions than SocketException for
  178. non-blocking sockets.
  179. 2004-01-24 Gonzalo Paniagua Javier <[email protected]>
  180. * Socket.cs: handle WSAEWOULDBLOCK for non-blocking sockets. Fixes
  181. bug #53168. Avoid the creation of the ManualResetEvent in class Worker
  182. whenever possible.
  183. 2004-01-24 Gonzalo Paniagua Javier <[email protected]>
  184. * Socket.cs: if we have a pending async event, delay socket closing
  185. until EndX is called. Fixes bug #53229. Check parameters and if the
  186. socket has been disposed. Implemented IDisposable explicitly. The
  187. threads created have IsBackground = true now.
  188. 2004-01-10 Gonzalo Paniagua Javier <[email protected]>
  189. * Socket.cs: patch from Brad Fitzpatrick <[email protected]> episode 2.
  190. 2003-12-30 Gonzalo Paniagua Javier <[email protected]>
  191. * Socket.cs: fix for several asynchronous methods to delay exception
  192. throwing. Patch by Brad Fitzpatrick <[email protected]>.
  193. 2003-12-18 Gonzalo Paniagua Javier <[email protected]>
  194. * TcpListener.cs: get the LocalEndPoint from the socket after binding.
  195. Fixes bug #52329.
  196. 2003-10-20 Miguel de Icaza <[email protected]>
  197. * TcpClient.cs: Fix void Dispose (bool disposing) to follow the
  198. pattern. It was shutting down the managed resources even in the
  199. finalizer case, it should only do that when called from
  200. IDisposable.Dipose.
  201. 2003-09-11 Lluis Sanchez Gual <[email protected]>
  202. * NetworkStream.cs: Added [In,Out] attributes to Read method.
  203. 2003-08-24 Gonzalo Paniagua Javier <[email protected]>
  204. * TcpListener.cs: various fixes to make the new tests pass. Closes
  205. bug #47848.
  206. 2003-08-10 Miguel de Icaza <[email protected]>
  207. * UdpClient.cs (Receive): Fix Bug 45633; We should do a blocking
  208. call until a datagram is arrives from the remote host. This
  209. removes the 512 "magic" buffer size when we did not have any data.
  210. 2003-07-31 Gonzalo Paniagua Javier <[email protected]>
  211. * NetworkStream.cs:
  212. * Socket.cs: fixed array boundary checks. 0 sized arrays are allowed.
  213. 2003-07-18 Andreas Nahr <[email protected]>
  214. * Socket.cs: Added GetHashCode method
  215. 2003-07-14 Jerome Laban <[email protected]>
  216. * Socket.cs:
  217. * ProtocolType.cs:
  218. * SocketOptionLevel.cs:
  219. * TcpListener.cs:
  220. * TcpClient.cs:
  221. * UdpClient.cs:
  222. Added IPv6 support.
  223. * IPv6MulticastOption.cs: Added for IPv6 support.
  224. 2003-05-16 Dick Porter <[email protected]>
  225. * Socket.cs: Use Mono.Posix.UnixEndPoint if its available
  226. 2003-05-11 Gonzalo Paniagua Javier <[email protected]>
  227. * MulticastOption.cs: patch by Jerome Laban included in bug #42393.
  228. 2003-05-05 Gonzalo Paniagua Javier <[email protected]>
  229. * Socket.cs:
  230. (Select): don't create arrays if not needed.
  231. (Poll): call Select_internal directly.
  232. Warning: you need an up to date runtime for this to work!
  233. 2003-03-25 Gonzalo Paniagua Javier <[email protected]>
  234. * UdpClient.cs: don't bind the socket unless .ctor (IPEndPoint) is used.
  235. Added more checks and throws.
  236. Small fixes in Send to avoid duplicating the buffer.
  237. Moved CheckIfDisposed calls to the start of the methods instead of doing
  238. the check inside a finally clause.
  239. 2003-03-03 Gonzalo Paniagua Javier <[email protected]>
  240. * Socket.cs:
  241. (SendTo): fix from Jerome Laban <[email protected]>.
  242. 2003-02-28 Gonzalo Paniagua Javier <[email protected]>
  243. * Socket.cs: patch from Elan Feingold <[email protected]>. Fixes
  244. NullReferenceException when the callback is null.
  245. 2003-02-17 Gonzalo Paniagua Javier <[email protected]>
  246. * NetworkStream.cs: allow 0 size array in Write.
  247. 2003-02-16 Gonzalo Paniagua Javier <[email protected]>
  248. * Socket.cs: make Worker.Connect and Receive work with non-blocking
  249. sockets. May be Receive* and Send* in Worker need to do the same. I'll
  250. wait for bug reports. Set IsCompleted to true before invoking the end
  251. callback. Fixes bug #38136.
  252. 2003-01-23 Gonzalo Paniagua Javier <[email protected]>
  253. * NetworkStream.cs: the check for disposed should not be done in the
  254. finally clause.
  255. 2003-01-04 Gonzalo Paniagua Javier <[email protected]>
  256. * UdpClient.cs: fixed bug #36226.
  257. 2002-11-13 Dick Porter <[email protected]>
  258. * Socket.cs: Only close the socket in one place, ie the Dispose
  259. method. Fixes bug 32054.
  260. 2002-11-09 Gonzalo Paniagua Javier <[email protected]>
  261. * Socket.cs: offset == size == 0 it's ok in Send ().
  262. 2002-11-03 Phillip Pearson <[email protected]>
  263. * TcpClient.cs: Fixed SetTcpClient() to pass through to the Client
  264. property, which now sets stream to null (it's set by GetStream()). This
  265. should make GetStream() work on a TcpClient which has had the socket set
  266. by assignment to the Client property, not only one that has been created
  267. by TcpListener.AcceptTcpClient().
  268. 2002-10-08 Dick Porter <[email protected]>
  269. * Socket.cs:
  270. * NetworkStream.cs: Bounds checking fixes, and better exception
  271. texts. Changes by [email protected] (Timothy J. Mills).
  272. 2002-10-03 Dick Porter <[email protected]>
  273. * TcpClient.cs: NoDelay is a TCP option, not Socket
  274. 2002-09-16 Miguel de Icaza <[email protected]>
  275. * SocketFlags.cs: Add missing enumeration.
  276. * UdpClient.cs: Make Dispose private.
  277. 2002-08-20 Dick Porter <[email protected]>
  278. * Socket.cs: Fix deadlock when the AsyncResult callback calls
  279. End*(). Set the async request's worker property so it can return
  280. results. These two fixes combined fix bug 28092.
  281. 2002-06-24 Dick Porter <[email protected]>
  282. * Socket.cs: Make SetSocketOption cope with boolean values (they
  283. are passed as objects, not the ints the runtime was expecting)
  284. 2002-05-17 Lawrence Pit <[email protected]>
  285. * TcpListener.cs: Renamed LocalEndPoint to LocalEndpoint
  286. * NetworkStream.cs, UdpClient.cs and TcpClient.cs: modified disposable
  287. routines, added checks for disposed state.
  288. * UdpClient.cs: commented out GetHashCode and Equals as it's not
  289. overriden in ms.net implementation.
  290. 2002-05-17 Jaroslaw Kowalski <[email protected]>
  291. * TcpClient.cs: fixed SetTcpClient so that
  292. TcpListener.AcceptTcpClient works and allows
  293. you to call GetStream() on its result
  294. 2002-04-24 Dick Porter <[email protected]>
  295. * Socket.cs (Poll): Give correct argument to Select(), as spotted
  296. by Jaroslaw Kowalski <[email protected]>
  297. 2002-04-16 Gonzalo Paniagua Javier <[email protected]>
  298. * UdpClient.cs: implemented.
  299. 2002-04-02 Dick Porter <[email protected]>
  300. * TcpListener.cs: in Start(), set the socket listen backlog value
  301. to a sane value (noticed by Jonathan Stowe <[email protected]>)
  302. 2002-02-13 Dick Porter <[email protected]>
  303. * Socket.cs: Implemenent Select, Blocking, Connected,
  304. GetSocketOption, Poll, SetSocketOption and Shutdown
  305. * MulticastOption.cs:
  306. * LingerOption.cs: Delete override methods that don't need to be
  307. implemented
  308. 2002-01-23 Miguel de Icaza <[email protected]>
  309. * NetworkStream.cs: Implement class.
  310. 2002-01-23 Dick Porter <[email protected]>
  311. * SocketException.cs: Implemented
  312. * Socket.cs: Implemented most methods
  313. * LingerOption.cs: Made compile
  314. * AddressFamily.cs: Removed empty auto-generated comments
  315. 2002-01-17 Miguel de Icaza <[email protected]>
  316. * SocketException.cs: Reimplemented.
  317. 2002-01-06 Ravi Pratap <[email protected]>
  318. * ChangeLog : Add to this directory.
  319. * SocketException.cs, TcpClient.cs, TcpListener.cs : MonoTODO
  320. attribute decoration.