GNUnet  0.19.4
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 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 64 of file gnunet-dns-monitor.c.

65 {
66  static char buf[6];
67 
68  switch (type)
69  {
70  case GNUNET_DNSPARSER_TYPE_A: return "A";
71 
72  case GNUNET_DNSPARSER_TYPE_NS: return "NS";
73 
74  case GNUNET_DNSPARSER_TYPE_CNAME: return "CNAME";
75 
76  case GNUNET_DNSPARSER_TYPE_SOA: return "SOA";
77 
78  case GNUNET_DNSPARSER_TYPE_PTR: return "PTR";
79 
80  case GNUNET_DNSPARSER_TYPE_MX: return "MX";
81 
82  case GNUNET_DNSPARSER_TYPE_TXT: return "TXT";
83 
84  case GNUNET_DNSPARSER_TYPE_AAAA: return "AAAA";
85 
86  case GNUNET_DNSPARSER_TYPE_SRV: return "SRV";
87  }
88  GNUNET_snprintf (buf, sizeof(buf), "%u", (unsigned int) type);
89  return buf;
90 }
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 100 of file gnunet-dns-monitor.c.

101 {
102  static char buf[6];
103 
104  switch (class)
105  {
106  case GNUNET_TUN_DNS_CLASS_INTERNET: return "IN";
107 
108  case GNUNET_TUN_DNS_CLASS_CHAOS: return "CHAOS";
109 
110  case GNUNET_TUN_DNS_CLASS_HESIOD: return "HESIOD";
111  }
112  GNUNET_snprintf (buf, sizeof(buf), "%u", (unsigned int) class);
113  return buf;
114 }
#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 123 of file gnunet-dns-monitor.c.

124 {
125  fprintf (stdout,
126  "\t\t%s %s: %s\n",
127  get_class (query->dns_traffic_class),
128  get_type (query->type),
129  query->name);
130 }
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 139 of file gnunet-dns-monitor.c.

140 {
141  const char *format;
142  char buf[INET6_ADDRSTRLEN];
143  char *tmp;
144 
145  tmp = NULL;
146  switch (record->type)
147  {
149  if (record->data.raw.data_len != sizeof(struct in_addr))
150  format = "<invalid>";
151  else
152  format = inet_ntop (AF_INET, record->data.raw.data, buf, sizeof(buf));
153  break;
154 
156  if (record->data.raw.data_len != sizeof(struct in6_addr))
157  format = "<invalid>";
158  else
159  format = inet_ntop (AF_INET6, record->data.raw.data, buf, sizeof(buf));
160  break;
161 
165  format = record->data.hostname;
166  break;
167 
169  if (NULL == record->data.soa)
170  format = "<invalid>";
171  else
172  {
173  GNUNET_asprintf (&tmp,
174  "origin: %s, mail: %s, serial = %u, refresh = %u s, retry = %u s, expire = %u s, minimum = %u s",
175  record->data.soa->mname,
176  record->data.soa->rname,
177  (unsigned int) record->data.soa->serial,
178  (unsigned int) record->data.soa->refresh,
179  (unsigned int) record->data.soa->retry,
180  (unsigned int) record->data.soa->expire,
181  (unsigned int) record->data.soa->minimum_ttl);
182  format = tmp;
183  }
184  break;
185 
187  if (record->data.mx == NULL)
188  format = "<invalid>";
189  else
190  {
191  GNUNET_asprintf (&tmp,
192  "%u: %s",
193  record->data.mx->preference,
194  record->data.mx->mxhost);
195  format = tmp;
196  }
197  break;
198 
200  if (NULL == record->data.srv)
201  format = "<invalid>";
202  else
203  {
204  GNUNET_asprintf (&tmp,
205  "priority %u, weight = %u, port = %u, target = %s",
206  (unsigned int) record->data.srv->priority,
207  (unsigned int) record->data.srv->weight,
208  (unsigned int) record->data.srv->port,
209  record->data.srv->target);
210  format = tmp;
211  }
212  break;
213 
215  GNUNET_asprintf (&tmp,
216  "%.*s",
217  (unsigned int) record->data.raw.data_len,
218  (char*) record->data.raw.data);
219  format = tmp;
220  break;
221 
222  default:
223  format = "<payload>";
224  break;
225  }
226  fprintf (stdout,
227  "\t\t%s %s: %s = %s (%u s)\n",
228  get_class (record->dns_traffic_class),
229  get_type (record->type),
230  record->name,
231  format,
232  (unsigned int) (GNUNET_TIME_absolute_get_remaining (
233  record->expiration_time).rel_value_us / 1000LL
234  / 1000LL));
235  GNUNET_free (tmp);
236 }
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:405
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 263 of file gnunet-dns-monitor.c.

