Improve output of show/path

Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
This commit is contained in:
Adrien Gallouët
2018-03-16 21:11:02 +00:00
parent 1698a08b08
commit dabd16e4b4
4 changed files with 31 additions and 24 deletions

2
mud

Submodule mud updated: fd48ff08b9...c6fbe52fbd

View File

@@ -99,6 +99,9 @@ gt_get_port(struct sockaddr *sa)
int int
gt_toaddr(char *str, size_t size, struct sockaddr *sa) gt_toaddr(char *str, size_t size, struct sockaddr *sa)
{ {
if (str)
str[0] = 0;
switch (sa->sa_family) { switch (sa->sa_family) {
case AF_INET: case AF_INET:
return -!inet_ntop(AF_INET, return -!inet_ntop(AF_INET,

View File

@@ -27,17 +27,16 @@ gt_path_status(int fd)
if (!res.ret) if (!res.ret)
return 0; return 0;
char bindstr[INET6_ADDRSTRLEN] = {0}; char bindstr[INET6_ADDRSTRLEN];
char publstr[INET6_ADDRSTRLEN] = {0}; char publstr[INET6_ADDRSTRLEN];
char peerstr[INET6_ADDRSTRLEN] = {0}; char peerstr[INET6_ADDRSTRLEN];
if (gt_toaddr(bindstr, sizeof(bindstr), gt_toaddr(bindstr, sizeof(bindstr),
(struct sockaddr *)&res.path_status.local_addr) || (struct sockaddr *)&res.path_status.local_addr);
gt_toaddr(publstr, sizeof(publstr), gt_toaddr(publstr, sizeof(publstr),
(struct sockaddr *)&res.path_status.r_addr) || (struct sockaddr *)&res.path_status.r_addr);
gt_toaddr(peerstr, sizeof(peerstr), gt_toaddr(peerstr, sizeof(peerstr),
(struct sockaddr *)&res.path_status.addr)) (struct sockaddr *)&res.path_status.addr);
return -2;
const char *statestr = NULL; const char *statestr = NULL;
@@ -49,17 +48,20 @@ gt_path_status(int fd)
} }
printf("path %s\n" printf("path %s\n"
" bind: %s\n" " bind: %s port %"PRIu16"\n"
" public: %s port %"PRIu16"\n" " public: %s port %"PRIu16"\n"
" peer: %s port %"PRIu16"\n" " peer: %s port %"PRIu16"\n"
" mtu: %zu bytes\n" " mtu: %zu bytes\n"
" rtt: %.3f ms\n", " rtt: %.3f ms\n",
statestr, bindstr, statestr,
publstr, gt_get_port((struct sockaddr *)&res.path_status.r_addr), bindstr[0] ? bindstr : "-",
peerstr, gt_get_port((struct sockaddr *)&res.path_status.addr), gt_get_port((struct sockaddr *)&res.path_status.local_addr),
publstr[0] ? publstr : "-",
gt_get_port((struct sockaddr *)&res.path_status.r_addr),
peerstr[0] ? peerstr : "-",
gt_get_port((struct sockaddr *)&res.path_status.addr),
res.path_status.mtu.ok + 28U, /* ip+udp hdr */ res.path_status.mtu.ok + 28U, /* ip+udp hdr */
res.path_status.rtt/(double)1e3); res.path_status.rtt/(double)1e3);
} while (res.ret == EAGAIN); } while (res.ret == EAGAIN);
return 0; return 0;

View File

@@ -18,12 +18,11 @@ gt_show_dev_status(int fd, const char *dev)
if (ctl_reply(fd, &res, &req)) if (ctl_reply(fd, &res, &req))
return -1; return -1;
char bindstr[INET6_ADDRSTRLEN] = {0}; char bindstr[INET6_ADDRSTRLEN];
char peerstr[INET6_ADDRSTRLEN] = {0}; char peerstr[INET6_ADDRSTRLEN];
if (gt_toaddr(bindstr, sizeof(bindstr), gt_toaddr(bindstr, sizeof(bindstr),
(struct sockaddr *)&res.status.bind)) (struct sockaddr *)&res.status.bind);
return -2;
int server = gt_toaddr(peerstr, sizeof(peerstr), int server = gt_toaddr(peerstr, sizeof(peerstr),
(struct sockaddr *)&res.status.peer); (struct sockaddr *)&res.status.peer);
@@ -34,7 +33,8 @@ gt_show_dev_status(int fd, const char *dev)
" mtu: %zu\n" " mtu: %zu\n"
" cipher: %s\n", " cipher: %s\n",
dev, dev,
bindstr, gt_get_port((struct sockaddr *)&res.status.bind), bindstr[0] ? bindstr : "-",
gt_get_port((struct sockaddr *)&res.status.bind),
res.status.mtu, res.status.mtu,
res.status.chacha ? "chacha20poly1305" : "aes256gcm"); res.status.chacha ? "chacha20poly1305" : "aes256gcm");
} else { } else {
@@ -44,8 +44,10 @@ gt_show_dev_status(int fd, const char *dev)
" mtu: %zu\n" " mtu: %zu\n"
" cipher: %s\n", " cipher: %s\n",
dev, dev,
bindstr, gt_get_port((struct sockaddr *)&res.status.bind), bindstr[0] ? bindstr : "-",
peerstr, gt_get_port((struct sockaddr *)&res.status.peer), gt_get_port((struct sockaddr *)&res.status.bind),
peerstr[0] ? peerstr : "-",
gt_get_port((struct sockaddr *)&res.status.peer),
res.status.mtu, res.status.mtu,
res.status.chacha ? "chacha20poly1305" : "aes256gcm"); res.status.chacha ? "chacha20poly1305" : "aes256gcm");
} }