chiark / gitweb /
udp: Print more info in our comm_addr representations proposed.ipv6-polypath-fixes.v1
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 25 Oct 2014 18:22:01 +0000 (19:22 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 25 Oct 2014 18:22:01 +0000 (19:22 +0100)
Include an index number (starting at 0) and the line number (but not
filename) at which we were defined.  This is allows the user to more
easily see (for example) which comm_addrs actually belong to the same
udp, even if they might have a different ix and thus be reported with
different local addresses.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
udp.c

diff --git a/udp.c b/udp.c
index dde73ef..26853b7 100644 (file)
--- a/udp.c
+++ b/udp.c
@@ -31,6 +31,7 @@ struct udp {
     struct udpcommon uc;
     struct udpsocks socks;
     bool_t addr_configured;
+    unsigned counter;
 };
 
 /*
@@ -53,7 +54,8 @@ static const char *udp_addr_to_string(void *commst, const struct comm_addr *ca)
     int ix=ca->ix>=0 ? ca->ix : 0;
 
     assert(ix>=0 && ix<socks->n_socks);
-    snprintf(sbuf, sizeof(sbuf), "udp:%s%s-%s",
+    snprintf(sbuf, sizeof(sbuf), "udp#%u@l%d:%s%s-%s",
+            st->counter, st->uc.cc.loc.line,
             iaddr_to_string(&socks->socks[ix].addr),
             ca->ix<0 && socks->n_socks>1 ? "&" : "",
             iaddr_to_string(&ca->ia));
@@ -414,6 +416,8 @@ static void udp_phase_hook(void *sst, uint32_t new_phase)
 static list_t *udp_apply(closure_t *self, struct cloc loc, dict_t *context,
                         list_t *args)
 {
+    static unsigned counter;
+
     struct udp *st;
     list_t *caddrl;
     list_t *l;
@@ -428,6 +432,8 @@ static list_t *udp_apply(closure_t *self, struct cloc loc, dict_t *context,
     struct udpsocks *socks=&st->socks;
     struct commcommon *cc=&uc->cc;
 
+    st->counter=counter++;
+
     union iaddr defaultaddrs[] = {
 #ifdef CONFIG_IPV6
        { .sin6 = { .sin6_family=AF_INET6,