1313from gevent import monkey
1414monkey .patch_all ()
1515import os
16- import socket
16+ from gevent import socket
1717from gevent .event import Event
1818import sys
1919import traceback
@@ -89,17 +89,19 @@ def listen(cmd_req_response, sock, fail_auth = False):
8989 try :
9090 sock .listen (100 )
9191 logger .info ('Listening for connection on %s:%s..' , listen_ip , listen_port )
92+ client , addr = sock .accept ()
9293 except Exception , e :
9394 logger .error ('*** Listen failed: %s' % (str (e ),))
9495 traceback .print_exc ()
9596 return
96- accept_thread = gevent .spawn (handle_ssh_connection ,
97- cmd_req_response , sock ,
98- fail_auth = fail_auth )
97+ # accept_thread = gevent.spawn(handle_ssh_connection,
98+ # cmd_req_response, client, addr,
99+ # fail_auth=fail_auth)
100+ handle_ssh_connection (cmd_req_response , client , addr , fail_auth = fail_auth )
99101 # accept_thread.start()
100- return accept_thread
102+ # return accept_thread
101103
102- def _handle_ssh_connection (cmd_req_response , t , client , addr , fail_auth = False ):
104+ def _handle_ssh_connection (cmd_req_response , t , fail_auth = False ):
103105 try :
104106 t .load_server_moduli ()
105107 except :
@@ -129,12 +131,12 @@ def _accept_ssh_data(t, server):
129131 time .sleep (.5 )
130132 chan .close ()
131133
132- def handle_ssh_connection (cmd_req_response , sock , fail_auth = False ):
133- client , addr = sock .accept ()
134+ def handle_ssh_connection (cmd_req_response , client , addr , fail_auth = False ):
135+ # client, addr = sock.accept()
134136 logger .info ('Got connection..' )
135137 try :
136138 t = paramiko .Transport (client )
137- _handle_ssh_connection (cmd_req_response , t , client , addr , fail_auth = fail_auth )
139+ _handle_ssh_connection (cmd_req_response , t , fail_auth = fail_auth )
138140 except Exception , e :
139141 logger .error ('*** Caught exception: %s: %s' % (str (e .__class__ ), str (e ),))
140142 traceback .print_exc ()
@@ -144,11 +146,14 @@ def handle_ssh_connection(cmd_req_response, sock, fail_auth = False):
144146 pass
145147 return
146148
149+ def start_server (cmd_req_response , sock , fail_auth = False ):
150+ return gevent .spawn (listen , cmd_req_response , sock , fail_auth = fail_auth )
151+
147152if __name__ == "__main__" :
148153 logging .basicConfig ()
149154 logger .setLevel (logging .DEBUG )
150155 sock = make_socket ('127.0.0.1' )
151- server = listen ({'fake' : 'fake response' + os .linesep }, sock )
156+ server = start_server ({'fake' : 'fake response' + os .linesep }, sock )
152157 try :
153158 server .get ()
154159 except KeyboardInterrupt :
0 commit comments