Module: DIY::Utils

Defined in:
lib/diy/utils.rb

Class Method Summary collapse

Class Method Details

.dst_mac(pkt) ⇒ Object



24
25
26
27
# File 'lib/diy/utils.rb', line 24

def dst_mac(pkt)
  pkt = pkt.content if pkt.kind_of?(DIY::Packet)
  pkt[0..5]
end

.pp(pkt) ⇒ Object

漂亮输出包的前十个内容



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/diy/utils.rb', line 5

def pp(pkt)
  pkt = pkt.content if pkt.kind_of?(DIY::Packet)
  return nil if pkt.nil?
  #~ ( pkt[0..10] + "..." ).dump + "(#{pkt.size} sizes)"
  size = pkt.size
  begin
    new_pkt = pkt.dup
    Mu::Pcap::Ethernet.from_bytes(new_pkt).to_s + "(#{size} sizes)"
  rescue Mu::Pcap::ParseError =>e
    DIY::Logger.warn "parse error from pkt: " + ( pkt[0..10] + "..." ).dump + "(#{pkt.size} sizes)"
    return  ( pkt[0..10] + "..." ).dump + "(#{pkt.size} sizes)"
  end
end

.src_mac(pkt) ⇒ Object



19
20
21
22
# File 'lib/diy/utils.rb', line 19

def src_mac(pkt)
  pkt = pkt.content if pkt.kind_of?(DIY::Packet)
  pkt[6..11]
end

.wait_until(timeout = 20, &block) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/diy/utils.rb', line 29

def wait_until( timeout = 20, &block )
  timeout(timeout) do
    loop do
      break if block.call
      sleep 0.01
    end
  end
end