[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r35336 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r35336 - gnunet/src/transport |
Date: |
Mon, 2 Mar 2015 10:13:10 +0100 |
Author: grothoff
Date: 2015-03-02 10:13:09 +0100 (Mon, 02 Mar 2015)
New Revision: 35336
Modified:
gnunet/src/transport/gnunet-transport.c
Log:
make output of gnunet-transport -P more readable (#3662), and in particular
support -n and defer printing until address resolution is complete
Modified: gnunet/src/transport/gnunet-transport.c
===================================================================
--- gnunet/src/transport/gnunet-transport.c 2015-03-02 00:05:42 UTC (rev
35335)
+++ gnunet/src/transport/gnunet-transport.c 2015-03-02 09:13:09 UTC (rev
35336)
@@ -1540,10 +1540,70 @@
* Resolved address as string.
*/
char *str;
+
+ /**
+ * Last event we got and did not yet print because
+ * @e str was NULL (address not yet resolved).
+ */
+ struct GNUNET_TRANSPORT_SessionInfo si;
};
/**
+ * Print information about a plugin monitoring event.
+ *
+ * @param addr out internal context
+ * @param info the monitoring information
+ */
+static void
+print_plugin_event_info (struct PluginMonitorAddress *addr,
+ const struct GNUNET_TRANSPORT_SessionInfo *info)
+{
+ const char *state;
+
+ switch (info->state)
+ {
+ case GNUNET_TRANSPORT_SS_INIT:
+ state = "INIT";
+ break;
+ case GNUNET_TRANSPORT_SS_HANDSHAKE:
+ state = "HANDSHAKE";
+ break;
+ case GNUNET_TRANSPORT_SS_UP:
+ state = "UP";
+ break;
+ case GNUNET_TRANSPORT_SS_UPDATE:
+ state = "UPDATE";
+ break;
+ case GNUNET_TRANSPORT_SS_DONE:
+ state = "DONE";
+ break;
+ default:
+ state = "UNKNOWN";
+ break;
+ }
+ fprintf (stdout,
+ "%s: state %s timeout in %s @ %s%s\n",
+ GNUNET_i2s (&info->address->peer),
+ state,
+ GNUNET_STRINGS_relative_time_to_string
(GNUNET_TIME_absolute_get_remaining (info->session_timeout),
+ GNUNET_YES),
+ addr->str,
+ (info->is_inbound == GNUNET_YES) ? " (INBOUND)" : "");
+ fprintf (stdout,
+ "%s: queue has %3u messages and %6u bytes\n",
+ GNUNET_i2s (&info->address->peer),
+ info->num_msg_pending,
+ info->num_bytes_pending);
+ if (0 != GNUNET_TIME_absolute_get_remaining
(info->receive_delay).rel_value_us)
+ fprintf (stdout,
+ "%s: receiving blocked until %s\n",
+ GNUNET_i2s (&info->address->peer),
+ GNUNET_STRINGS_absolute_time_to_string (info->receive_delay));
+}
+
+
+/**
* Function called with a textual representation of an address. This
* function will be called several times with different possible
* textual representations, and a last time with @a address being NULL
@@ -1574,6 +1634,8 @@
if (NULL != addr->str)
return;
addr->str = GNUNET_strdup (address);
+ print_plugin_event_info (addr,
+ &addr->si);
}
@@ -1600,7 +1662,6 @@
void **session_ctx,
const struct GNUNET_TRANSPORT_SessionInfo *info)
{
- const char *state;
struct PluginMonitorAddress *addr;
if ( (NULL == info) &&
@@ -1632,44 +1693,17 @@
addr = GNUNET_new (struct PluginMonitorAddress);
addr->asc = GNUNET_TRANSPORT_address_to_string (cfg,
info->address,
- GNUNET_NO,
+ numeric,
GNUNET_TIME_UNIT_FOREVER_REL,
&address_cb,
addr);
*session_ctx = addr;
}
- switch (info->state)
- {
- case GNUNET_TRANSPORT_SS_INIT:
- state = "INIT";
- break;
- case GNUNET_TRANSPORT_SS_HANDSHAKE:
- state = "HANDSHAKE";
- break;
- case GNUNET_TRANSPORT_SS_UP:
- state = "UP";
- break;
- case GNUNET_TRANSPORT_SS_UPDATE:
- state = "UPDATE";
- break;
- case GNUNET_TRANSPORT_SS_DONE:
- state = "DONE";
- break;
- default:
- state = "UNKNOWN";
- break;
- }
- fprintf (stdout,
- "%s: %s %s (# %u/%u b) blocked until %s timeout in %s [%s]\n",
- GNUNET_i2s (&info->address->peer),
- addr->str,
- (info->is_inbound == GNUNET_YES) ? "<-" : ((info->is_inbound ==
GNUNET_NO) ? "->" : "<>"),
- info->num_msg_pending,
- info->num_bytes_pending,
- GNUNET_STRINGS_absolute_time_to_string (info->receive_delay),
- GNUNET_STRINGS_relative_time_to_string
(GNUNET_TIME_absolute_get_remaining (info->session_timeout),
- GNUNET_YES),
- state);
+ if (NULL == addr->str)
+ addr->si = *info;
+ else
+ print_plugin_event_info (addr,
+ info);
if (GNUNET_TRANSPORT_SS_DONE == info->state)
{
if (NULL != addr->asc)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r35336 - gnunet/src/transport,
gnunet <=