[net] Dump nq udp packets

Probably need some finer control, but it will do for now.
This commit is contained in:
Bill Currie 2021-04-04 14:03:58 +09:00
parent 7864bb0ba6
commit 59e5592fed

View file

@ -77,6 +77,7 @@
# include <libc.h> # include <libc.h>
#endif #endif
#include <ctype.h>
#include <errno.h> #include <errno.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
@ -471,6 +472,29 @@ UDP_CheckNewConnections (void)
#endif #endif
} }
static void
hex_dump_buf (byte *buf, int len)
{
int pos = 0, llen, i;
while (pos < len) {
llen = (len - pos < 16 ? len - pos : 16);
printf ("%08x: ", pos);
for (i = 0; i < llen; i++)
printf ("%02x ", buf[pos + i]);
for (i = 0; i < 16 - llen; i++)
printf (" ");
printf (" | ");
for (i = 0; i < llen; i++)
printf ("%c", isprint (buf[pos + i]) ? buf[pos + i] : '.');
for (i = 0; i < 16 - llen; i++)
printf (" ");
printf ("\n");
pos += llen;
}
}
int int
UDP_Read (int socket, byte *buf, int len, netadr_t *from) UDP_Read (int socket, byte *buf, int len, netadr_t *from)
{ {
@ -528,6 +552,9 @@ UDP_Read (int socket, byte *buf, int len, netadr_t *from)
UDP_AddrToString (from)); UDP_AddrToString (from));
last_iface = default_iface; last_iface = default_iface;
#endif #endif
if (developer->int_val & SYS_net) {
hex_dump_buf (buf, ret);
}
return ret; return ret;
} }
@ -576,6 +603,9 @@ UDP_Write (int socket, byte *buf, int len, netadr_t *to)
return 0; return 0;
Sys_MaskPrintf (SYS_net, "sent %d bytes to %s\n", ret, Sys_MaskPrintf (SYS_net, "sent %d bytes to %s\n", ret,
UDP_AddrToString (to)); UDP_AddrToString (to));
if (developer->int_val & SYS_net) {
hex_dump_buf (buf, len);
}
return ret; return ret;
} }