I have the same problem, and applying the fix from the code snippet to force SFS to NOT use DNS resolution works... kind of. But a different error right afterwards still prevents Mac Firefox from connecting properly.
I added a few debug logs to the SFS CSharp API to see what was going on, but I'm still puzzled - it seems to be another problem specific to Mac Mono. Basically, it looks like the function GetString(XmlNode, string) from XmlUtil.cs, when called from XmlReceived (SmartFoxClient.cs), throws an exception it's not supposed to throw. I added a "catch (Exception e)" in XmlReceived to see what was going on. Here's what I get from DebugMessage on the Mac Firefox webplayer, with lines starting with "###" being log additions of my own:
Any idea on how to prevent this?
Code: Select all
> Trying to connect
> [Sending]: <msg t='sys'><body action='verChk' r='0'><ver v='154' /></body></msg>
> ### Read 92 bytes
> ### messages.Count is 2
> [ RECEIVED ]: <cross-domain-policy><allow-access-from domain='*' to-ports='9339' /></cross-domain-policy>, (len: 91)
> XmlReceived: <cross-domain-policy><allow-access-from domain='*' to-ports='9339' /></cross-domain-policy>
> ### XML Handler exception System.TypeInitializationException: An exception was thrown by the type initializer for System.Console ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.ConsoleDriver ---> System.IO.IOException: Win32 IO returned 50. Path: /etc/terminfo
at System.IO.Directory.Exists (System.String path) [0x00000]
at System.TermInfoDriver.SearchTerminfo (System.String term) [0x00000]
at System.TermInfoDriver..ctor (System.String term) [0x00000]
at System.ConsoleDriver..cctor () [0x00000] --- End of inner exception stack trace ---
at <0x00000> <unknown method>
at System.Console..cctor () [0x00000] --- End of inner exception stack trace ---
at <0x00000> <unknown method>
at Mono.Xml.XPath.XPathParser..ctor (IStaticXsltContext context) [0x00000]
at System.Xml.XPath.XPathExpression.Compile (System.String xpath, IXmlNamespaceResolver nsmgr, IStaticXsltContext ctx) [0x00000]
at System.Xml.XPath.XPathExpression.Compile (System.String xpath) [0x00000]
at System.Xml.XPath.XPathNavigator.Compile (System.String xpath) [0x00000]
at System.Xml.XmlNode.SelectSingleNode (System.String xpath, System.Xml.XmlNamespaceManager nsmgr) [0x00000]
at System.Xml.XmlNode.SelectSingleNode (System.String xpath) [0x00000]
at SmartFoxClientAPI.Util.XmlUtil.GetString (System.Xml.XmlNode node, System.String path) [0x00000]
at SmartFoxClientAPI.SmartFoxClient.XmlReceived (System.String msg) [0x00000]
> ### Read 54 bytes
> ### messages.Count is 2
> [ RECEIVED ]: <msg t='sys'><body action='apiOK' r='0'></body></msg>, (len: 53)
> XmlReceived: <msg t='sys'><body action='apiOK' r='0'></body></msg>
> ### XML Handler exception System.TypeInitializationException: An exception was thrown by the type initializer for System.Console ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.ConsoleDriver ---> System.IO.IOException: Win32 IO returned 50. Path: /etc/terminfo
at System.IO.Directory.Exists (System.String path) [0x00000]
at System.TermInfoDriver.SearchTerminfo (System.String term) [0x00000]
at System.TermInfoDriver..ctor (System.String term) [0x00000]
at System.ConsoleDriver..cctor () [0x00000] --- End of inner exception stack trace ---
at <0x00000> <unknown method>
at System.Console..cctor () [0x00000] --- End of inner exception stack trace ---
at <0x00000> <unknown method>
at Mono.Xml.XPath.XPathParser..ctor (IStaticXsltContext context) [0x00000]
at System.Xml.XPath.XPathExpression.Compile (System.String xpath, IXmlNamespaceResolver nsmgr, IStaticXsltContext ctx) [0x00000]
at System.Xml.XPath.XPathExpression.Compile (System.String xpath) [0x00000]
at System.Xml.XPath.XPathNavigator.Compile (System.String xpath) [0x00000]
at System.Xml.XmlNode.SelectSingleNode (System.String xpath, System.Xml.XmlNamespaceManager nsmgr) [0x00000]
at System.Xml.XmlNode.SelectSingleNode (System.String xpath) [0x00000]
at SmartFoxClientAPI.Util.XmlUtil.GetString (System.Xml.XmlNode node, System.String path) [0x00000]
at SmartFoxClientAPI.SmartFoxClient.XmlReceived (System.String msg) [0x00000]