diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index 8a96ef04fb56eb987fe5959ee8de98fb53c489a1..9ca7d48057e43f1a8c60714f8f6f2e8bd40e8456 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -10,7 +10,8 @@ Functions to send and receive packets. import errno import cPickle,os,sys,time,subprocess import itertools -from select import select +from select import select, error as select_error + from scapy.arch.consts import DARWIN, FREEBSD, OPENBSD from scapy.data import * from scapy.config import conf @@ -140,8 +141,9 @@ def sndrcv(pks, pkt, timeout = None, inter = 0, verbose=None, chainCC=0, retry=0 inp = [] try: inp, out, err = select(inmask,[],[], remaintime) - except IOError, exc: - if exc.errno != errno.EINTR: + except (IOError, select_error) as exc: + # select.error has no .errno attribute + if exc.args[0] != errno.EINTR: raise if len(inp) == 0: break