diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index fc478ab..c7a62b3 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -1944,6 +1944,54 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1944 | } | 1944 | } |
1945 | } | 1945 | } |
1946 | 1946 | ||
1947 | private enum InfoType | ||
1948 | { | ||
1949 | Nick, | ||
1950 | Name, | ||
1951 | Login | ||
1952 | }; | ||
1953 | |||
1954 | private string GridUserInfo(InfoType type) | ||
1955 | { | ||
1956 | string retval = String.Empty; | ||
1957 | IConfigSource config = m_ScriptEngine.ConfigSource; | ||
1958 | string url = config.Configs["GridInfo"].GetString("GridInfoURI", String.Empty); | ||
1959 | |||
1960 | if (String.IsNullOrEmpty(url)) | ||
1961 | return "Configuration Error!"; | ||
1962 | |||
1963 | string verb ="/json_grid_info"; | ||
1964 | OSDMap json = new OSDMap(); | ||
1965 | |||
1966 | OSDMap info = WebUtil.GetFromService(String.Format("{0}{1}",url,verb), 3000); | ||
1967 | |||
1968 | if (info["Success"] != true) | ||
1969 | return "Get GridInfo Failed!"; | ||
1970 | |||
1971 | json = (OSDMap)OSDParser.DeserializeJson(info["_RawResult"].AsString()); | ||
1972 | |||
1973 | switch (type) | ||
1974 | { | ||
1975 | case InfoType.Nick: | ||
1976 | retval = json["gridnick"]; | ||
1977 | break; | ||
1978 | |||
1979 | case InfoType.Name: | ||
1980 | retval = json["gridname"]; | ||
1981 | break; | ||
1982 | |||
1983 | case InfoType.Login: | ||
1984 | retval = json["login"]; | ||
1985 | break; | ||
1986 | |||
1987 | default: | ||
1988 | retval = "error"; | ||
1989 | break; | ||
1990 | } | ||
1991 | |||
1992 | return retval; | ||
1993 | } | ||
1994 | |||
1947 | /// <summary> | 1995 | /// <summary> |
1948 | /// Get the nickname of this grid, as set in the [GridInfo] config section. | 1996 | /// Get the nickname of this grid, as set in the [GridInfo] config section. |
1949 | /// </summary> | 1997 | /// </summary> |
@@ -1957,10 +2005,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1957 | { | 2005 | { |
1958 | CheckThreatLevel(ThreatLevel.Moderate, "osGetGridNick"); | 2006 | CheckThreatLevel(ThreatLevel.Moderate, "osGetGridNick"); |
1959 | m_host.AddScriptLPS(1); | 2007 | m_host.AddScriptLPS(1); |
1960 | string nick = "hippogrid"; | 2008 | |
2009 | string nick = String.Empty; | ||
1961 | IConfigSource config = m_ScriptEngine.ConfigSource; | 2010 | IConfigSource config = m_ScriptEngine.ConfigSource; |
2011 | |||
1962 | if (config.Configs["GridInfo"] != null) | 2012 | if (config.Configs["GridInfo"] != null) |
1963 | nick = config.Configs["GridInfo"].GetString("gridnick", nick); | 2013 | nick = config.Configs["GridInfo"].GetString("gridnick", nick); |
2014 | |||
2015 | if (String.IsNullOrEmpty(nick)) | ||
2016 | nick = GridUserInfo(InfoType.Nick); | ||
2017 | |||
1964 | return nick; | 2018 | return nick; |
1965 | } | 2019 | } |
1966 | 2020 | ||
@@ -1968,10 +2022,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1968 | { | 2022 | { |
1969 | CheckThreatLevel(ThreatLevel.Moderate, "osGetGridName"); | 2023 | CheckThreatLevel(ThreatLevel.Moderate, "osGetGridName"); |
1970 | m_host.AddScriptLPS(1); | 2024 | m_host.AddScriptLPS(1); |
1971 | string name = "the lost continent of hippo"; | 2025 | |
2026 | string name = String.Empty; | ||
1972 | IConfigSource config = m_ScriptEngine.ConfigSource; | 2027 | IConfigSource config = m_ScriptEngine.ConfigSource; |
2028 | |||
1973 | if (config.Configs["GridInfo"] != null) | 2029 | if (config.Configs["GridInfo"] != null) |
1974 | name = config.Configs["GridInfo"].GetString("gridname", name); | 2030 | name = config.Configs["GridInfo"].GetString("gridname", name); |
2031 | |||
2032 | if (String.IsNullOrEmpty(name)) | ||
2033 | name = GridUserInfo(InfoType.Name); | ||
2034 | |||
1975 | return name; | 2035 | return name; |
1976 | } | 2036 | } |
1977 | 2037 | ||
@@ -1979,10 +2039,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1979 | { | 2039 | { |
1980 | CheckThreatLevel(ThreatLevel.Moderate, "osGetGridLoginURI"); | 2040 | CheckThreatLevel(ThreatLevel.Moderate, "osGetGridLoginURI"); |
1981 | m_host.AddScriptLPS(1); | 2041 | m_host.AddScriptLPS(1); |
1982 | string loginURI = "http://127.0.0.1:9000/"; | 2042 | |
2043 | string loginURI = String.Empty; | ||
1983 | IConfigSource config = m_ScriptEngine.ConfigSource; | 2044 | IConfigSource config = m_ScriptEngine.ConfigSource; |
2045 | |||
1984 | if (config.Configs["GridInfo"] != null) | 2046 | if (config.Configs["GridInfo"] != null) |
1985 | loginURI = config.Configs["GridInfo"].GetString("login", loginURI); | 2047 | loginURI = config.Configs["GridInfo"].GetString("login", loginURI); |
2048 | |||
2049 | if (String.IsNullOrEmpty(loginURI)) | ||
2050 | loginURI = GridUserInfo(InfoType.Login); | ||
2051 | |||
1986 | return loginURI; | 2052 | return loginURI; |
1987 | } | 2053 | } |
1988 | 2054 | ||