GNUnet  0.11.x
Functions | Variables
gnunet-dns-monitor.c File Reference

Tool to monitor DNS queries. More...

#include "platform.h"
#include "gnunet_util_lib.h"
#include "gnunet_dns_service.h"
#include "gnunet_dnsparser_lib.h"
Include dependency graph for gnunet-dns-monitor.c:

Go to the source code of this file.

Functions

static const char * get_type (uint16_t type)
 Convert numeric DNS record type to a string. More...
 
static const char * get_class (uint16_t class)
 Convert numeric DNS record class to a string. More...
 
static void display_query (const struct GNUNET_DNSPARSER_Query *query)
 Output the given DNS query to stdout. More...
 
static void display_record (const struct GNUNET_DNSPARSER_Record *record)
 Output the given DNS record to stdout. More...
 
static void display_request (void *cls, struct GNUNET_DNS_RequestHandle *rh, size_t request_length, const char *request)
 Signature of a function that is called whenever the DNS service encounters a DNS request and needs to do something with it. More...
 
static void do_disconnect (void *cls)
 Shutdown. More...
 
static void run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
 Main function that will be run by the scheduler. More...
 
int main (int argc, char *const *argv)
 

Variables

static struct GNUNET_DNS_Handlehandle
 Handle to transport service. More...
 
static int inbound_only
 Option -i. More...
 
static int outbound_only
 Option -o. More...
 
static int ret
 Global return value (0 success). More...
 
static unsigned int verbosity
 Selected level of verbosity. More...
 

Detailed Description

Tool to monitor DNS queries.

Author
Christian Grothoff

Definition in file gnunet-dns-monitor.c.

Function Documentation

◆ get_type()

static const char* get_type ( uint16_t  type)
static

Convert numeric DNS record type to a string.

Parameters
typetype to convert
Returns
type as string, only valid until the next call to this function

Definition at line 65 of file gnunet-dns-monitor.c.

