1 #define hd(p, l) { int i; \
2 for (i = 1; i <= l; i++) { \
3 printf ("%02x ", p[i-1]); \
4 if (i % 8 == 0) printf (" "); \
5 if (i % 16 == 0) printf ("\n"); } \
8 /* From freeradius-server/src/lib/radius.c */
9 #include <freeradius/libradius.h>
10 static void print_hex(RADIUS_PACKET *packet)
14 if (!packet->data) return;
16 printf(" Code:\t\t%u\n", packet->data[0]);
17 printf(" Id:\t\t%u\n", packet->data[1]);
18 printf(" Length:\t%u\n", ((packet->data[2] << 8) |
21 for (i = 4; i < 20; i++) {
22 printf("%02x", packet->data[i]);
26 if (packet->data_len > 20) {
31 total = packet->data_len - 20;
32 ptr = packet->data + 20;
38 if (total < 2) { /* too short */
39 printf("%02x\n", *ptr);
43 if (ptr[1] > total) { /* too long */
44 for (i = 0; i < total; i++) {
45 printf("%02x ", ptr[i]);
50 printf("%02x %02x ", ptr[0], ptr[1]);
55 for (i = 0; i < attrlen; i++) {
56 if ((i > 0) && ((i & 0x0f) == 0x00))
58 printf("%02x ", ptr[i]);
59 if ((i & 0x0f) == 0x0f) printf("\n");
62 if ((attrlen & 0x0f) != 0x00) printf("\n");
71 /* Local Variables: */
72 /* c-file-style: "stroustrup" */