Changeset 900:fdaa71905c8b
- Timestamp:
- 08/31/08 00:42:45
(4 months ago)
- Author:
- Phil <phil@secdev.org>
- Message:
Fix arch/linux.py supersockets
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r892 |
r900 |
|
| 227 | 227 | filter = "not (%s)" % conf.except_filter |
|---|
| 228 | 228 | if filter is not None: |
|---|
| 229 | | arch.attach_filter(self.ins, filter) |
|---|
| | 229 | attach_filter(self.ins, filter) |
|---|
| 230 | 230 | self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30) |
|---|
| 231 | 231 | self.outs = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) |
|---|
| … | … | |
| 236 | 236 | if self.promisc: |
|---|
| 237 | 237 | if iface is None: |
|---|
| 238 | | self.iff = arch.get_if_list() |
|---|
| | 238 | self.iff = get_if_list() |
|---|
| 239 | 239 | else: |
|---|
| 240 | 240 | if iface.__class__ is list: |
|---|
| … | … | |
| 243 | 243 | self.iff = [iface] |
|---|
| 244 | 244 | for i in self.iff: |
|---|
| 245 | | arch.set_promisc(self.ins, i) |
|---|
| | 245 | set_promisc(self.ins, i) |
|---|
| 246 | 246 | def close(self): |
|---|
| 247 | 247 | if self.closed: |
|---|
| … | … | |
| 250 | 250 | if self.promisc: |
|---|
| 251 | 251 | for i in self.iff: |
|---|
| 252 | | arch.set_promisc(self.ins, i, 0) |
|---|
| | 252 | set_promisc(self.ins, i, 0) |
|---|
| 253 | 253 | SuperSocket.close(self) |
|---|
| 254 | 254 | def recv(self, x): |
|---|
| … | … | |
| 279 | 279 | |
|---|
| 280 | 280 | if pkt is not None: |
|---|
| 281 | | pkt.time = arch.get_last_packet_timestamp(self.ins) |
|---|
| | 281 | pkt.time = get_last_packet_timestamp(self.ins) |
|---|
| 282 | 282 | return pkt |
|---|
| 283 | 283 | |
|---|
| … | … | |
| 324 | 324 | filter = "not (%s)" % conf.except_filter |
|---|
| 325 | 325 | if filter is not None: |
|---|
| 326 | | arch.attach_filter(self.ins, filter) |
|---|
| | 326 | attach_filter(self.ins, filter) |
|---|
| 327 | 327 | self.ins.bind((iface, type)) |
|---|
| 328 | 328 | self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30) |
|---|
| … | … | |
| 371 | 371 | filter = "not (%s)" % conf.except_filter |
|---|
| 372 | 372 | if filter is not None: |
|---|
| 373 | | arch.attach_filter(self.ins, filter) |
|---|
| | 373 | attach_filter(self.ins, filter) |
|---|
| 374 | 374 | if promisc is None: |
|---|
| 375 | 375 | promisc = conf.sniff_promisc |
|---|
| 376 | 376 | self.promisc = promisc |
|---|
| 377 | 377 | if iface is None: |
|---|
| 378 | | self.iff = arch.get_if_list() |
|---|
| | 378 | self.iff = get_if_list() |
|---|
| 379 | 379 | else: |
|---|
| 380 | 380 | if iface.__class__ is list: |
|---|
| … | … | |
| 384 | 384 | if self.promisc: |
|---|
| 385 | 385 | for i in self.iff: |
|---|
| 386 | | arch.set_promisc(self.ins, i) |
|---|
| | 386 | set_promisc(self.ins, i) |
|---|
| 387 | 387 | self.ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30) |
|---|
| 388 | 388 | def close(self): |
|---|
| 389 | 389 | if self.promisc: |
|---|
| 390 | 390 | for i in self.iff: |
|---|
| 391 | | arch.set_promisc(self.ins, i, 0) |
|---|
| | 391 | set_promisc(self.ins, i, 0) |
|---|
| 392 | 392 | SuperSocket.close(self) |
|---|
| 393 | 393 | |
|---|