diff --git a/src/cbc_data.h b/src/cbc_data.h index e88ae45..d6fc3d2 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -26,6 +26,7 @@ struct cbc_peer { char *remote_host; /* remote IP address in string format */ int remote_port; /* remote port number or -1 for random */ + bool unknown_dynamic_peer; /* dynamic/unknown peer; not saved in VTY */ enum cbc_peer_protocol proto; union { diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 98e2703..9a36aa4 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -494,8 +494,12 @@ static void write_one_peer(struct vty *vty, struct cbc_peer *peer) static int config_write_peer(struct vty *vty) { struct cbc_peer *peer; - llist_for_each_entry(peer, &g_cbc->peers, list) + llist_for_each_entry(peer, &g_cbc->peers, list) { + /* only save those configured via the VTY, not the "unknown" peers */ + if (peer->unknown_dynamic_peer) + continue; write_one_peer(vty, peer); + } return CMD_SUCCESS; } diff --git a/src/cbsp_server.c b/src/cbsp_server.c index 8a62790..3aa6332 100644 --- a/src/cbsp_server.c +++ b/src/cbsp_server.c @@ -150,6 +150,7 @@ static int cbsp_cbc_accept_cb(struct osmo_stream_srv_link *link, int fd) remote_ip, remote_port); client->peer = cbc_peer_create(NULL, CBC_PEER_PROTO_CBSP); OSMO_ASSERT(client->peer); + client->peer->unknown_dynamic_peer = true; } else { LOGPCC(client, LOGL_NOTICE, "Rejecting unknown CBSP peer %s:%d (not permitted)\n", remote_ip, remote_port);