More tweaking on the UserAgentServiceConnector: add constructor that does not do DNS lookup, and use that for friends notification.

bulletsim
Diva Canto 2011-06-10 21:07:50 -07:00
parent 0ae022d688
commit 5f311c91c7
2 changed files with 23 additions and 14 deletions

View File

@ -278,7 +278,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
List<string> ids = new List<string>(); List<string> ids = new List<string>();
foreach (FriendInfo f in kvp.Value) foreach (FriendInfo f in kvp.Value)
ids.Add(f.Friend); ids.Add(f.Friend);
UserAgentServiceConnector uConn = new UserAgentServiceConnector(kvp.Key); UserAgentServiceConnector uConn = new UserAgentServiceConnector(kvp.Key, false);
List<UUID> friendsOnline = uConn.StatusNotification(ids, userID, online); List<UUID> friendsOnline = uConn.StatusNotification(ids, userID, online);
// need to debug this here // need to debug this here
if (online) if (online)

View File

@ -51,22 +51,31 @@ namespace OpenSim.Services.Connectors.Hypergrid
MethodBase.GetCurrentMethod().DeclaringType); MethodBase.GetCurrentMethod().DeclaringType);
string m_ServerURL; string m_ServerURL;
public UserAgentServiceConnector(string url)
public UserAgentServiceConnector(string url) : this(url, true)
{
}
public UserAgentServiceConnector(string url, bool dnsLookup)
{ {
m_ServerURL = url; m_ServerURL = url;
// Doing this here, because XML-RPC or mono have some strong ideas about
// caching DNS translations. if (dnsLookup)
try
{ {
Uri m_Uri = new Uri(m_ServerURL); // Doing this here, because XML-RPC or mono have some strong ideas about
IPAddress ip = Util.GetHostFromDNS(m_Uri.Host); // caching DNS translations.
m_ServerURL = m_ServerURL.Replace(m_Uri.Host, ip.ToString()); try
if (!m_ServerURL.EndsWith("/")) {
m_ServerURL += "/"; Uri m_Uri = new Uri(m_ServerURL);
} IPAddress ip = Util.GetHostFromDNS(m_Uri.Host);
catch (Exception e) m_ServerURL = m_ServerURL.Replace(m_Uri.Host, ip.ToString());
{ if (!m_ServerURL.EndsWith("/"))
m_log.DebugFormat("[USER AGENT CONNECTOR]: Malformed Uri {0}: {1}", m_ServerURL, e.Message); m_ServerURL += "/";
}
catch (Exception e)
{
m_log.DebugFormat("[USER AGENT CONNECTOR]: Malformed Uri {0}: {1}", m_ServerURL, e.Message);
}
} }
m_log.DebugFormat("[USER AGENT CONNECTOR]: new connector to {0} ({1})", url, m_ServerURL); m_log.DebugFormat("[USER AGENT CONNECTOR]: new connector to {0} ({1})", url, m_ServerURL);
} }