Skip to content

Commit 281453c

Browse files
author
shadowy-pycoder
committed
Added colorized output
1 parent 63e42d2 commit 281453c

File tree

10 files changed

+134
-98
lines changed

10 files changed

+134
-98
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ create:
1212
go test -c -race && sudo setcap cap_net_raw+ep mshark.test
1313

1414
bench: create
15-
./mshark.test -test.bench=. -test.benchmem -test.run=^$$ -test.benchtime 10000x \
15+
./mshark.test -test.bench=. -test.benchmem -test.run=^$$ -test.benchtime 1000x \
1616
-test.cpuprofile='cpu.prof' -test.memprofile='mem.prof'

layers/ethernet.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ func (ef *EthernetFrame) String() string {
2323
- DstMAC: %s
2424
- SrcMAC: %s
2525
- EtherType: %s (%#04x)
26-
- Payload: (%d bytes) %x
26+
- Payload: %d bytes
2727
%s`,
2828
ef.DstMAC,
2929
ef.SrcMAC,
3030
ethType,
3131
ef.EtherType,
3232
len(ef.payload),
33-
ef.payload,
3433
hex.Dump(ef.payload))
3534
}
3635

layers/icmp.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type ICMPSegment struct {
1515
// Internet checksum (RFC 1071) for error checking, calculated from the ICMP header
1616
// and data with value 0 substituted for this field.
1717
Checksum uint16
18-
Payload []byte // Contents vary based on the ICMP type and code.
18+
Data []byte // Contents vary based on the ICMP type and code.
1919
}
2020

2121
func (i *ICMPSegment) String() string {
@@ -31,7 +31,7 @@ func (i *ICMPSegment) String() string {
3131
i.Code,
3232
code,
3333
i.Checksum,
34-
i.payload(),
34+
i.data(),
3535
)
3636
}
3737

@@ -43,17 +43,17 @@ func (i *ICMPSegment) Parse(data []byte) error {
4343
i.Type = data[0]
4444
i.Code = data[1]
4545
i.Checksum = binary.BigEndian.Uint16(data[2:4])
46-
i.Payload = data[headerSizeICMP:]
46+
i.Data = data[headerSizeICMP:]
4747
var pLen int
4848
switch i.Type {
4949
case 0, 3, 5, 8, 11:
5050
pLen = 4
5151
case 13, 14:
5252
pLen = 16
5353
default:
54-
pLen = len(i.Payload)
54+
pLen = len(i.Data)
5555
}
56-
if len(i.Payload) < pLen {
56+
if len(i.Data) < pLen {
5757
return fmt.Errorf("minimum payload length for ICMP with type %d is %d bytes", i.Type, pLen)
5858
}
5959
return nil
@@ -183,39 +183,39 @@ func (i *ICMPSegment) typecode() (string, string) {
183183
return mtype, code
184184
}
185185

186-
func (i *ICMPSegment) payload() string {
187-
var payload string
186+
func (i *ICMPSegment) data() string {
187+
var data string
188188
switch i.Type {
189189
case 0, 8:
190-
payload = fmt.Sprintf(`- Identifier: %d
190+
data = fmt.Sprintf(`- Identifier: %d
191191
- Sequence Number: %d
192192
- Data: (%d bytes) %x`,
193-
binary.BigEndian.Uint16(i.Payload[0:2]),
194-
binary.BigEndian.Uint16(i.Payload[2:4]),
195-
len(i.Payload[4:]), i.Payload[4:])
193+
binary.BigEndian.Uint16(i.Data[0:2]),
194+
binary.BigEndian.Uint16(i.Data[2:4]),
195+
len(i.Data[4:]), i.Data[4:])
196196
case 3, 11:
197-
payload = fmt.Sprintf(`- Reserved: %#08x
197+
data = fmt.Sprintf(`- Reserved: %#08x
198198
- Data: (%d bytes) %x`,
199-
binary.BigEndian.Uint32(i.Payload[0:4]), len(i.Payload[4:]), i.Payload[4:])
199+
binary.BigEndian.Uint32(i.Data[0:4]), len(i.Data[4:]), i.Data[4:])
200200
case 5:
201-
gatewayAddress, _ := netip.AddrFromSlice(i.Payload[0:4])
202-
payload = fmt.Sprintf(`- Gateway Address: %s
203-
- Data: (%d bytes) %x`, gatewayAddress, len(i.Payload[4:]), i.Payload[4:])
201+
gatewayAddress, _ := netip.AddrFromSlice(i.Data[0:4])
202+
data = fmt.Sprintf(`- Gateway Address: %s
203+
- Data: (%d bytes) %x`, gatewayAddress, len(i.Data[4:]), i.Data[4:])
204204
case 13, 14:
205-
payload = fmt.Sprintf(`- Identifier: %d
205+
data = fmt.Sprintf(`- Identifier: %d
206206
- Sequence Number: %d
207207
- Originate Timestamp: %d
208208
- Receive Timestamp: %d
209209
- Transmit Timestamp: %d
210210
`,
211-
binary.BigEndian.Uint16(i.Payload[0:2]),
212-
binary.BigEndian.Uint16(i.Payload[2:4]),
213-
binary.BigEndian.Uint32(i.Payload[4:8]),
214-
binary.BigEndian.Uint32(i.Payload[8:12]),
215-
binary.BigEndian.Uint32(i.Payload[12:16]),
211+
binary.BigEndian.Uint16(i.Data[0:2]),
212+
binary.BigEndian.Uint16(i.Data[2:4]),
213+
binary.BigEndian.Uint32(i.Data[4:8]),
214+
binary.BigEndian.Uint32(i.Data[8:12]),
215+
binary.BigEndian.Uint32(i.Data[12:16]),
216216
)
217217
default:
218-
payload = fmt.Sprintf(`- Data: (%d bytes) %x`, len(i.Payload), i.Payload)
218+
data = fmt.Sprintf(`- Data: (%d bytes) %x`, len(i.Data), i.Data)
219219
}
220-
return payload
220+
return data
221221
}

