[Mono-bugs] [Bug 79878][Maj] Changed - BeginConnect/EndConnect for Socket does not work correctly on connection error
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Wed Jan 17 13:25:44 EST 2007
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by benoit at zeroc.com.
http://bugzilla.ximian.com/show_bug.cgi?id=79878
--- shadow/79878 2007-01-17 12:19:59.000000000 -0500
+++ shadow/79878.tmp.3563 2007-01-17 13:25:44.000000000 -0500
@@ -114,6 +114,29 @@
Could you point me directly to the Ice tests? (The directory in the
source tar is fine.)
I looked at the DJB page, but I don't think any of the techniques he
listed is suitable for mono. I'll have a look at only checking the
SO_ERROR state if connected == false though.
+
+------- Additional Comments From benoit at zeroc.com 2007-01-17 13:25 -------
+Ice for C# can be downloaded here http://www.zeroc.com/download/Ice/3.1/
+IceCS-3.1.1.tar.gz. If you want to run the tests you'll first have to download and compile
+Ice for C++ (check http://www.zeroc.com/download) and then Ice for C# (the tests can
+then be run with the IceCS-3.1.1/allTests.py script) at the root of the source distribution
+directory.
+
+The Ice for C# code I mentioned is in the src/Ice/Network.cs file, the doConnect method.
+This code was working fine prior to this fix because GetSocketOption returned the socket
+error (and this broke the IceCS-3.1.1/test/Ice/binding test which expects an
+Ice.ConnectionRefusedException rather than a Ice.ConnectionFailedException from
+doConnect()...).
+
+For our next release, I've workaround the problem by using BeginConnect/EndConnect for
+Mono (I'm still using Select/GetSocketOption for .NET though because I couldn't get
+BeginConnect/EndConnect to work on .NET for some reasons, I can't remember the details
+:()
+
+I thought the technique of calling getpeername() and then read(fd,&ch,1) if getpeername
+returned ENOTCONN could eventually work but I didn't try it and I'm sure you know better!
+(it's sounds a bit hacky too...)
+
More information about the mono-bugs
mailing list