def __recv_cb(data): stat = json.loads(data.decode('utf-8')) if stat == True: conn = SocketConnection(worker_link, main_stream, sock_addr, self.pend_filestream, self.del_pend_filestream) Proxy.instance.add_conn(conn) __handle_pend(conn) else: main_stream.set_close_callback(None) main_stream.close()
def __init__(self, main_stream, link, idendesc, worker_info, center_link): global center_serv self.main_stream = main_stream self.link = link self.idendesc = idendesc self.sock_addr = (worker_info['sock_ip'], worker_info['sock_port']) netio.send_pack( self.main_stream, bytes( json.dumps({ 'idendesc': self.idendesc, 'worker_link': self.link, 'center_link': center_link }), 'utf-8')) conn = SocketConnection(self.link, self.main_stream, self.sock_addr, center_serv.add_pend_filestream) conn.add_close_callback(lambda conn: self.close()) Proxy.instance.add_conn(conn)
def ___recv_info_cb(data): info = json.loads(data.decode('utf-8')) pubkey = open('pubkey.pem', 'r').read() TOJAuth(pubkey) self._idendesc = info['idendesc'] self._link = info['worker_link'] Proxy(self._link, TOJAuth.instance, self._idendesc, self._conn_link) self.center_conn = SocketConnection(info['center_link'], stream, self.center_addr, self.pend_filestream, self.del_pend_filestream) self.center_conn.add_close_callback(__retry) Proxy.instance.add_conn(self.center_conn) #self._init_blobclient() #Proxy.instance.register_call('test/','get_client_list',self._test_get_client_list) Proxy.instance.register_call('test/', 'test_dst', self._test_dst) #Proxy.instance.register_filter('test/',self._test_filter) try: mod.load('Notice', 'notice', self._idendesc, self._get_link) mod.load('UserMg', 'user', self._idendesc, self._get_link) mod.load('SquareMg', 'square', self._idendesc, self._get_link) mod.load('ProblemMg', 'problem', self._idendesc, self._get_link) mod.load('Mail', 'mail', self._idendesc, self._get_link) except Exception as e: print(e) if self._link == '/backend/2/': self._test_call(None)
def _handle_mainconn(self, main_stream, addr, info): link = info['link'] sock_ip = info['sock_ip'] sock_port = info['sock_port'] conn = Proxy.instance.get_conn(link) if conn != None: return if (link not in self._pend_mainconn_linkmap) or self._link > link: conn = SocketConnection(link, main_stream, (sock_ip, sock_port), self.pend_filestream, self.del_pend_filestream) Proxy.instance.add_conn(conn) netio.send_pack(main_stream, bytes(json.dumps(True), 'utf-8')) if link in self._pend_mainconn_linkmap: retids = self._pend_mainconn_linkmap.pop(link) for retid in retids: imc. async .ret(retid, conn) else: netio.send_pack(main_stream, bytes(json.dumps(False), 'utf-8'))