public void HandleRequest(ISocketListener socketListener) { var buffer = new byte[ReadSize]; socketListener.Receive(buffer, readBytes => { if (readBytes.Length <= 0) { _logger.Debug("Client disconnected from {0}:{1}", socketListener.RemoteIpAddress, socketListener.RemotePort); socketListener.Dispose(); return; } var requestString = Encoding.UTF8.GetString(readBytes); var request = _requestParser.Parse(requestString); var handler = _handshakeNegotiator.Negotiate(request, m => socketListener.Send(m, _logger)); Read(socketListener, buffer, handler); }, ex => socketListener.Close(ex.GetErrorResponse(), _logger)); }
private void OnError(Exception e, ISocketListener socketListener) { _logger.Error("Failed to authenticate secure connection. {0}", e); var forbidden = new HttpResponse(HttpStatusCode.Forbidden); socketListener.Send(forbidden.ToBytes(), socketListener.Dispose, ex => _logger.Error("Failed to response to client: {0}", ex)); }