267 {
268  static const char *return_codes[] = {
269  "No error", "Format error", "Server failure", "Name error",
270  "Not implemented", "Refused", "YXDomain", "YXRRset",
271  "NXRRset", "NOT AUTH", "NOT ZONE", "<invalid>",
272  "<invalid>", "<invalid>", "<invalid>", "<invalid>"
273  };
274  static const char *op_codes[] = {
275  "Query", "Inverse query", "Status", "<invalid>",
276  "<invalid>", "<invalid>", "<invalid>", "<invalid>",
277  "<invalid>", "<invalid>", "<invalid>", "<invalid>",
278  "<invalid>", "<invalid>", "<invalid>", "<invalid>"
279  };
280  struct GNUNET_DNSPARSER_Packet *p;
281  unsigned int i;
282 
283  p = GNUNET_DNSPARSER_parse (request, request_length);
284  if (NULL == p)
285  {
286  fprintf (stderr, "Received malformed DNS packet!\n");
287  // FIXME: drop instead?
289  return;
290  }
291  fprintf (stdout,
292  "%s with ID: %5u Flags: %s%s%s%s%s%s, Return Code: %s, Opcode: %s\n",
293  p->flags.query_or_response ? "Response" : "Query",
294  p->id,
295  p->flags.recursion_desired ? "RD " : "",
296  p->flags.message_truncated ? "MT " : "",
297  p->flags.authoritative_answer ? "AA " : "",
298  p->flags.checking_disabled ? "CD " : "",
299  p->flags.authenticated_data ? "AD " : "",
300  p->flags.recursion_available ? "RA " : "",
301  return_codes[p->flags.return_code & 15],
302  op_codes[p->flags.opcode & 15]);
303  if (p->num_queries > 0)
304  fprintf (stdout,
305  "\tQueries:\n");
306  for (i = 0; i < p->num_queries; i++)
307  display_query (&p->queries[i]);
308 
309  if (p->num_answers > 0)
310  fprintf (stdout,
311  "\tAnswers:\n");
312  for (i = 0; i < p->num_answers; i++)
313  display_record (&p->answers[i]);
314  fprintf (stdout, "\n");
317 }
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-uri.c:38
static struct GNUNET_VPN_RedirectionRequest * request
Opaque redirection request handle.
Definition: gnunet-vpn.c:40
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:237
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 324 of file gnunet-dns-monitor.c.

325 {
326  if (NULL != handle)
327  {
329  handle = NULL;
330  }
331 }
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:363

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 343 of file gnunet-dns-monitor.c.

345 {
346  enum GNUNET_DNS_Flags flags;
347 
350  flags = 0;
351  if (inbound_only)
353  if (outbound_only)
355  handle =
357  flags,
359  NULL);
361 }
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:340
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:1334

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 365 of file gnunet-dns-monitor.c.

366 {
369  "inbound-only",
370  gettext_noop ("only monitor DNS queries"),
371  &inbound_only),
372 
374  "outbound-only",
375  gettext_noop ("only monitor DNS queries"),
376  &outbound_only),
377 
380  };
381 
382  if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
383  return 2;
384  ret = (GNUNET_OK ==
385  GNUNET_PROGRAM_run (argc, argv, "gnunet-dns-monitor",
387  ("Monitor DNS queries."), options,
388  &run, NULL)) ? ret : 1;
389  GNUNET_free_nz ((void *) argv);
390  return ret;
391 }
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:70
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.
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.
@ 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:400
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:1222
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 34 of file gnunet-dns-monitor.c.

