pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/39273?usp=email )
Change subject: server: Store read buf max len as conn field ......................................................................
server: Store read buf max len as conn field
This will be useful later on when adding pcapng support, since checks will become more complex due to different data types to be checked, based on information from pcap vs pcapng gathered from magic field inside the received link_hdr buffer.
Change-Id: I8f62aa0bdb04e73223c0c6803a58241f83a5ebe9 --- M include/osmo-pcap/osmo_pcap_server.h M src/osmo_server_network.c 2 files changed, 4 insertions(+), 5 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved
diff --git a/include/osmo-pcap/osmo_pcap_server.h b/include/osmo-pcap/osmo_pcap_server.h index 030a353..ae578b4 100644 --- a/include/osmo-pcap/osmo_pcap_server.h +++ b/include/osmo-pcap/osmo_pcap_server.h @@ -99,6 +99,7 @@ int pend; bool reopen_delayed; struct osmo_pcap_data *data; + size_t data_max_len; /* size of allocated buffer in data->data. */
/* statistics */ struct rate_ctr_group *ctrg; diff --git a/src/osmo_server_network.c b/src/osmo_server_network.c index 7d46b90..044e0ec 100644 --- a/src/osmo_server_network.c +++ b/src/osmo_server_network.c @@ -504,7 +504,6 @@ { struct rate_ctr_group_desc *desc; struct osmo_pcap_conn *conn; - size_t buf_size;
llist_for_each_entry(conn, &server->conn, entry) { if (strcmp(conn->name, name) == 0) @@ -518,10 +517,9 @@ return NULL; }
- buf_size = sizeof(struct osmo_pcap_data); - buf_size += OSMO_MAX(sizeof(struct pcap_file_header), - sizeof(struct osmo_pcap_pkthdr) + server->max_snaplen); - conn->data = talloc_zero_size(conn, buf_size); + conn->data_max_len = OSMO_MAX(sizeof(struct pcap_file_header), + sizeof(struct osmo_pcap_pkthdr) + server->max_snaplen); + conn->data = talloc_zero_size(conn, sizeof(struct osmo_pcap_data) + conn->data_max_len); /* a bit nasty. we do not work with ids but names */ desc = talloc_zero(conn, struct rate_ctr_group_desc); if (!desc) {