X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=lib%2Fdebug.c;h=25c7fd6e34ce2dbd2b2444038fb1dbe36513fb0b;hb=937144b230752ac640e611cabb57387f613997bc;hp=604ab23dd87c45d3cb22f135bddb36bb031b83fe;hpb=83e82dba47aced4a93f9e431b4d8bca94c2f8517;p=libradsec.git diff --git a/lib/debug.c b/lib/debug.c index 604ab23..25c7fd6 100644 --- a/lib/debug.c +++ b/lib/debug.c @@ -1,85 +1,46 @@ -/* See the file COPYING for licensing information. */ +/* Copyright 2011 NORDUnet A/S. All rights reserved. + See LICENSE for licensing information. */ #if defined HAVE_CONFIG_H #include #endif +#include #include -#include +#include +#include #include #include #include "debug.h" -/* From freeradius-server/src/lib/radius.c */ -static void print_hex(RADIUS_PACKET *packet) +void +rs_dump_packet (const struct rs_packet *pkt) { - int i; - - if (!packet->data) return; - - printf(" Code:\t\t%u\n", packet->data[0]); - printf(" Id:\t\t%u\n", packet->data[1]); - printf(" Length:\t%u\n", ((packet->data[2] << 8) | - (packet->data[3]))); - printf(" Vector:\t"); - for (i = 4; i < 20; i++) { - printf("%02x", packet->data[i]); - } - printf("\n"); - - if (packet->data_len > 20) { - int total; - const uint8_t *ptr; - printf(" Data:"); - - total = packet->data_len - 20; - ptr = packet->data + 20; - - while (total > 0) { - int attrlen; - - printf("\t\t"); - if (total < 2) { /* too short */ - printf("%02x\n", *ptr); - break; - } - - if (ptr[1] > total) { /* too long */ - for (i = 0; i < total; i++) { - printf("%02x ", ptr[i]); - } - break; - } + const RADIUS_PACKET *p = NULL; - printf("%02x %02x ", ptr[0], ptr[1]); - attrlen = ptr[1] - 2; - ptr += 2; - total -= 2; + if (!pkt || !pkt->rpkt) + return; + p = pkt->rpkt; - for (i = 0; i < attrlen; i++) { - if ((i > 0) && ((i & 0x0f) == 0x00)) - printf("\t\t\t"); - printf("%02x ", ptr[i]); - if ((i & 0x0f) == 0x0f) printf("\n"); - } - - if ((attrlen & 0x0f) != 0x00) printf("\n"); - - ptr += attrlen; - total -= attrlen; - } - } - fflush(stdout); + fprintf (stderr, "\tCode: %u, Identifier: %u, Lenght: %zu\n", + p->code, + p->id, + p->sizeof_data); + fflush (stderr); } -void -rs_dump_packet (const struct rs_packet *pkt) +#if defined DEBUG +int +_rs_debug (const char *fmt, ...) { - print_hex (pkt->rpkt); -} + int n; + va_list args; -void -rs_dump_attr (const struct rs_attr *attr) -{ - vp_printlist (stderr, attr->vp); + va_start (args, fmt); + n = vfprintf (stderr, fmt, args); + va_end (args); + fflush (stderr); + + return n; } +#endif