This function allows receiving socket data synchronously. Signed-off-by: Guido Trotter <ultrot...@google.com> --- lib/daemon.py | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/lib/daemon.py b/lib/daemon.py index 6eca3a3..75bccf9 100644 --- a/lib/daemon.py +++ b/lib/daemon.py @@ -30,6 +30,7 @@ import logging import sched import time import socket +import select import sys from ganeti import utils @@ -156,6 +157,21 @@ class AsyncUDPSocket(asyncore.dispatcher): constants.MAX_UDP_DATA_SIZE)) self._out_queue.append((ip, port, payload)) + def process_next_packet(self, timeout=0): + """Process the next datagram, waiting for it if necessary. + + @type timeout: float + @param timeout: how long to wait for data + @rtype: boolean + @return: True if some data has been handled, False otherwise + + """ + if utils.WaitForFDCondition(self, select.POLLIN, timeout): + self.do_read() + return True + else: + return False + class Mainloop(object): """Generic mainloop for daemons -- 1.7.0