KERNEL: fix multisocket
bzr revid: ced-c8ed85742923230161fe7e3d43ad5f20d417ed71
This commit is contained in:
parent
6b621cbb8d
commit
2160a47330
|
@ -282,11 +282,14 @@ class TinySocketClientThread(threading.Thread):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
import traceback
|
import traceback
|
||||||
|
import time
|
||||||
try:
|
try:
|
||||||
self.running = True
|
self.running = True
|
||||||
ts = tiny_socket.mysocket(self.sock)
|
ts = tiny_socket.mysocket(self.sock)
|
||||||
while self.running:
|
while self.running:
|
||||||
|
c = time.time()
|
||||||
msg = ts.myreceive()
|
msg = ts.myreceive()
|
||||||
|
print time.time() - c
|
||||||
|
|
||||||
try:
|
try:
|
||||||
s=LocalService(msg[0])
|
s=LocalService(msg[0])
|
||||||
|
@ -311,15 +314,21 @@ class TinySocketClientThread(threading.Thread):
|
||||||
ts.mysend(s, exception=True)
|
ts.mysend(s, exception=True)
|
||||||
ts.mysend(result)
|
ts.mysend(result)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
|
print "exception", e
|
||||||
|
self.sock.close()
|
||||||
return False
|
return False
|
||||||
def stop(self):
|
def stop(self):
|
||||||
self.running = False
|
self.running = False
|
||||||
self.sock.shutdown(socket.SHUT_RDWR)
|
self.sock.shutdown(socket.SHUT_RDWR)
|
||||||
|
|
||||||
class TinySocketServerThread(threading.Thread):
|
class TinySocketServerThread(threading.Thread):
|
||||||
def __init__(self, socket):
|
def __init__(self, interface, port, secure=False):
|
||||||
threading.Thread.__init__(self)
|
threading.Thread.__init__(self)
|
||||||
self.socket = socket
|
self.__port=port
|
||||||
|
self.__interface=interface
|
||||||
|
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
self.socket.bind((self.__interface, self.__port))
|
||||||
|
self.socket.listen(5)
|
||||||
self.threads = []
|
self.threads = []
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
@ -333,32 +342,17 @@ class TinySocketServerThread(threading.Thread):
|
||||||
ct = TinySocketClientThread(clientsocket)
|
ct = TinySocketClientThread(clientsocket)
|
||||||
ct.start()
|
ct.start()
|
||||||
self.threads.append(ct)
|
self.threads.append(ct)
|
||||||
|
# print "threads size:", len(self.threads)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
self.running=False
|
self.running=False
|
||||||
for t in self.threads:
|
for t in self.threads:
|
||||||
t.stop()
|
if t:
|
||||||
|
t.stop()
|
||||||
self.socket.shutdown(socket.SHUT_RDWR)
|
self.socket.shutdown(socket.SHUT_RDWR)
|
||||||
|
|
||||||
class TinySocketDaemon(object):
|
|
||||||
def __init__(self, interface, port, secure=False):
|
|
||||||
self.__port=port
|
|
||||||
self.__interface=interface
|
|
||||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
self.socket.bind((self.__interface, self.__port))
|
|
||||||
self.socket.listen(10)
|
|
||||||
def attach(self,path,gw):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def stop(self):
|
|
||||||
self.st.stop()
|
|
||||||
|
|
||||||
def start(self):
|
|
||||||
self.st = TinySocketServerThread(self.socket)
|
|
||||||
self.st.start()
|
|
||||||
|
|
||||||
# vim:noexpandtab:
|
# vim:noexpandtab:
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ class mysocket:
|
||||||
socket.AF_INET, socket.SOCK_STREAM)
|
socket.AF_INET, socket.SOCK_STREAM)
|
||||||
else:
|
else:
|
||||||
self.sock = sock
|
self.sock = sock
|
||||||
self.sock.settimeout(50)
|
self.sock.settimeout(60)
|
||||||
def connect(self, host, port):
|
def connect(self, host, port):
|
||||||
self.sock.connect((host, port))
|
self.sock.connect((host, port))
|
||||||
def mysend(self, msg, exception=False):
|
def mysend(self, msg, exception=False):
|
||||||
|
|
|
@ -227,7 +227,7 @@ else:
|
||||||
logger.notifyChannel("web-services", netsvc.LOG_INFO, "You are using the SSL Layer")
|
logger.notifyChannel("web-services", netsvc.LOG_INFO, "You are using the SSL Layer")
|
||||||
|
|
||||||
|
|
||||||
tinySocket = netsvc.TinySocketDaemon(interface, 8085, False)
|
tinySocket = netsvc.TinySocketServerThread(interface, 8085, False)
|
||||||
logger.notifyChannel("web-services", netsvc.LOG_INFO, "starting TinySocket service, port "+str(8085))
|
logger.notifyChannel("web-services", netsvc.LOG_INFO, "starting TinySocket service, port "+str(8085))
|
||||||
|
|
||||||
def handler(signum, frame):
|
def handler(signum, frame):
|
||||||
|
|
Loading…
Reference in New Issue