def run(self): while not self._stop: [rlist, wlist, xlist] = select.select(self._rlist, [], []) for fd in rlist: data = fd.recv(16384) if fd == self.control: # FIXME move it to specific marshal buf = io.BytesIO() buf.write(data) buf.seek(0) cmd = cmdmsg(buf) if cmd['command'] == IPRCMD_STOP: self._stop = True break elif cmd['command'] == IPRCMD_RELOAD: pass elif fd in self._netlinks: data = fd.recv(16384) for sock in self._wlist: sock.send(data) self.parse(data)
def reload(self): msg = cmdmsg(io.BytesIO()) msg['command'] = IPRCMD_RELOAD msg.encode() self.control.sendto(msg.buf.getvalue(), self.control.getsockname())
def stop(self): msg = cmdmsg(io.BytesIO()) msg['command'] = IPRCMD_STOP msg.encode() self.control.sendto(msg.buf.getvalue(), self.control.getsockname())