public virtual void Handle(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { RequestsReceived++; if (m_Auth != null) { HttpStatusCode statusCode; if (!m_Auth.Authenticate(httpRequest.Headers, httpResponse.AddHeader, out statusCode)) { httpResponse.StatusCode = (int)statusCode; return; } } try { if (m_processRequest != null) { m_processRequest(httpRequest, httpResponse); } else { ProcessRequest(httpRequest, httpResponse); } } catch { httpResponse.StatusCode = (int)HttpStatusCode.InternalServerError; } RequestsHandled++; }
public virtual void Handle(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { RequestsReceived++; if (httpRequest.HttpMethod != m_httMethod) { httpResponse.StatusCode = (int)HttpStatusCode.NotFound; return; } OSDMap args; try { args = (OSDMap)OSDParser.Deserialize(httpRequest.InputStream); } catch { httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; return; } if (args == null) { httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; return; } if (m_Auth != null) { if (!m_Auth.Authenticate(httpRequest.Headers, httpResponse.AddHeader, out HttpStatusCode statusCode)) { httpResponse.StatusCode = (int)statusCode; return; } } try { if (m_processRequest != null) { m_processRequest(httpRequest, httpResponse, args); } else { ProcessRequest(httpRequest, httpResponse, args); } } catch { httpResponse.StatusCode = (int)HttpStatusCode.InternalServerError; } RequestsHandled++; }
public virtual byte[] Handle( string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { RequestsReceived++; if (m_Auth != null && !m_Auth.Authenticate(httpRequest.Headers, httpResponse.AddHeader)) { httpResponse.StatusCode = (int)HttpStatusCode.Unauthorized; httpResponse.ContentType = "text/plain"; return(new byte[0]); } byte[] result = ProcessRequest(path, request, httpRequest, httpResponse); RequestsHandled++; return(result); }
public virtual void Handle(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { RequestsReceived++; if (httpRequest.HttpMethod != m_httMethod) { httpResponse.StatusCode = (int)HttpStatusCode.NotFound; return; } if (httpRequest.InputStream == null || httpRequest.InputStream.Length == 0) { httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; return; } if (m_maxDatasize > 0 && httpRequest.InputStream.Length > m_maxDatasize) { httpResponse.StatusCode = (int)HttpStatusCode.RequestEntityTooLarge; return; } byte[] data; try { Stream request = httpRequest.InputStream; if (request is MemoryStream) { data = ((MemoryStream)request).ToArray(); } else { request.Seek(0, SeekOrigin.Begin); using (MemoryStream ms = new MemoryStream((int)request.Length)) { request.CopyTo(ms); data = ms.ToArray(); } } request.Dispose(); } catch { httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; return; } if (m_Auth != null) { if (!m_Auth.Authenticate(httpRequest.Headers, httpResponse.AddHeader, out HttpStatusCode statusCode)) { httpResponse.StatusCode = (int)statusCode; return; } } try { if (m_processRequest != null) { m_processRequest(httpRequest, httpResponse, data); } else { ProcessRequest(httpRequest, httpResponse, data); } } catch { httpResponse.StatusCode = (int)HttpStatusCode.InternalServerError; } RequestsHandled++; }