Beispiel #1
0
 public HTTPConnection(IOStream stream_, IPEndPoint address_, Func<HTTPRequest, RequestHandler> request_callback_, bool no_keep_alive_ = false, bool xheaders_ = false)
 {
     stream = stream_;
     address = address_;
     request_callback = request_callback_;
     no_keep_alive = no_keep_alive_;
     xheaders = xheaders_;
     _request = null;
     _request_finished = false;
     // Save stack context here, outside of any request.  This keeps
     // contexts from one request from leaking into the next.
     _header_callback = _on_headers; //stack_context.wrap(self._on_headers);
     stream.read_until(Encoding.UTF8.GetBytes("\r\n\r\n"), _header_callback);
     _write_callback = null;
 }
Beispiel #2
0
        private void _handle_connection(Socket connection, IPEndPoint address)
        {
            //todo ssl
            /*if self.ssl_options is not None:
                assert ssl, "Python 2.6+ and OpenSSL required for SSL"
                try:
                    connection = ssl.wrap_socket(connection,
                                                 server_side=True,
                                                 do_handshake_on_connect=False,
                                                 **self.ssl_options)
                except ssl.SSLError, err:
                    if err.args[0] == ssl.SSL_ERROR_EOF:
                        return connection.close()
                    else:
                        raise
                except socket.error, err:
                    if err.args[0] == errno.ECONNABORTED:
                        return connection.close()
                    else:
                        raise*/
            
            try
            {
                IOStream stream = null;

                if(ssl_options != null)
                    ;//stream = SSLIOStream(connection, io_loop=self.io_loop)
                else
                    stream = new IOStream(connection, io_loop);
                handle_stream(stream, address);
            }
            catch(Exception ex)
            {
                logging.error("Error in connection callback", ex);
            }
        }
Beispiel #3
0
        public override void handle_stream(IOStream stream, IPEndPoint address)
        {

            new HTTPConnection(stream, address, request_callback, no_keep_alive, xheaders);
        }
Beispiel #4
0
 public virtual void handle_stream(IOStream stream, IPEndPoint address)
 {
     // Override to handle a new `IOStream` from an incoming connection.
     throw new NotImplementedException();
 }