Skip to content
Snippets Groups Projects
Commit 7fa218e0 authored by Maxime Graulich's avatar Maxime Graulich
Browse files

ONELAB2: clear the buffer

parent e2c1f687
No related branches found
No related tags found
No related merge requests found
...@@ -212,7 +212,20 @@ class client : ...@@ -212,7 +212,20 @@ class client :
#self.socket.send(struct.pack('ii%is' %len(m), t, len(m), m)) #self.socket.send(struct.pack('ii%is' %len(m), t, len(m), m))
def _clearbuffer(self): def _clearbuffer(self):
self.socket.recv(1024) self.socket.settimeout(0.)
try:
msg = self.socket.recv(1024)
except socket.error:
self.socket.settimeout(None)
return
self.socket.settimeout(None)
if len(msg) >= 4:
v, t, l = struct.unpack('!BBH', msg[:4])
if t == self._ONELAB_MESSAGE :
print('onelab info : %s' % msg)
elif t == self._ONELAB_STOP :
print('server ask to stop')
os._exit(1)
def _receive(self) : def _receive(self) :
def buffered_receive(l) : def buffered_receive(l) :
...@@ -230,6 +243,9 @@ class client : ...@@ -230,6 +243,9 @@ class client :
msg = buffered_receive(l) msg = buffered_receive(l)
if t == self._ONELAB_MESSAGE : if t == self._ONELAB_MESSAGE :
print('onelab info : %s' % msg) print('onelab info : %s' % msg)
elif t == self._ONELAB_STOP:
print('server ask to stop')
os._exit(1)
return t, msg return t, msg
def _parseParameter(msg): def _parseParameter(msg):
...@@ -274,6 +290,7 @@ class client : ...@@ -274,6 +290,7 @@ class client :
param.frombytes(msg) param.frombytes(msg)
elif ptype == 0x0A and warn_if_not_found: elif ptype == 0x0A and warn_if_not_found:
print('Unknown parameter %s' %(param.name)) print('Unknown parameter %s' %(param.name))
self._clearbuffer()
def defineNumber(self, name, **param): def defineNumber(self, name, **param):
if 'labels' in param : if 'labels' in param :
...@@ -363,7 +380,7 @@ class client : ...@@ -363,7 +380,7 @@ class client :
else: else:
cmd = command + ' ' + arguments cmd = command + ' ' + arguments
os.system(cmd); os.system(cmd);
self._numSubClients +=1 self._numSubClients += 1
self.getString(name+'/Action', False) self.getString(name+'/Action', False)
def runSubClient(self, name, command, arguments=''): def runSubClient(self, name, command, arguments=''):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment