1 /* See the file COPYING for licensing information. */
3 #if defined HAVE_CONFIG_H
8 #include <freeradius/libradius.h>
9 #include <radsec/radsec.h>
10 #include <radsec/radsec-impl.h>
13 /* From freeradius-server/src/lib/radius.c */
14 static void print_hex(RADIUS_PACKET *packet)
18 if (!packet->data) return;
20 printf(" Code:\t\t%u\n", packet->data[0]);
21 printf(" Id:\t\t%u\n", packet->data[1]);
22 printf(" Length:\t%u\n", ((packet->data[2] << 8) |
25 for (i = 4; i < 20; i++) {
26 printf("%02x", packet->data[i]);
30 if (packet->data_len > 20) {
35 total = packet->data_len - 20;
36 ptr = packet->data + 20;
42 if (total < 2) { /* too short */
43 printf("%02x\n", *ptr);
47 if (ptr[1] > total) { /* too long */
48 for (i = 0; i < total; i++) {
49 printf("%02x ", ptr[i]);
54 printf("%02x %02x ", ptr[0], ptr[1]);
59 for (i = 0; i < attrlen; i++) {
60 if ((i > 0) && ((i & 0x0f) == 0x00))
62 printf("%02x ", ptr[i]);
63 if ((i & 0x0f) == 0x0f) printf("\n");
66 if ((attrlen & 0x0f) != 0x00) printf("\n");
76 rs_dump_packet (const struct rs_packet *pkt)
78 print_hex (pkt->rpkt);
82 rs_dump_attr (const struct rs_attr *attr)
84 vp_printlist (stderr, attr->vp);