aboutsummaryrefslogtreecommitdiffstats
path: root/proto
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2021-01-07 05:56:34 +0100
committerOndrej Zajicek (work) <santiago@crfreenet.org>2021-01-07 06:04:31 +0100
commit17663b6a7c505226cfe9ccc0671611075a3dff57 (patch)
tree45bff7762a01dad8ddcca0826d71bc3083e6137a /proto
parent2a8cc7259e236773f1b8423ef63305a5b8bfd652 (diff)
downloadbird-17663b6a7c505226cfe9ccc0671611075a3dff57.tar.gz
RPKI: Remove port (and SSH username) from 'Cache server' output line
It was mixed-up if hostname is IPv6 address, and reporting separate values (like port) on separate lines fits better into key-value style of 'show protocols all' output. Also, the patch simplifies transport identification formatting (although it is unused now). Thanks to Alarig Le Lay for the suggestion.
Diffstat (limited to 'proto')
-rw-r--r--proto/rpki/rpki.c2
-rw-r--r--proto/rpki/ssh_transport.c10
-rw-r--r--proto/rpki/tcp_transport.c22
3 files changed, 10 insertions, 24 deletions
diff --git a/proto/rpki/rpki.c b/proto/rpki/rpki.c
index 3ee46ae2..799cb877 100644
--- a/proto/rpki/rpki.c
+++ b/proto/rpki/rpki.c
@@ -837,7 +837,7 @@ rpki_show_proto_info(struct proto *P)
case RPKI_TR_TCP: transport_name = "Unprotected over TCP"; break;
};
- cli_msg(-1006, " Cache server: %s", rpki_get_cache_ident(cache));
+ cli_msg(-1006, " Cache server: %s", cf->hostname);
cli_msg(-1006, " Status: %s", rpki_cache_state_to_str(cache->state));
cli_msg(-1006, " Transport: %s", transport_name);
cli_msg(-1006, " Protocol version: %u", cache->version);
diff --git a/proto/rpki/ssh_transport.c b/proto/rpki/ssh_transport.c
index 469eb199..6333f367 100644
--- a/proto/rpki/ssh_transport.c
+++ b/proto/rpki/ssh_transport.c
@@ -47,17 +47,15 @@ rpki_tr_ssh_ident(struct rpki_tr_sock *tr)
struct rpki_cache *cache = tr->cache;
struct rpki_config *cf = (void *) cache->p->p.cf;
struct rpki_tr_ssh_config *ssh_cf = (void *) cf->tr_config.spec;
+ const char *username = ssh_cf->user;
if (tr->ident != NULL)
return tr->ident;
- const char *username = ssh_cf->user;
- const char *host = cf->hostname;
- u16 port = cf->port;
-
- size_t len = strlen(username) + 1 + strlen(host) + 1 + 5 + 1; /* <user> + '@' + <host> + ':' + <port> + '\0' */
+ /* Length: <user> + '@' + <host> + ' port ' + <port> + '\0' */
+ size_t len = strlen(username) + 1 + strlen(cf->hostname) + 1 + 5 + 1;
char *ident = mb_alloc(cache->pool, len);
- bsnprintf(ident, len, "%s@%s:%u", username, host, port);
+ bsnprintf(ident, len, "%s@%s:%u", username, cf->hostname, cf->port);
tr->ident = ident;
return tr->ident;
diff --git a/proto/rpki/tcp_transport.c b/proto/rpki/tcp_transport.c
index 0d3c7e99..132f8e2d 100644
--- a/proto/rpki/tcp_transport.c
+++ b/proto/rpki/tcp_transport.c
@@ -43,24 +43,12 @@ rpki_tr_tcp_ident(struct rpki_tr_sock *tr)
if (tr->ident != NULL)
return tr->ident;
- const char *host = cf->hostname;
- ip_addr ip = cf->ip;
- u16 port = cf->port;
-
- size_t colon_and_port_len = 6; /* max ":65535" */
- size_t ident_len;
- if (host)
- ident_len = strlen(host) + colon_and_port_len + 1;
- else
- ident_len = IPA_MAX_TEXT_LENGTH + colon_and_port_len + 1;
-
- char *ident = mb_alloc(cache->pool, ident_len);
- if (host)
- bsnprintf(ident, ident_len, "%s:%u", host, port);
- else
- bsnprintf(ident, ident_len, "%I:%u", ip, port);
-
+ /* Length: <host> + ':' + <port> + '\0' */
+ size_t len = strlen(cf->hostname) + 1 + 5 + 1;
+ char *ident = mb_alloc(cache->pool, len);
+ bsnprintf(ident, len, "%s:%u", cf->hostname, cf->port);
tr->ident = ident;
+
return tr->ident;
}