Changeset 897:3092174176d7

Show
Ignore:
Timestamp:
08/31/08 00:33:01 (4 months ago)
Author:
Phil <phil@secdev.org>
Message:

Moved session manipulation functions to main.py

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • scapy/main.py

    r893 r897  
    6363 
    6464     
     65 
     66############################## 
     67## Session saving/restoring ## 
     68############################## 
     69 
     70 
     71def save_session(fname=None, session=None, pickleProto=-1): 
     72    if fname is None: 
     73        fname = conf.session 
     74        if not fname: 
     75            conf.session = fname = os.tempnam("","scapy") 
     76            log_interactive.info("Use [%s] as session file" % fname) 
     77    if session is None: 
     78        session = __builtin__.__dict__["scapy_session"] 
     79 
     80    to_be_saved = session.copy() 
     81         
     82    if to_be_saved.has_key("__builtins__"): 
     83        del(to_be_saved["__builtins__"]) 
     84 
     85    for k in to_be_saved.keys(): 
     86        if type(to_be_saved[k]) in [types.TypeType, types.ClassType, types.ModuleType]: 
     87             log_interactive.error("[%s] (%s) can't be saved." % (k, type(to_be_saved[k]))) 
     88             del(to_be_saved[k]) 
     89 
     90    try: 
     91        os.rename(fname, fname+".bak") 
     92    except OSError: 
     93        pass 
     94    f=gzip.open(fname,"wb") 
     95    cPickle.dump(to_be_saved, f, pickleProto) 
     96    f.close() 
     97 
     98def load_session(fname=None): 
     99    if fname is None: 
     100        fname = conf.session 
     101    try: 
     102        s = cPickle.load(gzip.open(fname,"rb")) 
     103    except IOError: 
     104        s = cPickle.load(open(fname,"rb")) 
     105    scapy_session = __builtin__.__dict__["scapy_session"] 
     106    scapy_session.clear() 
     107    scapy_session.update(s) 
     108 
     109def update_session(fname=None): 
     110    if fname is None: 
     111        fname = conf.session 
     112    try: 
     113        s = cPickle.load(gzip.open(fname,"rb")) 
     114    except IOError: 
     115        s = cPickle.load(open(fname,"rb")) 
     116    scapy_session = __builtin__.__dict__["scapy_session"] 
     117    scapy_session.update(s) 
     118 
    65119 
    66120################ 
  • scapy/utils.py

    r896 r897  
    373373 
    374374 
    375  
    376 ############################## 
    377 ## Session saving/restoring ## 
    378 ############################## 
    379  
    380  
    381 def save_session(fname, session=None, pickleProto=-1): 
    382     if session is None: 
    383         session = scapy_session 
    384  
    385     to_be_saved = session.copy() 
    386          
    387     if to_be_saved.has_key("__builtins__"): 
    388         del(to_be_saved["__builtins__"]) 
    389  
    390     for k in to_be_saved.keys(): 
    391         if type(to_be_saved[k]) in [types.TypeType, types.ClassType, types.ModuleType]: 
    392              log_interactive.error("[%s] (%s) can't be saved." % (k, type(to_be_saved[k]))) 
    393              del(to_be_saved[k]) 
    394  
    395     try: 
    396         os.rename(fname, fname+".bak") 
    397     except OSError: 
    398         pass 
    399     f=gzip.open(fname,"wb") 
    400     cPickle.dump(to_be_saved, f, pickleProto) 
    401     f.close() 
    402  
    403 def load_session(fname): 
    404     try: 
    405         s = cPickle.load(gzip.open(fname,"rb")) 
    406     except IOError: 
    407         s = cPickle.load(open(fname,"rb")) 
    408     scapy_session.clear() 
    409     scapy_session.update(s) 
    410  
    411 def update_session(fname): 
    412     try: 
    413         s = cPickle.load(gzip.open(fname,"rb")) 
    414     except IOError: 
    415         s = cPickle.load(open(fname,"rb")) 
    416     scapy_session.update(s) 
     375################### 
     376## Object saving ## 
     377################### 
    417378 
    418379