ChangeLog 35 KB

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