Giter Club home page Giter Club logo

Comments (6)

kbandla avatar kbandla commented on July 1, 2024

From dugsong on January 06, 2011 07:45:41

I can't reproduce this?

from dpkt.

kbandla avatar kbandla commented on July 1, 2024

From [email protected] on March 01, 2011 13:13:25

I just ran into this on OS X.

[joe@deepwater-2:~]$ python -c 'import dpkt'
Traceback (most recent call last):
File "", line 1, in
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dpkt/init.py", line 24, in
import ethernet
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dpkt/ethernet.py", line 128, in
load_types()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dpkt/ethernet.py", line 122, in __load_types
mod = __import
(modname, g)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dpkt/ip6.py", line 95, in
import ip
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dpkt/ip.py", line 255, in
__load_protos()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/dpkt/ip.py", line 245, in __load_protos
for k, v in g.iteritems():
RuntimeError: dictionary changed size during iteration

However, it's not consistent. Not sure what triggers it.

from dpkt.

kbandla avatar kbandla commented on July 1, 2024

From [email protected] on September 12, 2012 13:53:26

Alternate fix:

--- dpkt/ip.py ( revision 84 )
+++ dpkt/ip.py (working copy)
@@ -2,6 +2,7 @@

"""Internet Protocol."""

+import copy
import dpkt

class IP(dpkt.Packet):
@@ -241,7 +242,7 @@

XXX - auto-load IP dispatch table from IP_PROTO_* definitions

def __load_protos():

  • g = globals()
  • g = copy.copy(globals())
    for k, v in g.iteritems():
    if k.startswith('IP_PROTO_'):
    name = k[9:].lower()

from dpkt.

kbandla avatar kbandla commented on July 1, 2024

From [email protected] on May 13, 2013 01:59:26

So I had the same problem and I dug in and I notice that the problem is that the import in that loop is not relative. Meaning that you might import a non-relevant package by accident (in my case mtp).

The solution is:
@@ -246,7 +246,7 @@
if k.startswith('IP_PROTO_'):
name = k[9:].lower()
try:

  •            mod = **import**(name, g)
    
  •            mod = **import**(name, g, level=1)
         except ImportError:
             continue
         IP.set_proto(v, getattr(mod, name.upper()))
    

This should be commited to head

from dpkt.

kbandla avatar kbandla commented on July 1, 2024

A quick glance makes #61 seem to be a related issue

from dpkt.

kbandla avatar kbandla commented on July 1, 2024

Fixed in d7684fe. Tracked in #203

from dpkt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.