Ticket #127 (closed defect: fixed)

Opened 5 months ago

Last modified 4 months ago

scapy doesn't work on freebsd

Reported by: antoine Assigned to: pbi
Priority: major Milestone: mainstream
Component: Scapy Version: 2.0.0.x
Keywords: Cc:

Description

Scapy doesn't work on freebsd

# scapy
Traceback (most recent call last):
  File "/usr/local/bin/scapy", line 25, in <module>
    interact()
  File "/usr/local/lib/python2.5/site-packages/scapy/main.py", line 183, in interact
    scapy_builtins = __import__("all",globals(),locals(),".").__dict__
  File "/usr/local/lib/python2.5/site-packages/scapy/all.py", line 22, in <module>
    from route import *
  File "/usr/local/lib/python2.5/site-packages/scapy/route.py", line 156, in <module>
    conf.route=Route()
  File "/usr/local/lib/python2.5/site-packages/scapy/route.py", line 18, in __init__
    self.resync()
  File "/usr/local/lib/python2.5/site-packages/scapy/route.py", line 27, in resync
    self.routes = read_routes()
  File "/usr/local/lib/python2.5/site-packages/scapy/arch.py", line 286, in read_routes
    netmask = itom(int(netmask))
NameError: global name 'itom' is not defined

I tried to add "from utils import itom" at the top of arch.py but it still fails:

# scapy
Traceback (most recent call last):
  File "/usr/local/bin/scapy", line 23, in <module>
    from scapy.main import interact
  File "/usr/local/lib/python2.5/site-packages/scapy/main.py", line 42, in <module>
    from config import conf
  File "/usr/local/lib/python2.5/site-packages/scapy/config.py", line 9, in <module>
    import arch,themes
  File "/usr/local/lib/python2.5/site-packages/scapy/arch.py", line 10, in <module>
    from utils import itom
  File "/usr/local/lib/python2.5/site-packages/scapy/utils.py", line 7, in <module>
    from config import conf
ImportError: cannot import name conf

Attachments

Change History

08/22/08 01:01:30 changed by ian@mahuron.org

Confirmed in 7.0-STABLE . I believe this is due to cyclic imports in scapy.

import scapy.arch
 arch -> utils -> config :: fails since get_working_if() is undefined (this is in arch)

import scapy.config
 config -> arch -> utils :: fails 'from config import conf'

import scapy.utils
 utils -> config -> arch :: fails 'from utils import itom'

This type of cyclic import deadlock is easily reproduced. In this example, you cannot import either module.

# a.py
from b import B
class A:
  pass

# b.py
from a import A
class B:
  pass

One can remedy this by avoiding 'from x import y' syntax. In this example, you can import either module.

# a.py
import b
class A:
  def __init__(self):
    self.b=b.B

# b.py
import a
class B:
  def __init__(self):
    self.a=a.A

Additionally, reconsidering scapy's overall package structure may help to eliminate some cyclic references.

- Ian

(follow-up: ↓ 3 ) 08/22/08 13:51:38 changed by antoine

The problem is fixed in this version of scapy: http://secdev.org/projects/scapy/files/scapy-2.0.0.5-tempfix.zip

(in reply to: ↑ 2 ) 08/22/08 17:14:52 changed by ian@mahuron.org

Replying to antoine:

The problem is fixed in this version of scapy: http://secdev.org/projects/scapy/files/scapy-2.0.0.5-tempfix.zip

This version introduced a different bug (again on FreeBSD 7.0-STABLE).

Traceback (most recent call last):
  File "/usr/local/bin/scapy", line 25, in <module>
    interact()
  File "/usr/local/lib/python2.5/site-packages/scapy/main.py", line 183, in interact
    scapy_builtins = __import__("all",globals(),locals(),".").__dict__
  File "/usr/local/lib/python2.5/site-packages/scapy/all.py", line 13, in <module>
    from arch import *
  File "/usr/local/lib/python2.5/site-packages/scapy/arch/__init__.py", line 81, in <module>
    scapy.config.conf.iface = get_working_if()
  File "/usr/local/lib/python2.5/site-packages/scapy/arch/unix.py", line 56, in get_working_if
    return LOOPBACK_NAME
NameError: global name 'LOOPBACK_NAME' is not defined

08/24/08 14:56:10 changed by version5@gmail.com

+1 for this same problem on OS X

08/28/08 20:07:32 changed by pbi

  • status changed from new to closed.
  • resolution set to fixed.

Fixed with release 2.0.0.6


Add/Change #127 (scapy doesn't work on freebsd)




Change Properties
Action