pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/39322?usp=email )
Change subject: server: Add osmo_pcap_server_free() for completeness ......................................................................
server: Add osmo_pcap_server_free() for completeness
It will never really be called, but helps in understanding the lifecycle of objects and tricks my mind from thinking I'm missing something when adding new fields.
Change-Id: I2606390fc9d9b8a2335c96688d83a038ba73f8ab --- M include/osmo-pcap/osmo_pcap_server.h M src/osmo_server_core.c M src/osmo_server_main.c 3 files changed, 16 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/22/39322/1
diff --git a/include/osmo-pcap/osmo_pcap_server.h b/include/osmo-pcap/osmo_pcap_server.h index f394c7c..aca8b6c 100644 --- a/include/osmo-pcap/osmo_pcap_server.h +++ b/include/osmo-pcap/osmo_pcap_server.h @@ -174,7 +174,7 @@ extern const struct rate_ctr_group_desc pcap_peer_group_desc; extern const struct rate_ctr_group_desc pcap_server_group_desc; struct osmo_pcap_server *osmo_pcap_server_alloc(void *ctx); - +void osmo_pcap_server_free(struct osmo_pcap_server *psrv); void osmo_pcap_server_reopen(struct osmo_pcap_server *server); int osmo_pcap_server_listen(struct osmo_pcap_server *server); struct osmo_pcap_conn *osmo_pcap_server_find_or_create(struct osmo_pcap_server *ser, diff --git a/src/osmo_server_core.c b/src/osmo_server_core.c index 9282694..f6c42ce 100644 --- a/src/osmo_server_core.c +++ b/src/osmo_server_core.c @@ -618,3 +618,17 @@ psrv->rotate_localtime.modulus = 1; return psrv; } + +void osmo_pcap_server_free(struct osmo_pcap_server *psrv) +{ + struct osmo_pcap_conn *conn; + + if (!psrv) + return; + + while ((conn = llist_first_entry_or_null(&psrv->conn, struct osmo_pcap_conn, entry))) + osmo_pcap_conn_free(conn); + + rate_ctr_group_free(psrv->ctrg); + talloc_free(psrv); +} diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index e570e89..8b6d047 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -271,5 +271,6 @@ osmo_select_main(0); }
+ osmo_pcap_server_free(pcap_server); return 0; }