Skip to content
Snippets Groups Projects
Commit a6d44434 authored by Phil's avatar Phil
Browse files

Fix arch/linux.py supersockets

parent 9ba3d3d8
No related branches found
No related tags found
No related merge requests found
...@@ -226,7 +226,7 @@ class L3PacketSocket(SuperSocket): ...@@ -226,7 +226,7 @@ class L3PacketSocket(SuperSocket):
else: else:
filter = "not (%s)" % conf.except_filter filter = "not (%s)" % conf.except_filter
if filter is not None: if filter is not None:
arch.attach_filter(self.ins, filter) attach_filter(self.ins, filter)
self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30) self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30)
self.outs = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) self.outs = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type))
self.outs.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 2**30) self.outs.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 2**30)
...@@ -235,21 +235,21 @@ class L3PacketSocket(SuperSocket): ...@@ -235,21 +235,21 @@ class L3PacketSocket(SuperSocket):
self.promisc = promisc self.promisc = promisc
if self.promisc: if self.promisc:
if iface is None: if iface is None:
self.iff = arch.get_if_list() self.iff = get_if_list()
else: else:
if iface.__class__ is list: if iface.__class__ is list:
self.iff = iface self.iff = iface
else: else:
self.iff = [iface] self.iff = [iface]
for i in self.iff: for i in self.iff:
arch.set_promisc(self.ins, i) set_promisc(self.ins, i)
def close(self): def close(self):
if self.closed: if self.closed:
return return
self.closed=1 self.closed=1
if self.promisc: if self.promisc:
for i in self.iff: for i in self.iff:
arch.set_promisc(self.ins, i, 0) set_promisc(self.ins, i, 0)
SuperSocket.close(self) SuperSocket.close(self)
def recv(self, x): def recv(self, x):
pkt, sa_ll = self.ins.recvfrom(x) pkt, sa_ll = self.ins.recvfrom(x)
...@@ -278,7 +278,7 @@ class L3PacketSocket(SuperSocket): ...@@ -278,7 +278,7 @@ class L3PacketSocket(SuperSocket):
pkt = pkt.payload pkt = pkt.payload
if pkt is not None: if pkt is not None:
pkt.time = arch.get_last_packet_timestamp(self.ins) pkt.time = get_last_packet_timestamp(self.ins)
return pkt return pkt
def send(self, x): def send(self, x):
...@@ -323,7 +323,7 @@ class L2Socket(SuperSocket): ...@@ -323,7 +323,7 @@ class L2Socket(SuperSocket):
else: else:
filter = "not (%s)" % conf.except_filter filter = "not (%s)" % conf.except_filter
if filter is not None: if filter is not None:
arch.attach_filter(self.ins, filter) attach_filter(self.ins, filter)
self.ins.bind((iface, type)) self.ins.bind((iface, type))
self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30) self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30)
self.outs = self.ins self.outs = self.ins
...@@ -370,12 +370,12 @@ class L2ListenSocket(SuperSocket): ...@@ -370,12 +370,12 @@ class L2ListenSocket(SuperSocket):
else: else:
filter = "not (%s)" % conf.except_filter filter = "not (%s)" % conf.except_filter
if filter is not None: if filter is not None:
arch.attach_filter(self.ins, filter) attach_filter(self.ins, filter)
if promisc is None: if promisc is None:
promisc = conf.sniff_promisc promisc = conf.sniff_promisc
self.promisc = promisc self.promisc = promisc
if iface is None: if iface is None:
self.iff = arch.get_if_list() self.iff = get_if_list()
else: else:
if iface.__class__ is list: if iface.__class__ is list:
self.iff = iface self.iff = iface
...@@ -383,12 +383,12 @@ class L2ListenSocket(SuperSocket): ...@@ -383,12 +383,12 @@ class L2ListenSocket(SuperSocket):
self.iff = [iface] self.iff = [iface]
if self.promisc: if self.promisc:
for i in self.iff: for i in self.iff:
arch.set_promisc(self.ins, i) set_promisc(self.ins, i)
self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30) self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30)
def close(self): def close(self):
if self.promisc: if self.promisc:
for i in self.iff: for i in self.iff:
arch.set_promisc(self.ins, i, 0) set_promisc(self.ins, i, 0)
SuperSocket.close(self) SuperSocket.close(self)
def recv(self, x): def recv(self, x):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment