5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/pcap_tools/stream_processors/rebuilder.rb', line 5
def process_stream stream
out = []
current = nil
stream[:data].each do |packet|
if current
if packet[:type] == current[:type]
current[:times] << {:offset => current[:size], :time => packet[:time]}
current[:data] += packet[:data]
current[:size] += packet[:size]
else
out << current
current = packet.clone
current[:times] = [{:offset => 0, :time => packet[:time]}]
end
else
current = packet.clone
current[:times] = [{:offset => 0, :time => packet[:time]}]
end
end
out << current if current
{:index => stream[:index], :data => out}
end
|