layers/icmpv6.go

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type ICMPv6Segment struct {
1313
Type uint8
1414
Code uint8
1515
Checksum uint16
16-
Payload []byte
16+
Data []byte
1717
}
1818

1919
func (i *ICMPv6Segment) String() string {
@@ -29,7 +29,7 @@ func (i *ICMPv6Segment) String() string {
2929
i.Code,
3030
code,
3131
i.Checksum,
32-
i.payload(),
32+
i.data(),
3333
)
3434
}
3535

@@ -41,7 +41,7 @@ func (i *ICMPv6Segment) Parse(data []byte) error {
4141
i.Type = data[0]
4242
i.Code = data[1]
4343
i.Checksum = binary.BigEndian.Uint16(data[2:headerSizeICMPv6])
44-
i.Payload = data[headerSizeICMPv6:]
44+
i.Data = data[headerSizeICMPv6:]
4545
var pLen int
4646
switch i.Type {
4747
case 1, 2, 3, 4, 128, 129, 133:
@@ -53,9 +53,9 @@ func (i *ICMPv6Segment) Parse(data []byte) error {
5353
case 137:
5454
pLen = 36
5555
default:
56-
pLen = len(i.Payload)
56+
pLen = len(i.Data)
5757
}
58-
if len(i.Payload) < pLen {
58+
if len(i.Data) < pLen {
5959
return fmt.Errorf("minimum payload length for ICMPv6 with type %d is %d bytes", i.Type, pLen)
6060
}
6161
return nil
@@ -227,43 +227,43 @@ func (i *ICMPv6Segment) typecode() (string, string) {
227227
return mtype, code
228228
}
229229

230-
func (i *ICMPv6Segment) payload() string {
231-
var payload string
230+
func (i *ICMPv6Segment) data() string {
231+
var data string
232232
switch i.Type {
233233
case 1, 3:
234-
payload = fmt.Sprintf(`- Reserved: %#08x
234+
data = fmt.Sprintf(`- Reserved: %#08x
235235
- Data: (%d bytes) %x`,
236-
binary.BigEndian.Uint32(i.Payload[0:4]), len(i.Payload[4:]), i.Payload[4:])
236+
binary.BigEndian.Uint32(i.Data[0:4]), len(i.Data[4:]), i.Data[4:])
237237
case 2:
238-
payload = fmt.Sprintf(`- MTU: %d
238+
data = fmt.Sprintf(`- MTU: %d
239239
- Data: (%d bytes) %x`,
240-
binary.BigEndian.Uint32(i.Payload[0:4]), len(i.Payload[4:]), i.Payload[4:])
240+
binary.BigEndian.Uint32(i.Data[0:4]), len(i.Data[4:]), i.Data[4:])
241241
case 4:
242-
payload = fmt.Sprintf(`- Pointer: %d
242+
data = fmt.Sprintf(`- Pointer: %d
243243
- Data: (%d bytes) %x`,
244-
binary.BigEndian.Uint32(i.Payload[0:4]), len(i.Payload[4:]), i.Payload[4:])
244+
binary.BigEndian.Uint32(i.Data[0:4]), len(i.Data[4:]), i.Data[4:])
245245
case 128, 129:
246-
payload = fmt.Sprintf(`- Identifier: %d
246+
data = fmt.Sprintf(`- Identifier: %d
247247
- Sequence Number: %d
248248
- Data: (%d bytes) %x`,
249-
binary.BigEndian.Uint16(i.Payload[0:2]),
250-
binary.BigEndian.Uint16(i.Payload[2:4]),
251-
len(i.Payload[4:]), i.Payload[4:])
249+
binary.BigEndian.Uint16(i.Data[0:2]),
250+
binary.BigEndian.Uint16(i.Data[2:4]),
251+
len(i.Data[4:]), i.Data[4:])
252252
case 133:
253-
payload = fmt.Sprintf(`- Reserved: %#08x
253+
data = fmt.Sprintf(`- Reserved: %#08x
254254
- Options: (%d bytes) %x`,
255-
binary.BigEndian.Uint32(i.Payload[0:4]), len(i.Payload[4:]), i.Payload[4:])
255+
binary.BigEndian.Uint32(i.Data[0:4]), len(i.Data[4:]), i.Data[4:])
256256
case 134:
257-
hopLimit := i.Payload[0]
258-
flags := i.Payload[1]
257+
hopLimit := i.Data[0]
258+
flags := i.Data[1]
259259
managedAddress := (flags >> 7) & 1
260260
otherConfiguration := (flags >> 6) & 1
261261
reserved := flags & (1<<6 - 1)
262-
routerLifetime := binary.BigEndian.Uint16(i.Payload[2:4])
263-
reachableTime := binary.BigEndian.Uint32(i.Payload[4:8])
264-
retransTime := binary.BigEndian.Uint32(i.Payload[8:12])
265-
options := i.Payload[12:]
266-
payload = fmt.Sprintf(`- Cur Hop Limit: %d
262+
routerLifetime := binary.BigEndian.Uint16(i.Data[2:4])
263+
reachableTime := binary.BigEndian.Uint32(i.Data[4:8])
264+
retransTime := binary.BigEndian.Uint32(i.Data[8:12])
265+
options := i.Data[12:]
266+
data = fmt.Sprintf(`- Cur Hop Limit: %d
267267
- Managed Address Flag: %d
268268
- Other Configuration Flag: %d
269269
- Reserved: %#06b
@@ -281,19 +281,19 @@ func (i *ICMPv6Segment) payload() string {
281281
len(options),
282282
options)
283283
case 135:
284-
address, _ := netip.AddrFromSlice(i.Payload[4:20])
285-
payload = fmt.Sprintf(`- Reserved: %#08x
284+
address, _ := netip.AddrFromSlice(i.Data[4:20])
285+
data = fmt.Sprintf(`- Reserved: %#08x
286286
- Target Address: %s
287287
- Options: (%d bytes) %x`,
288-
binary.BigEndian.Uint32(i.Payload[0:4]), address, len(i.Payload[20:]), i.Payload[20:])
288+
binary.BigEndian.Uint32(i.Data[0:4]), address, len(i.Data[20:]), i.Data[20:])
289289
case 136:
290-
flags := binary.BigEndian.Uint32(i.Payload[0:4])
290+
flags := binary.BigEndian.Uint32(i.Data[0:4])
291291
fromRouter := (flags >> 31) & 1
292292
solicited := (flags >> 30) & 1
293293
override := (flags >> 29) & 1
294294
reserved := flags & (1<<29 - 1)
295-
address, _ := netip.AddrFromSlice(i.Payload[4:20])
296-
payload = fmt.Sprintf(`- From Router Flag: %d
295+
address, _ := netip.AddrFromSlice(i.Data[4:20])
296+
data = fmt.Sprintf(`- From Router Flag: %d
297297
- Solicited Flag: %d
298298
- Override Flag: %d
299299
- Reserved: %#029b
@@ -304,22 +304,22 @@ func (i *ICMPv6Segment) payload() string {
304304
override,
305305
reserved,
306306
address,
307-
len(i.Payload[20:]),
308-
i.Payload[20:])
307+
len(i.Data[20:]),
308+
i.Data[20:])
309309
case 137:
310-
targetAddress, _ := netip.AddrFromSlice(i.Payload[4:20])
311-
dstAddress, _ := netip.AddrFromSlice(i.Payload[20:36])
312-
payload = fmt.Sprintf(`- Reserved: %#08x
310+
targetAddress, _ := netip.AddrFromSlice(i.Data[4:20])
311+
dstAddress, _ := netip.AddrFromSlice(i.Data[20:36])
312+
data = fmt.Sprintf(`- Reserved: %#08x
313313
- Target Address: %s
314314
- Destination Address: %s
315315
- Options: (%d bytes) %x`,
316-
binary.BigEndian.Uint32(i.Payload[0:4]),
316+
binary.BigEndian.Uint32(i.Data[0:4]),
317317
targetAddress,
318318
dstAddress,
319-
len(i.Payload[36:]),
320-
i.Payload[36:])
319+
len(i.Data[36:]),
320+
i.Data[36:])
321321
default:
322-
payload = fmt.Sprintf(`- Data: (%d bytes) %x`, len(i.Payload), i.Payload)
322+
data = fmt.Sprintf(`- Data: (%d bytes) %x`, len(i.Data), i.Data)
323323
}
324-
return payload
324+
return data
325325
}

layers/ipv4.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func (p *IPv4Packet) String() string {
4444
- SrcIP: %s
4545
- DstIP: %s
4646
- Options: %v
47-
- Payload: (%d bytes) %x
47+
- Payload: %d bytes
4848
`,
4949
p.Version,
5050
p.IHL,
@@ -63,7 +63,7 @@ func (p *IPv4Packet) String() string {
6363
p.DstIP,
6464
p.Options,
6565
len(p.payload),
66-
p.payload)
66+
)
6767
}
6868

6969
// Parse parses the given byte data into an IPv4 packet struct.

0 commit comments

Comments
 (0)