The IP, TCP and UDP provider provide IP addresses as strings. However, if the required data is not available, the IP and TCP provider return 0. This results in the following error when using the dtrace script
and a client connecting to port 1234, for which no listener exists:0 127.0.0.1:30003 -> 127.0.0.1:1234 40 (SYN) dtrace: error on enabled probe ID 3 (ID 61124: tcp:kernel:none:receive): invalid address (0x0) in action #2 SYN) dtrace: error on enabled probe ID 2 (ID 61125: tcp:kernel:none:send): invalid address (0x0) in action #2 RST|ACK) 4 127.0.0.1:30003 <- 127.0.0.1:1234 20 (RST|ACK)
This patch suggest to use "<unknown>" instead of 0. This unbreaks dtrace:
1 127.0.0.1:42137 -> 127.0.0.1:1234 40 (SYN) 4 <unknown>:0 <- <unknown>:0 40 (SYN) 4 <unknown>:0 -> <unknown>:0 20 (RST|ACK) 4 127.0.0.1:42137 <- 127.0.0.1:1234 20 (RST|ACK)
For consistency, the UDP provider, which returned "" and was correct, was also changed for consistency. Since the UDP_PROBE was never triggered without providing an inp, this should not be user visible right now.