Referenced by add_attribute_cont(), add_credential_cont(), add_list_handle(), add_service_handle(), attr_collect(), attr_in_claims_request(), attr_in_idtoken_request(), attr_in_userinfo_request(), authorize_endpoint(), bind_store_ego(), build_authz_response(), build_redirect(), bulk_tx_commit_cb(), bulk_tx_start(), 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_name(), change_srv_handle_member_id(), check_authorization(), check_client_hello(), check_client_result(), check_monitor_get_resp(), check_monitor_put(), cleanup_handle(), cleanup_issue_handle(), client_redirect(), close_handle_room(), close_service_room(), close_srv_handle_room(), code_redirect(), collect_finished_cb(), consume_cont(), consume_fail(), consume_ticket(), consume_ticket_cont(), cookie_identity_interpretation(), cr_cont(), create_finished(), create_handle(), create_handle_member_id(), create_room(), create_srv_handle(), create_srv_room(), cred_collect(), del_finished(), delete_attribute_cont(), delete_credential_cont(), delete_finished_cb(), destroy_handle(), destroy_srv_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_get_all(), ego_get_name(), ego_get_pubkey(), ego_get_response(), ego_sign_data(), ego_sign_data_cb(), enter_srv_room_at(), entry_handle_room_at(), entry_service_room(), entry_srv_handle_room(), finished_cont(), force_reconnect(), get_cont(), get_gns_cont(), get_handle_contact(), get_handle_contact_store(), get_handle_key(), get_handle_member_session(), get_handle_name(), get_oidc_dir_path(), get_srv_handle_data_subdir(), get_srv_handle_ego(), get_srv_handle_member_id(), 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_hello(), handle_get_key(), handle_get_message(), handle_get_name(), handle_gns_response(), handle_intermediate(), handle_member_id(), handle_recv_message(), handle_result(), handle_room_close(), handle_room_entry(), handle_room_open(), handle_ticket_result(), header_iterator(), import_next_cb(), iterate_close_room(), iterate_create_ego(), iterate_reset_room(), iterate_save_member_session_history_hentries(), iterate_save_rooms(), join_room(), join_room_locally(), jwks_endpoint(), list_attribute_cont(), list_credential_cont(), list_tickets_cont(), load_list_messages(), load_list_tunnels(), load_member_session_history(), load_srv_handle_configuration(), login_cont(), login_redirect(), lookup_redirect_uri_result(), main_task(), merge_srv_room_last_messages(), mq_error_handler(), namestore_add(), namestore_add_or_update(), namestore_delete(), namestore_get(), namestore_import(), namestore_iteration_error(), namestore_list_finished(), namestore_list_iteration(), namestore_update(), neighbour_delete(), notify_srv_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_service_room(), open_srv_handle_room(), open_srv_room(), options_cont(), pack_srv_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_list_messages(), save_list_tunnels(), save_member_session_history(), save_srv_handle_configuration(), send_close_room(), send_enter_room(), send_message_id(), send_open_room(), send_room_info(), send_srv_handle_message(), send_srv_room_message(), send_tunnel_message(), set_cont(), set_handle_key(), set_handle_name(), set_srv_handle_ego(), set_srv_handle_name(), setup_cipher_aes(), setup_cipher_twofish(), setup_srv_handle_name(), store_ticket_issue_cont(), ticket_collect(), tld_iter(), token_endpoint(), transmit_get(), transmit_set(), transmit_watch(), unbind_store_ego(), update_srv_handle(), url_iterator(), and userinfo_endpoint().

◆ inbound_only

int inbound_only
static

Option -i.

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

Referenced by main(), and run().

◆ outbound_only

int outbound_only
static

Option -o.

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

Referenced by main(), and run().

◆ ret

int ret
static

Global return value (0 success).

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

Referenced by main().

◆ verbosity

unsigned int verbosity
static

Selected level of verbosity.

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

Referenced by main().