diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index 04dabcb8a34d5897d3f739f28685789feede6656..1d1d2afbebb95b2674ce8429acd49099e999c23d 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -7,6 +7,7 @@ Functions to send and receive packets. """ +import errno import cPickle,os,sys,time,subprocess import itertools from select import select @@ -127,7 +128,12 @@ def sndrcv(pks, pkt, timeout = None, inter = 0, verbose=None, chainCC=0, retry=0 if len(inp) == 0 or pks in inp: r = pks.nonblock_recv() else: - inp, out, err = select(inmask,[],[], remaintime) + inp = [] + try: + inp, out, err = select(inmask,[],[], remaintime) + except IOError, exc: + if exc.errno != errno.EINTR: + raise if len(inp) == 0: break if pks in inp: