X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fdns%2Fgnunet-dns-monitor.c;h=fb5c768ac2a8ab37a43a6b4b1d3a12599a8d57aa;hb=8682c673eec5d48e5b57a58c80b538a808810ab2;hp=ece96db71485cf2bd5044e75d36ad4c48fbcf856;hpb=3d7fefedc9ba60bd8e8448efe8b628446d958536;p=oweals%2Fgnunet.git diff --git a/src/dns/gnunet-dns-monitor.c b/src/dns/gnunet-dns-monitor.c index ece96db71..fb5c768ac 100644 --- a/src/dns/gnunet-dns-monitor.c +++ b/src/dns/gnunet-dns-monitor.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2011 Christian Grothoff (and other contributing authors) + Copyright (C) 2011 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** @@ -52,7 +52,7 @@ static int ret; /** * Selected level of verbosity. */ -static int verbosity; +static unsigned int verbosity; /** @@ -94,9 +94,9 @@ get_class (uint16_t class) static char buf[6]; switch (class) { - case GNUNET_DNSPARSER_CLASS_INTERNET: return "IN"; - case GNUNET_DNSPARSER_CLASS_CHAOS: return "CHAOS"; - case GNUNET_DNSPARSER_CLASS_HESIOD: return "HESIOD"; + case GNUNET_TUN_DNS_CLASS_INTERNET: return "IN"; + case GNUNET_TUN_DNS_CLASS_CHAOS: return "CHAOS"; + case GNUNET_TUN_DNS_CLASS_HESIOD: return "HESIOD"; } GNUNET_snprintf (buf, sizeof (buf), "%u", (unsigned int) class); return buf; @@ -113,7 +113,7 @@ display_query (const struct GNUNET_DNSPARSER_Query *query) { fprintf (stdout, "\t\t%s %s: %s\n", - get_class (query->class), + get_class (query->dns_traffic_class), get_type (query->type), query->name); } @@ -130,7 +130,7 @@ display_record (const struct GNUNET_DNSPARSER_Record *record) const char *format; char buf[INET6_ADDRSTRLEN]; char *tmp; - + tmp = NULL; switch (record->type) { @@ -164,7 +164,7 @@ display_record (const struct GNUNET_DNSPARSER_Record *record) (unsigned int) record->data.soa->refresh, (unsigned int) record->data.soa->retry, (unsigned int) record->data.soa->expire, - (unsigned int) record->data.soa->minimum_ttl); + (unsigned int) record->data.soa->minimum_ttl); format = tmp; } break; @@ -186,10 +186,7 @@ display_record (const struct GNUNET_DNSPARSER_Record *record) else { GNUNET_asprintf (&tmp, - "service: %s, protocol: %s, domain_name = %s, priority %u, weight = %s, port = %u, target = %s", - record->data.srv->service, - record->data.srv->proto, - record->data.srv->domain_name, + "priority %u, weight = %s, port = %u, target = %s", (unsigned int) record->data.srv->priority, (unsigned int) record->data.srv->weight, (unsigned int) record->data.srv->port, @@ -210,7 +207,7 @@ display_record (const struct GNUNET_DNSPARSER_Record *record) } fprintf (stdout, "\t\t%s %s: %s = %s (%u s)\n", - get_class (record->class), + get_class (record->dns_traffic_class), get_type (record->type), record->name, format, @@ -242,7 +239,7 @@ display_record (const struct GNUNET_DNSPARSER_Record *record) * @param request_length number of bytes in request * @param request udp payload of the DNS request */ -static void +static void display_request (void *cls, struct GNUNET_DNS_RequestHandle *rh, size_t request_length, @@ -284,13 +281,13 @@ display_request (void *cls, p->flags.authenticated_data ? "AD " : "", p->flags.recursion_available ? "RA " : "", return_codes[p->flags.return_code & 15], - op_codes[p->flags.opcode & 15]); + op_codes[p->flags.opcode & 15]); if (p->num_queries > 0) fprintf (stdout, "\tQueries:\n"); for (i=0;inum_queries;i++) display_query (&p->queries[i]); - + if (p->num_answers > 0) fprintf (stdout, "\tAnswers:\n"); @@ -306,7 +303,7 @@ display_request (void *cls, * Shutdown. */ static void -do_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +do_disconnect (void *cls) { if (NULL != handle) { @@ -338,26 +335,30 @@ run (void *cls, char *const *args, const char *cfgfile, if (outbound_only) flags |= GNUNET_DNS_FLAG_RESPONSE_MONITOR; handle = - GNUNET_DNS_connect (cfg, + GNUNET_DNS_connect (cfg, flags, &display_request, NULL); - GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, - &do_disconnect, NULL); + GNUNET_SCHEDULER_add_shutdown (&do_disconnect, NULL); } int main (int argc, char *const *argv) { - static const struct GNUNET_GETOPT_CommandLineOption options[] = { - {'i', "inbound-only", NULL, - gettext_noop ("only monitor DNS queries"), - 0, &GNUNET_GETOPT_set_one, &inbound_only}, - {'o', "outbound-only", NULL, - gettext_noop ("only monitor DNS replies"), - 0, &GNUNET_GETOPT_set_one, &outbound_only}, - GNUNET_GETOPT_OPTION_VERBOSE (&verbosity), + struct GNUNET_GETOPT_CommandLineOption options[] = { + + GNUNET_GETOPT_option_flag ('i', + "inbound-only", + gettext_noop ("only monitor DNS queries"), + &inbound_only), + + GNUNET_GETOPT_option_flag ('o', + "outbound-only", + gettext_noop ("only monitor DNS queries"), + &outbound_only), + + GNUNET_GETOPT_option_verbose (&verbosity), GNUNET_GETOPT_OPTION_END };