Esempio n. 1
0
    def connectionMade(self):
        prologue = protocol.build_prologue(self._cluster_id)
        self.transport.write(prologue)

        self.connected = True

        return stateful.StatefulProtocol.connectionMade(self)
Esempio n. 2
0
    def connect(self):
        '''Create client socket and connect to server'''

        import socket

        self._socket = socket.create_connection(self._address)

        after_idle_sec = 20
        interval_sec = 20
        max_fails = 3
        self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
        self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, after_idle_sec)
        self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, interval_sec)
        self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, max_fails)

        prologue = protocol.build_prologue(self._cluster_id)
        self._socket.sendall(prologue)
Esempio n. 3
0
    def connect(self):
        if self._socket:
            self._socket.close()
            self._socket = None

        try:
            self._socket = socket.create_connection(self._address, self._timeout)

            after_idle_sec = 20
            interval_sec = 20
            max_fails = 3
            self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
            self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, after_idle_sec)
            self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, interval_sec)
            self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, max_fails)
            
            if self._tls:
                kwargs = {
                    'ssl_version': ssl.PROTOCOL_TLSv1,
                    'cert_reqs': ssl.CERT_OPTIONAL,
                    'do_handshake_on_onnect' : True
                }
                
                if self._tls_ca_cert:
                    kwargs['cert_reqs'] = ssl.CERT_REQUIRED
                    kwargs['ca_certs'] = self._tls_ca_cert

                if self._tls_cert:
                    cert, key = self._tls_cert
                    kwargs['keyfile'] = key
                    kwargs['certfile'] = cert

                self._socket = ssl.wap_socket(self._socket, **kwargs)
            
            
            data = protocol.build_prologue(self._cluster_id)
            self._socket.sendall(data)

            self._connected = True
        except Exception as e:
            LOGGER.exception('%s: Unable to connect to %s', e, self._address)