def _write(request, bytes):
    try:
        request.connection.write(bytes)
    except Exception, e:
        util.prepend_message_to_exception(
            'Failed to send message to %r: ' %
            (request.connection.remote_addr, ), e)
        raise
Exemplo n.º 2
0
 def _check_header_lines(self):
     for key, expected_value in _MANDATORY_HEADERS:
         actual_value = self._request.headers_in.get(key)
         if not actual_value:
             raise HandshakeError("Header %s is not defined" % key)
         if expected_value:
             if actual_value != expected_value:
                 raise HandshakeError("Illegal value for header %s: %s" % (key, actual_value))
     if self._strict:
         try:
             lines = self._request.connection.get_memorized_lines()
         except AttributeError, e:
             util.prepend_message_to_exception(
                 "Strict handshake is specified but the connection " "doesn't provide get_memorized_lines()", e
             )
             raise
         self._check_first_lines(lines)
Exemplo n.º 3
0
 def _check_header_lines(self):
     for key, expected_value in _MANDATORY_HEADERS:
         actual_value = self._request.headers_in.get(key)
         if not actual_value:
             raise HandshakeError('Header %s is not defined' % key)
         if expected_value:
             if actual_value != expected_value:
                 raise HandshakeError('Illegal value for header %s: %s' %
                                      (key, actual_value))
     if self._strict:
         try:
             lines = self._request.connection.get_memorized_lines()
         except AttributeError, e:
             util.prepend_message_to_exception(
                 'Strict handshake is specified but the connection '
                 'doesn\'t provide get_memorized_lines()', e)
             raise
         self._check_first_lines(lines)
Exemplo n.º 4
0
    def transfer_data(self, request):
        """Let a handler transfer_data with a Web Socket client.

        Select a handler based on request.ws_resource and call its
        web_socket_transfer_data function.

        Args:
            request: mod_python request.
        """

        unused_do_extra_handshake, transfer_data_ = self._handler(request)
        try:
            transfer_data_(request)
        except Exception, e:
            util.prepend_message_to_exception(
                '%s raised exception for %s: ' %
                (_TRANSFER_DATA_HANDLER_NAME, request.ws_resource), e)
            raise
Exemplo n.º 5
0
    def do_extra_handshake(self, request):
        """Do extra checking in Web Socket handshake.

        Select a handler based on request.uri and call its
        web_socket_do_extra_handshake function.

        Args:
            request: mod_python request.
        """

        do_extra_handshake_, unused_transfer_data = self._handler(request)
        try:
            do_extra_handshake_(request)
        except Exception, e:
            util.prepend_message_to_exception(
                '%s raised exception for %s: ' %
                (_DO_EXTRA_HANDSHAKE_HANDLER_NAME, request.ws_resource), e)
            raise
Exemplo n.º 6
0
    def transfer_data(self, request):
        """Let a handler transfer_data with a Web Socket client.

        Select a handler based on request.ws_resource and call its
        web_socket_transfer_data function.

        Args:
            request: mod_python request.
        """

        unused_do_extra_handshake, transfer_data_ = self._handler(request)
        try:
            transfer_data_(request)
        except Exception, e:
            util.prepend_message_to_exception(
                    '%s raised exception for %s: ' % (
                            _TRANSFER_DATA_HANDLER_NAME, request.ws_resource),
                    e)
            raise
Exemplo n.º 7
0
    def do_extra_handshake(self, request):
        """Do extra checking in Web Socket handshake.

        Select a handler based on request.uri and call its
        web_socket_do_extra_handshake function.

        Args:
            request: mod_python request.
        """

        do_extra_handshake_, unused_transfer_data = self._handler(request)
        try:
            do_extra_handshake_(request)
        except Exception, e:
            util.prepend_message_to_exception(
                    '%s raised exception for %s: ' % (
                            _DO_EXTRA_HANDSHAKE_HANDLER_NAME,
                            request.ws_resource),
                    e)
            raise
Exemplo n.º 8
0
def _write(request, bytes):
    try:
        request.connection.write(bytes)
    except Exception, e:
        util.prepend_message_to_exception("Failed to send message to %r: " % (request.connection.remote_addr,), e)
        raise