@@ -7,53 +7,53 @@ class << self
7
7
def generate ( bytes :)
8
8
new ( bytes :) . generate
9
9
end
10
+ end
10
11
11
- attr_reader :protocol
12
+ attr_reader :protocol
12
13
13
- def initialize ( bytes :)
14
- raise ArgumentError , "bytes must be bigger than #{ header_size } bytes" unless bytes . size >= header_size
14
+ def initialize ( bytes :)
15
+ raise ArgumentError , "bytes must be bigger than #{ size } bytes" unless bytes . size >= size
15
16
16
- @bytes = bytes
17
- end
17
+ @bytes = bytes
18
+ end
18
19
19
- def size = 40
20
-
21
- def generate
22
- version_traffic_flow = @bytes [ 0 ..3 ] . unpack ( 'N' )
23
- @version = ( version_traffic_flow >> 28 ) & 0xF
24
- @traffic_class = ( version_traffic_flow >> 20 ) & 0xFF
25
- @flow_label = version_traffic_flow & 0xFFFFF
26
- @payload_length = @bytes [ 4 ..5 ]
27
- @next_header = @bytes [ 6 ]
28
- @hop_limit = @bytes [ 7 ]
29
- @saddr = @bytes [ 8 ..23 ]
30
- @daddr = @bytes [ 24 ..39 ]
31
- @protocol = InternetProtocol . new ( protocol : @next_header )
32
- end
20
+ def size = 40
21
+
22
+ def generate
23
+ version_traffic_flow = @bytes [ 0 ..3 ] . unpack ( 'N' )
24
+ @version = ( version_traffic_flow >> 28 ) & 0xF
25
+ @traffic_class = ( version_traffic_flow >> 20 ) & 0xFF
26
+ @flow_label = version_traffic_flow & 0xFFFFF
27
+ @payload_length = @bytes [ 4 ..5 ]
28
+ @next_header = @bytes [ 6 ]
29
+ @hop_limit = @bytes [ 7 ]
30
+ @saddr = @bytes [ 8 ..23 ]
31
+ @daddr = @bytes [ 24 ..39 ]
32
+ @protocol = InternetProtocol . new ( protocol : @next_header )
33
+ end
33
34
34
- def dump
35
- puts self
36
- end
35
+ def dump
36
+ puts self
37
+ end
37
38
38
- def to_s
39
- " └─ IPv6 Ver: #{ version } Traffic Class: #{ traffic_class } Flow Label: #{ flow_label } Payload Length: #{ payload_length } Next Header: #{ @protocol } Hop Limit: #{ hop_limit } Src: #{ saddr } Dst: #{ daddr } "
40
- end
39
+ def to_s
40
+ " └─ IPv6 Ver: #{ version } Traffic Class: #{ traffic_class } Flow Label: #{ flow_label } Payload Length: #{ payload_length } Next Header: #{ @protocol } Hop Limit: #{ hop_limit } Src: #{ saddr } Dst: #{ daddr } "
41
+ end
41
42
42
- def supported_protocol?
43
- @protocol . udp?
44
- end
43
+ def supported_protocol?
44
+ @protocol . udp?
45
+ end
45
46
46
- def payload_length
47
- @payload_length . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join . to_i ( 16 )
48
- end
47
+ def payload_length
48
+ @payload_length . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join . to_i ( 16 )
49
+ end
49
50
50
- def saddr
51
- @saddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join ( ':' )
52
- end
51
+ def saddr
52
+ @saddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join ( ':' )
53
+ end
53
54
54
- def daddr
55
- @daddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join ( ':' )
56
- end
55
+ def daddr
56
+ @daddr . map { |b | b . to_s ( 16 ) . rjust ( 2 , '0' ) } . join ( ':' )
57
57
end
58
58
end
59
59
end
0 commit comments