#!/usr/bin/env ruby

# 1925, Sun 6 Apr 08 (PDT)
# Packet.rb: Test Packet methods (including .copy_packet)
# Copyright (C) 2008, Nevil Brownlee, U Auckland | CAIDA | Wand

require 'RubyLibtrace'

def flag(l)
   l ? '1' : '0'
end

f = Trace.new(ARGV[0])
f.start

last_pkt = nil

n = 0;  nip = 0
f.each_packet do |pkt|
   n += 1

   ip = pkt.ip
   next if !ip
   nip += 1

   print "Packet #{n}: version=#{ip.version}, hdr_len=#{ip.hdr_len}, " +
      "pkt_len=#{ip.pkt_len}, ttl=#{ip.ttl}, proto=#{ip.proto}\n"
   print "source=#{ip.src_prefix},  dest=#{ip.dst_prefix}\n"

   print "ts_sec=#{pkt.ts_sec}, seconds=#{pkt.seconds}, time=#{pkt.time}\n"
   print "wire_len=#{pkt.wire_len}, capture_len=#{pkt.capture_len}, "
   print "framing_len=#{pkt.framing_len},  linktype=#{pkt.linktype}\n"

if nip == 1
   print "\n"
else
  print "<-- source=#{last_pkt.ip.src_prefix},  dest=#{last_pkt.ip.dst_prefix},  seconds=#{last_pkt.seconds}\n\n"
end
#   last_pkt = pkt  ### Doesn't work!
   last_pkt = pkt.copy_packet

   break if nip == 4
end