66 {
67  static char buf[6];
68 
69  switch (type)
70  {
71  case GNUNET_DNSPARSER_TYPE_A: return "A";
72 
73  case GNUNET_DNSPARSER_TYPE_NS: return "NS";
74 
75  case GNUNET_DNSPARSER_TYPE_CNAME: return "CNAME";
76 
77  case GNUNET_DNSPARSER_TYPE_SOA: return "SOA";
78 
79  case GNUNET_DNSPARSER_TYPE_PTR: return "PTR";
80 
81  case GNUNET_DNSPARSER_TYPE_MX: return "MX";
82 
83  case GNUNET_DNSPARSER_TYPE_TXT: return "TXT";
84 
85  case GNUNET_DNSPARSER_TYPE_AAAA: return "AAAA";
86 
87  case GNUNET_DNSPARSER_TYPE_SRV: return "SRV";
88  }
89  GNUNET_snprintf (buf, sizeof(buf), "%u", (unsigned int) type);
90  return buf;
91 }
static char buf[2048]
#define GNUNET_DNSPARSER_TYPE_SRV
#define GNUNET_DNSPARSER_TYPE_SOA
#define GNUNET_DNSPARSER_TYPE_A
#define GNUNET_DNSPARSER_TYPE_PTR
#define GNUNET_DNSPARSER_TYPE_NS
#define GNUNET_DNSPARSER_TYPE_CNAME
#define GNUNET_DNSPARSER_TYPE_AAAA
#define GNUNET_DNSPARSER_TYPE_MX
#define GNUNET_DNSPARSER_TYPE_TXT
int GNUNET_snprintf(char *buf, size_t size, const char *format,...) __attribute__((format(printf
Like snprintf, just aborts if the buffer is of insufficient size.
enum GNUNET_TESTBED_UnderlayLinkModelType type
the type of this model

References buf, GNUNET_DNSPARSER_TYPE_A, GNUNET_DNSPARSER_TYPE_AAAA, GNUNET_DNSPARSER_TYPE_CNAME, GNUNET_DNSPARSER_TYPE_MX, GNUNET_DNSPARSER_TYPE_NS, GNUNET_DNSPARSER_TYPE_PTR, GNUNET_DNSPARSER_TYPE_SOA, GNUNET_DNSPARSER_TYPE_SRV, GNUNET_DNSPARSER_TYPE_TXT, GNUNET_snprintf(), and type.

Referenced by display_query(), and display_record().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_class()

static const char* get_class ( uint16_t  class)
static

Convert numeric DNS record class to a string.

Parameters
classclass to convert
Returns
class as string, only valid until the next call to this function

Definition at line 101 of file gnunet-dns-monitor.c.

102 {
103  static char buf[6];
104 
105  switch (class)
106  {
107  case GNUNET_TUN_DNS_CLASS_INTERNET: return "IN";
108 
109  case GNUNET_TUN_DNS_CLASS_CHAOS: return "CHAOS";
110 
111  case GNUNET_TUN_DNS_CLASS_HESIOD: return "HESIOD";
112  }
113  GNUNET_snprintf (buf, sizeof(buf), "%u", (unsigned int) class);
114  return buf;
115 }
#define GNUNET_TUN_DNS_CLASS_HESIOD
#define GNUNET_TUN_DNS_CLASS_CHAOS
#define GNUNET_TUN_DNS_CLASS_INTERNET
A few common DNS classes (ok, only one is common, but I list a couple more to make it clear what we'r...

References buf, GNUNET_snprintf(), GNUNET_TUN_DNS_CLASS_CHAOS, GNUNET_TUN_DNS_CLASS_HESIOD, and GNUNET_TUN_DNS_CLASS_INTERNET.

Referenced by display_query(), and display_record().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ display_query()

static void display_query ( const struct GNUNET_DNSPARSER_Query query)
static

Output the given DNS query to stdout.

Parameters
queryquery to display.

Definition at line 124 of file gnunet-dns-monitor.c.

125 {
126  fprintf (stdout,
127  "\t\t%s %s: %s\n",
128  get_class (query->dns_traffic_class),
129  get_type (query->type),
130  query->name);
131 }
static const char * get_type(uint16_t type)
Convert numeric DNS record type to a string.
static const char * get_class(uint16_t class)
Convert numeric DNS record class to a string.
uint16_t dns_traffic_class
See GNUNET_TUN_DNS_CLASS_*.
uint16_t type
See GNUNET_DNSPARSER_TYPE_*.
char * name
Name of the record that the query is for (0-terminated).

References GNUNET_DNSPARSER_Query::dns_traffic_class, get_class(), get_type(), GNUNET_DNSPARSER_Query::name, and GNUNET_DNSPARSER_Query::type.

Referenced by display_request().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ display_record()

static void display_record ( const struct GNUNET_DNSPARSER_Record record)
static

Output the given DNS record to stdout.

Parameters
recordrecord to display.

Definition at line 140 of file gnunet-dns-monitor.c.

141 {
142  const char *format;
143  char buf[INET6_ADDRSTRLEN];
144  char *tmp;
145 
146  tmp = NULL;
147  switch (record->type)
148  {
150  if (record->data.raw.data_len != sizeof(struct in_addr))
151  format = "<invalid>";
152  else
153  format = inet_ntop (AF_INET, record->data.raw.data, buf, sizeof(buf));
154  break;
155 
157  if (record->data.raw.data_len != sizeof(struct in6_addr))
158  format = "<invalid>";
159  else
160  format = inet_ntop (AF_INET6, record->data.raw.data, buf, sizeof(buf));
161  break;
162 
166  format = record->data.hostname;
167  break;
168 
170  if (NULL == record->data.soa)
171  format = "<invalid>";
172  else
173  {
174  GNUNET_asprintf (&tmp,
175  "origin: %s, mail: %s, serial = %u, refresh = %u s, retry = %u s, expire = %u s, minimum = %u s",
176  record->data.soa->mname,
177  record->data.soa->rname,
178  (unsigned int) record->data.soa->serial,
179  (unsigned int) record->data.soa->refresh,
180  (unsigned int) record->data.soa->retry,
181  (unsigned int) record->data.soa->expire,
182  (unsigned int) record->data.soa->minimum_ttl);
183  format = tmp;
184  }
185  break;
186 
188  if (record->data.mx == NULL)
189  format = "<invalid>";
190  else
191  {
192  GNUNET_asprintf (&tmp,
193  "%u: %s",
194  record->data.mx->preference,
195  record->data.mx->mxhost);
196  format = tmp;
197  }
198  break;
199 
201  if (NULL == record->data.srv)
202  format = "<invalid>";
203  else
204  {
205  GNUNET_asprintf (&tmp,
206  "priority %u, weight = %u, port = %u, target = %s",
207  (unsigned int) record->data.srv->priority,
208  (unsigned int) record->data.srv->weight,
209  (unsigned int) record->data.srv->port,
210  record->data.srv->target);
211  format = tmp;
212  }
213  break;
214 
216  GNUNET_asprintf (&tmp,
217  "%.*s",
218  (unsigned int) record->data.raw.data_len,
219  (char*) record->data.raw.data);
220  format = tmp;
221  break;
222 
223  default:
224  format = "<payload>";
225  break;
226  }
227  fprintf (stdout,
228  "\t\t%s %s: %s = %s (%u s)\n",
229  get_class (record->dns_traffic_class),
230  get_type (record->type),
231  record->name,
232  format,
233  (unsigned int) (GNUNET_TIME_absolute_get_remaining (
234  record->expiration_time).rel_value_us / 1000LL
235  / 1000LL));
236  GNUNET_free (tmp);
237 }
static void record(void *cls, size_t data_size, const void *data)
Process recorded audio data.
int int GNUNET_asprintf(char **buf, const char *format,...) __attribute__((format(printf
Like asprintf, just portable.
#define GNUNET_free(ptr)
Wrapper around free.
struct GNUNET_TIME_Relative GNUNET_TIME_absolute_get_remaining(struct GNUNET_TIME_Absolute future)
Given a timestamp in the future, how much time remains until then?
Definition: time.c:232
uint64_t rel_value_us
The actual value.

References buf, get_class(), get_type(), GNUNET_asprintf(), GNUNET_DNSPARSER_TYPE_A, GNUNET_DNSPARSER_TYPE_AAAA, GNUNET_DNSPARSER_TYPE_CNAME, GNUNET_DNSPARSER_TYPE_MX, GNUNET_DNSPARSER_TYPE_NS, GNUNET_DNSPARSER_TYPE_PTR, GNUNET_DNSPARSER_TYPE_SOA, GNUNET_DNSPARSER_TYPE_SRV, GNUNET_DNSPARSER_TYPE_TXT, GNUNET_free, GNUNET_TIME_absolute_get_remaining(), record(), and GNUNET_TIME_Relative::rel_value_us.

Referenced by display_request().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ display_request()

static void display_request ( void *  cls,
struct GNUNET_DNS_RequestHandle rh,
size_t  request_length,
const char *  request 
)
static

Signature of a function that is called whenever the DNS service encounters a DNS request and needs to do something with it.

The function has then the chance to generate or modify the response by calling one of the three "GNUNET_DNS_request_*" continuations.

When a request is intercepted, this function is called first to give the client a chance to do the complete address resolution; "rdata" will be NULL for this first call for a DNS request, unless some other client has already filled in a response.

If multiple clients exist, all of them are called before the global DNS. The global DNS is only called if all of the clients' functions call GNUNET_DNS_request_forward. Functions that call GNUNET_DNS_request_forward will be called again before a final response is returned to the application. If any of the clients' functions call GNUNET_DNS_request_drop, the response is dropped.

Parameters
clsclosure
rhrequest handle to user for reply
request_lengthnumber of bytes in request
requestudp payload of the DNS request

Definition at line 264 of file gnunet-dns-monitor.c.

268 {
269  static const char *return_codes[] = {
270  "No error", "Format error", "Server failure", "Name error",
271  "Not implemented", "Refused", "YXDomain", "YXRRset",
272  "NXRRset", "NOT AUTH", "NOT ZONE", "<invalid>",
273  "<invalid>", "<invalid>", "<invalid>", "<invalid>"
274  };
275  static const char *op_codes[] = {
276  "Query", "Inverse query", "Status", "<invalid>",
277  "<invalid>", "<invalid>", "<invalid>", "<invalid>",
278  "<invalid>", "<invalid>", "<invalid>", "<invalid>",
279  "<invalid>", "<invalid>", "<invalid>", "<invalid>"
280  };
281  struct GNUNET_DNSPARSER_Packet *p;
282  unsigned int i;
283 
284  p = GNUNET_DNSPARSER_parse (request, request_length);
285  if (NULL == p)
286  {
287  fprintf (stderr, "Received malformed DNS packet!\n");
288  // FIXME: drop instead?
290  return;
291  }
292  fprintf (stdout,
293  "%s with ID: %5u Flags: %s%s%s%s%s%s, Return Code: %s, Opcode: %s\n",
294  p->flags.query_or_response ? "Response" : "Query",
295  p->id,
296  p->flags.recursion_desired ? "RD " : "",
297  p->flags.message_truncated ? "MT " : "",
298  p->flags.authoritative_answer ? "AA " : "",
299  p->flags.checking_disabled ? "CD " : "",
300  p->flags.authenticated_data ? "AD " : "",
301  p->flags.recursion_available ? "RA " : "",
302  return_codes[p->flags.return_code & 15],
303  op_codes[p->flags.opcode & 15]);
304  if (p->num_queries > 0)
305  fprintf (stdout,
306  "\tQueries:\n");
307  for (i = 0; i < p->num_queries; i++)
308  display_query (&p->queries[i]);
309 
310  if (p->num_answers > 0)
311  fprintf (stdout,
312  "\tAnswers:\n");
313  for (i = 0; i < p->num_answers; i++)
314  display_record (&p->answers[i]);
315  fprintf (stdout, "\n");
318 }
static void display_record(const struct GNUNET_DNSPARSER_Record *record)
Output the given DNS record to stdout.
static void display_query(const struct GNUNET_DNSPARSER_Query *query)
Output the given DNS query to stdout.
static struct GNUNET_OS_Process * p
Helper process we started.
Definition: gnunet-qr.c:59
static struct GNUNET_VPN_RedirectionRequest * request
Opaque redirection request handle.
Definition: gnunet-vpn.c:41
void GNUNET_DNSPARSER_free_packet(struct GNUNET_DNSPARSER_Packet *p)
Free memory taken by a packet.
Definition: dnsparser.c:854
struct GNUNET_DNSPARSER_Packet * GNUNET_DNSPARSER_parse(const char *udp_payload, size_t udp_payload_length)
Parse a UDP payload of a DNS packet in to a nice struct for further processing and manipulation.
Definition: dnsparser.c:656
void GNUNET_DNS_request_forward(struct GNUNET_DNS_RequestHandle *rh)
If a GNUNET_DNS_RequestHandler calls this function, the request is given to other clients or the glob...
Definition: dns_api.c:243
Easy-to-process, parsed version of a DNS packet.

References display_query(), display_record(), GNUNET_DNS_request_forward(), GNUNET_DNSPARSER_free_packet(), GNUNET_DNSPARSER_parse(), p, and request.

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ do_disconnect()

static void do_disconnect ( void *  cls)
static

Shutdown.

Definition at line 325 of file gnunet-dns-monitor.c.

326 {
327  if (NULL != handle)
328  {
330  handle = NULL;
331  }
332 }
static struct GNUNET_DNS_Handle * handle
Handle to transport service.
void GNUNET_DNS_disconnect(struct GNUNET_DNS_Handle *dh)
Disconnect from the DNS service.
Definition: dns_api.c:369

References GNUNET_DNS_disconnect(), and handle.

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run()

static void run ( void *  cls,
char *const *  args,
const char *  cfgfile,
const struct GNUNET_CONFIGURATION_Handle cfg 
)
static

Main function that will be run by the scheduler.

Parameters
clsclosure
argsremaining command-line arguments
cfgfilename of the configuration file used (for saving, can be NULL!)
cfgconfiguration

Definition at line 344 of file gnunet-dns-monitor.c.

346 {
347  enum GNUNET_DNS_Flags flags;
348 
351  flags = 0;
352  if (inbound_only)
354  if (outbound_only)
356  handle =
358  flags,
360  NULL);
362 }
static const struct GNUNET_CONFIGURATION_Handle * cfg
Configuration we are using.
Definition: gnunet-abd.c:36
static void do_disconnect(void *cls)
Shutdown.
static int inbound_only
Option -i.
static int outbound_only
Option -o.
static void display_request(void *cls, struct GNUNET_DNS_RequestHandle *rh, size_t request_length, const char *request)
Signature of a function that is called whenever the DNS service encounters a DNS request and needs to...
struct GNUNET_DNS_Handle * GNUNET_DNS_connect(const struct GNUNET_CONFIGURATION_Handle *cfg, enum GNUNET_DNS_Flags flags, GNUNET_DNS_RequestHandler rh, void *rh_cls)
Connect to the service-dns.
Definition: dns_api.c:346
GNUNET_DNS_Flags
Flags that specify when to call the client's handler.
@ GNUNET_DNS_FLAG_RESPONSE_MONITOR
Set this flag to see all requests just before they are returned to the network.
@ GNUNET_DNS_FLAG_REQUEST_MONITOR
Set this flag to see all requests first prior to resolution (for monitoring).
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_shutdown(GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run on shutdown, that is when a CTRL-C signal is received,...
Definition: scheduler.c:1331

References cfg, display_request(), do_disconnect(), GNUNET_DNSPARSER_Packet::flags, GNUNET_DNS_connect(), GNUNET_DNS_FLAG_REQUEST_MONITOR, GNUNET_DNS_FLAG_RESPONSE_MONITOR, GNUNET_SCHEDULER_add_shutdown(), handle, inbound_only, and outbound_only.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char *const *  argv 
)

Definition at line 366 of file gnunet-dns-monitor.c.

367 {
370  "inbound-only",
371  gettext_noop ("only monitor DNS queries"),
372  &inbound_only),
373 
375  "outbound-only",
376  gettext_noop ("only monitor DNS queries"),
377  &outbound_only),
378 
381  };
382 
383  if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
384  return 2;
385  ret = (GNUNET_OK ==
386  GNUNET_PROGRAM_run (argc, argv, "gnunet-dns-monitor",
388  ("Monitor DNS queries."), options,
389  &run, NULL)) ? ret : 1;
390  GNUNET_free_nz ((void *) argv);
391  return ret;
392 }
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
Definition: 002.c:13
struct GNUNET_GETOPT_CommandLineOption options[]
Definition: 002.c:5
#define gettext_noop(String)
Definition: gettext.h:69
static unsigned int verbosity
Selected level of verbosity.
static int ret
Global return value (0 success).
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
Main function that will be run by the scheduler.
@ GNUNET_OK
Definition: gnunet_common.h:95
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_verbose(unsigned int *level)
Define the '-V' verbosity option.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_flag(char shortName, const char *name, const char *description, int *val)
Allow user to specify a flag (which internally means setting an integer to 1/GNUNET_YES/GNUNET_OK.
#define GNUNET_free_nz(ptr)
Wrapper around free.
enum GNUNET_GenericReturnValue GNUNET_PROGRAM_run(int argc, char *const *argv, const char *binaryName, const char *binaryHelp, const struct GNUNET_GETOPT_CommandLineOption *options, GNUNET_PROGRAM_Main task, void *task_cls)
Run a standard GNUnet command startup sequence (initialize loggers and configuration,...
Definition: program.c:364
enum GNUNET_GenericReturnValue GNUNET_STRINGS_get_utf8_args(int argc, char *const *argv, int *u8argc, char *const **u8argv)
Returns utf-8 encoded arguments.
Definition: strings.c:1209
Definition of a command line option.

References gettext_noop, GNUNET_free_nz, GNUNET_GETOPT_OPTION_END, GNUNET_GETOPT_option_flag(), GNUNET_GETOPT_option_verbose(), GNUNET_OK, GNUNET_PROGRAM_run(), GNUNET_STRINGS_get_utf8_args(), inbound_only, options, outbound_only, ret, run(), and verbosity.

Here is the call graph for this function:

Variable Documentation

◆ handle

struct GNUNET_DNS_Handle* handle
static

Handle to transport service.

Definition at line 35 of file gnunet-dns-monitor.c.

Referenced by add_attribute_cont(), add_credential_cont(), add_get_request_to_pending(), add_list_handle(), add_service_handle(), aes_128_cbc_decrypt(), aes_128_cbc_encrypt(), attr_collect(), attr_in_claims_request(), attr_in_idtoken_request(), attr_in_userinfo_request(), authorize_endpoint(), build_authz_response(), build_redirect(), callback_ego_create(), callback_mq_error(), callback_reconnect(), callback_scan_for_rooms(), callback_set_handle_name(), callback_setup_handle_name(), callback_update_handle(), change_handle_ego(), change_handle_member_id(), change_handle_name(), check_authorization(), cleanup_handle(), cleanup_issue_handle(), client_redirect(), close_handle_room(), close_service_room(), code_redirect(), collect_finished_cb(), consume_cont(), consume_ticket(), consume_ticket_cont(), consume_timeout(), cookie_identity_interpretation(), cr_cont(), create_finished(), create_handle(), create_handle_member_id(), create_room(), create_store_ego(), cred_collect(), del_finished(), delete_attribute_cont(), delete_credential_cont(), delete_finished_cb(), destroy_handle(), do_disconnect(), do_error(), do_finished(), do_finished_create(), do_redirect_error(), do_timeout(), do_userinfo_error(), dump_pc(), ecdsa_symmetric_decrypt(), ecdsa_symmetric_encrypt(), ego_create(), ego_delete_name(), ego_delete_pubkey(), ego_edit(), ego_edit_name(), ego_edit_pubkey(), ego_edit_subsystem(), ego_get_all(), ego_get_for_subsystem(), ego_get_name(), ego_get_pubkey(), ego_get_response(), ego_get_subsystem(), enter_room_at(), entry_handle_room(), entry_handle_room_at(), entry_service_room(), finished_cont(), force_reconnect(), get_cont(), get_gns_cont(), get_handle_contact(), get_handle_contact_store(), get_handle_data_subdir(), get_handle_ego(), get_handle_key(), get_handle_member_id(), get_handle_member_session(), get_handle_name(), get_url_parameter_copy(), GNUNET_ABD_collect(), GNUNET_ABD_connect(), GNUNET_ABD_disconnect(), GNUNET_ABD_request_cancel(), GNUNET_ABD_verify(), GNUNET_CADET_disconnect(), GNUNET_CORE_disconnect(), GNUNET_CRYPTO_symmetric_decrypt(), GNUNET_CRYPTO_symmetric_encrypt(), GNUNET_DHT_connect(), GNUNET_DHT_disconnect(), GNUNET_DHT_get_start(), GNUNET_DHT_get_stop(), GNUNET_DHT_monitor_start(), GNUNET_DHT_monitor_stop(), GNUNET_DHT_put(), GNUNET_DHT_put_cancel(), GNUNET_GNS_connect(), GNUNET_GNS_disconnect(), GNUNET_GNS_lookup(), GNUNET_GNS_lookup_cancel(), GNUNET_GNS_lookup_limited(), GNUNET_GNS_lookup_with_tld(), GNUNET_MESSENGER_connect(), GNUNET_MESSENGER_disconnect(), GNUNET_MESSENGER_enter_room(), GNUNET_MESSENGER_find_rooms(), GNUNET_MESSENGER_get_key(), GNUNET_MESSENGER_get_name(), GNUNET_MESSENGER_open_room(), GNUNET_MESSENGER_set_name(), GNUNET_MESSENGER_update(), GNUNET_STATISTICS_get(), GNUNET_STATISTICS_set(), GNUNET_STATISTICS_update(), GNUNET_STATISTICS_watch(), GNUNET_STATISTICS_watch_cancel(), GNUNET_TESTBED_cancel_registration(), GNUNET_TESTBED_is_host_habitable_cancel(), GNUNET_TRANSPORT_core_disconnect(), GNUNET_TRANSPORT_core_get_mq(), GNUNET_TRANSPORT_manipulation_disconnect(), GNUNET_TRANSPORT_manipulation_set(), GST_connection_pool_get_handle(), handle_client_result(), handle_get_key(), handle_get_name(), handle_gns_response(), handle_intermediate(), handle_member_id(), handle_monitor_get(), handle_monitor_get_resp(), handle_monitor_put(), handle_recv_message(), handle_result(), handle_room_close(), handle_room_entry(), handle_room_open(), handle_ticket_result(), header_iterator(), init_aes(), iterate_close_room(), iterate_reset_room(), iterate_save_member_session_history_hentries(), iterate_save_rooms(), join_room(), join_room_locally(), list_attribute_cont(), list_credential_cont(), list_tickets_cont(), load_handle_configuration(), load_list_messages(), load_list_tunnels(), load_member_session_history(), login_cont(), login_redirect(), lookup_redirect_uri_result(), main_task(), merge_room_last_messages(), mq_error_handler(), namestore_add(), namestore_add_or_update(), namestore_delete(), namestore_get(), namestore_iteration_error(), namestore_list_finished(), namestore_list_iteration(), namestore_update(), neighbour_delete(), notify_handle_message(), ns_get_lookup_cb(), ns_lookup_cb(), ns_lookup_error_cb(), oidc_attr_collect(), oidc_attr_collect_finished_cb(), oidc_config_cors(), oidc_config_endpoint(), oidc_cred_collect(), oidc_cred_collect_finished_cb(), oidc_iteration_error(), oidc_ticket_issue_cb(), on_identity(), open_handle_room(), open_room(), open_service_room(), options_cont(), pack_room_message(), parse_credentials_basic_auth(), parse_credentials_post_body(), peerinfo_get(), peerinfo_list_finished(), peerinfo_list_iteration(), plugin_callback(), post_data_iter(), reconnect(), reconnect_task(), remove_list_handle(), remove_service_handle(), return_response(), revoke_ticket_cont(), run(), save_handle_configuration(), save_list_messages(), save_list_tunnels(), save_member_session_history(), send_close_room(), send_enter_room(), send_handle_message(), send_message_id(), send_open_room(), send_room_info(), send_room_message(), send_tunnel_message(), set_cont(), set_handle_ego(), set_handle_key(), set_handle_name(), setup_cipher_aes(), setup_cipher_twofish(), setup_handle_name(), store_ticket_issue_cont(), ticket_collect(), tld_iter(), token_endpoint(), transmit_get(), transmit_set(), transmit_watch(), update_handle(), url_iterator(), and userinfo_endpoint().

◆ inbound_only

int inbound_only
static

Option -i.

Definition at line 40 of file gnunet-dns-monitor.c.

Referenced by main(), and run().

◆ outbound_only

int outbound_only
static

Option -o.

Definition at line 45 of file gnunet-dns-monitor.c.

Referenced by main(), and run().

◆ ret

int ret
static

Global return value (0 success).

Definition at line 50 of file gnunet-dns-monitor.c.

Referenced by main().

◆ verbosity

unsigned int verbosity
static

Selected level of verbosity.

Definition at line 55 of file gnunet-dns-monitor.c.

Referenced by main().