Welcome to the "trac"-ing site of openpgp4u!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 13

Show
Ignore:
Timestamp:
10/30/04 23:36:41 (4 years ago)
Author:
nahi
Message:

* try to continue scanning packets even if an error occurred.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/pgp/packet/packet.rb

    r2 r13  
    9595    loadport = wrap_port(port) 
    9696    while !loadport.eof? 
    97       newheader, tag, lengthdefined = load_header(loadport) 
    98       newtag = newheader ? "New" : "Old" 
    99       dumpport.puts "#{newtag}: #{taglabel(tag)}(tag #{tag})(#{lengthdefined} bytes)\n" 
    100       initpos = loadport.readlength 
    101       dumpport.indent(4) do 
    102         unless TAG_SCANNER.key?(tag) 
    103           dumpport.puts format("Not supported", 4) 
    104           loadport.read(lengthdefined)    # skip 
    105         else 
    106           TAG_SCANNER[tag].call(dumpport, loadport, lengthdefined) 
    107           readlength = loadport.readlength - initpos 
    108           if readlength != lengthdefined 
    109             raise "Parsing failed: #{readlength}/#{lengthdefined}" 
     97      initpos = nil 
     98      begin 
     99        newheader, tag, lengthdefined = load_header(loadport) 
     100        newtag = newheader ? "New" : "Old" 
     101        dumpport.puts "#{newtag}: #{taglabel(tag)}(tag #{tag})(#{lengthdefined} bytes)\n" 
     102        initpos = loadport.readlength 
     103        dumpport.indent(4) do 
     104          unless TAG_SCANNER.key?(tag) 
     105            dumpport.puts format("Not supported", 4) 
     106            loadport.read(lengthdefined)    # skip 
     107          else 
     108            TAG_SCANNER[tag].call(dumpport, loadport, lengthdefined) 
     109            readlength = loadport.readlength - initpos 
     110            if readlength != lengthdefined 
     111              raise "Parsing failed: #{readlength}/#{lengthdefined}" 
     112            end 
    110113          end 
    111114        end 
     115      rescue 
     116        STDERR.puts $!.message 
     117        STDERR.puts $!.backtrace 
     118        io.puts "!!! #{$!.message} - skip this packet !!!" 
     119        loadport.read(lengthdefined - (loadport.readlength - initpos)) 
    112120      end 
    113121    end