Sha256: baf37a30015ba86d78520225405ce36d07561c25062f6e13c073904002a6bcb7
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
module DIY # 这个策略是一个最基本的: # 具体返回值含义见 @BasicStrategy class Strategy OK = true OK_NO_POP = SKIP = 1 FAIL = false NONE = nil end class BasicStrategy < Strategy # @argument: # hope_pkt: 期望的报文 # recv_pkt: 接收的报文 # queue: 期望接收队列, 如果期望乱序时,你可以使用这个参数 # # @return: # OK : 匹配, 可以进行下一个报文的处理 # OK_NO_POP: 匹配了接收队列中的报文, 但是不需要框架自动pop掉期望报文( 注意, 你需要自行处于报文 ) # SKIP: 同上, 可用于跳过以后所有策略队列使用. # FAIL: 肯定失败时使用 # NONE: 不匹配, 让框架进行下一个报文匹配 def call(hope_pkt, recv_pkt, queue) raise "write code here" end end # 一个简单的例子 class SimpleStrategy < BasicStrategy def call(hope_pkt, recv_pkt, queue) if hope_pkt == recv_pkt return OK else return NONE end end end # 跳过相同源与目的MAC class SkipSameMacStrategy < BasicStrategy def call(hope_pkt, recv_pkt, queue) if hope_pkt[0..5] == hope_pkt[6..11] return OK else return NONE end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
DIY-pcap-0.3.0 | lib/diy/strategy.rb |
DIY-pcap-0.2.8 | lib/diy/strategy.rb |