diff options
Diffstat (limited to 'OpenSim/Region/Communications/OGS1/OGS1GridServices.cs')
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 1da7621..660e684 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -1810,83 +1810,5 @@ namespace OpenSim.Region.Communications.OGS1 | |||
1810 | return null; | 1810 | return null; |
1811 | } | 1811 | } |
1812 | } | 1812 | } |
1813 | |||
1814 | public List<UUID> InformFriendsInOtherRegion(UUID agentId, ulong destRegionHandle, List<UUID> friends, bool online) | ||
1815 | { | ||
1816 | List<UUID> tpdAway = new List<UUID>(); | ||
1817 | |||
1818 | // destRegionHandle is a region on another server | ||
1819 | RegionInfo info = RequestNeighbourInfo(destRegionHandle); | ||
1820 | if (info != null) | ||
1821 | { | ||
1822 | string httpServer = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/presence_update_bulk"; | ||
1823 | |||
1824 | Hashtable reqParams = new Hashtable(); | ||
1825 | reqParams["agentID"] = agentId.ToString(); | ||
1826 | reqParams["agentOnline"] = online; | ||
1827 | int count = 0; | ||
1828 | foreach (UUID uuid in friends) | ||
1829 | { | ||
1830 | reqParams["friendID_" + count++] = uuid.ToString(); | ||
1831 | } | ||
1832 | reqParams["friendCount"] = count; | ||
1833 | |||
1834 | IList parameters = new ArrayList(); | ||
1835 | parameters.Add(reqParams); | ||
1836 | try | ||
1837 | { | ||
1838 | XmlRpcRequest request = new XmlRpcRequest("presence_update_bulk", parameters); | ||
1839 | XmlRpcResponse response = request.Send(httpServer, 5000); | ||
1840 | Hashtable respData = (Hashtable)response.Value; | ||
1841 | |||
1842 | count = (int)respData["friendCount"]; | ||
1843 | for (int i = 0; i < count; ++i) | ||
1844 | { | ||
1845 | UUID uuid; | ||
1846 | if (UUID.TryParse((string)respData["friendID_" + i], out uuid)) tpdAway.Add(uuid); | ||
1847 | } | ||
1848 | } | ||
1849 | catch (Exception e) | ||
1850 | { | ||
1851 | m_log.Error("[OGS1 GRID SERVICES]: InformFriendsInOtherRegion XMLRPC failure: ", e); | ||
1852 | } | ||
1853 | } | ||
1854 | else m_log.WarnFormat("[OGS1 GRID SERVICES]: Couldn't find region {0}???", destRegionHandle); | ||
1855 | |||
1856 | return tpdAway; | ||
1857 | } | ||
1858 | |||
1859 | public bool TriggerTerminateFriend(ulong destRegionHandle, UUID agentID, UUID exFriendID) | ||
1860 | { | ||
1861 | // destRegionHandle is a region on another server | ||
1862 | RegionInfo info = RequestNeighbourInfo(destRegionHandle); | ||
1863 | if (info == null) | ||
1864 | { | ||
1865 | m_log.WarnFormat("[OGS1 GRID SERVICES]: Couldn't find region {0}", destRegionHandle); | ||
1866 | return false; // region not found??? | ||
1867 | } | ||
1868 | |||
1869 | string httpServer = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/presence_update_bulk"; | ||
1870 | |||
1871 | Hashtable reqParams = new Hashtable(); | ||
1872 | reqParams["agentID"] = agentID.ToString(); | ||
1873 | reqParams["friendID"] = exFriendID.ToString(); | ||
1874 | |||
1875 | IList parameters = new ArrayList(); | ||
1876 | parameters.Add(reqParams); | ||
1877 | try | ||
1878 | { | ||
1879 | XmlRpcRequest request = new XmlRpcRequest("terminate_friend", parameters); | ||
1880 | XmlRpcResponse response = request.Send(httpServer, 5000); | ||
1881 | Hashtable respData = (Hashtable)response.Value; | ||
1882 | |||
1883 | return (bool)respData["success"]; | ||
1884 | } | ||
1885 | catch (Exception e) | ||
1886 | { | ||
1887 | m_log.Error("[OGS1 GRID SERVICES]: InformFriendsInOtherRegion XMLRPC failure: ", e); | ||
1888 | return false; | ||
1889 | } | ||
1890 | } | ||
1891 | } | 1813 | } |
1892 | } | 1814 | } |