public bool Check() { bool needToContinue = false; foreach (IHttpRequestModule iHttpReq in m_modules) { IServiceRequest httpInfo = null; if (iHttpReq != null) { httpInfo = iHttpReq.GetNextCompletedRequest(); if (!needToContinue) needToContinue = iHttpReq.GetRequestCount() > 0; } if (httpInfo == null) continue; while (httpInfo != null) { IHttpRequestClass info = (IHttpRequestClass) httpInfo; //MainConsole.Instance.Debug("[AsyncLSL]:" + httpInfo.response_body + httpInfo.status); // Deliver data to prim's remote_data handler iHttpReq.RemoveCompletedRequest(info); object[] resobj = new object[] { new LSL_Types.LSLString(info.ReqID.ToString()), new LSL_Types.LSLInteger(info.Status), new LSL_Types.list(info.Metadata), new LSL_Types.LSLString(info.ResponseBody) }; m_ScriptEngine.AddToObjectQueue(info.PrimID, "http_response", new DetectParams[0], resobj); if (info.Status == (int)499 && //Too many for this prim info.VerbroseThrottle) { ISceneChildEntity part = m_ScriptEngine.Scene.GetSceneObjectPart(info.PrimID); if (part != null) { IChatModule chatModule = m_ScriptEngine.Scene.RequestModuleInterface<IChatModule>(); if (chatModule != null) chatModule.SimChat( part.Name + "(" + part.AbsolutePosition + ") http_response error: Too many outgoing requests.", ChatTypeEnum.DebugChannel, 2147483647, part.AbsolutePosition, part.Name, part.UUID, false, m_ScriptEngine.Scene); } } httpInfo = iHttpReq.GetNextCompletedRequest(); } } return needToContinue; }
public bool Check() { bool needToContinue = false; foreach (IHttpRequestModule iHttpReq in m_modules) { IServiceRequest httpInfo = null; if (iHttpReq != null) { httpInfo = iHttpReq.GetNextCompletedRequest(); if (!needToContinue) { needToContinue = iHttpReq.GetRequestCount() > 0; } } if (httpInfo == null) { continue; } while (httpInfo != null) { IHttpRequestClass info = (IHttpRequestClass)httpInfo; //MainConsole.Instance.Debug("[AsyncLSL]:" + httpInfo.response_body + httpInfo.status); // Deliver data to prim's remote_data handler iHttpReq.RemoveCompletedRequest(info); object[] resobj = new object[] { new LSL_Types.LSLString(info.ReqID.ToString()), new LSL_Types.LSLInteger(info.Status), new LSL_Types.list(info.Metadata), new LSL_Types.LSLString(info.ResponseBody) }; m_ScriptEngine.AddToObjectQueue(info.PrimID, "http_response", new DetectParams[0], resobj); httpInfo = iHttpReq.GetNextCompletedRequest(); } } return(needToContinue); }