chiark / gitweb /
udp: Print more info in our comm_addr representations
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 dde73efb53eb4fe8d0af4555ff30f492bfbab82d..26853b70c218b5349e9e821ba14a2986e2f27f72 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,