pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-pcap/+/39274?usp=email )
Change subject: server: Split osmo_pcap_conn alloc to its own function
......................................................................
server: Split osmo_pcap_conn alloc to its own function
Change-Id: I622c9662b0a451ca5466e053a046346b536ed0a6
---
M include/osmo-pcap/osmo_pcap_server.h
M src/osmo_server_network.c
M src/osmo_server_vty.c
3 files changed, 19 insertions(+), 11 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/74/39274/1
diff --git a/include/osmo-pcap/osmo_pcap_server.h b/include/osmo-pcap/osmo_pcap_server.h
index ae578b4..df4d171 100644
--- a/include/osmo-pcap/osmo_pcap_server.h
+++ b/include/osmo-pcap/osmo_pcap_server.h
@@ -161,7 +161,7 @@
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(struct osmo_pcap_server *ser,
+struct osmo_pcap_conn *osmo_pcap_server_find_or_create(struct osmo_pcap_server *ser,
const char *name);
void osmo_pcap_server_delete(struct osmo_pcap_conn *conn);
void vty_server_init(void);
diff --git a/src/osmo_server_network.c b/src/osmo_server_network.c
index 044e0ec..0567b21 100644
--- a/src/osmo_server_network.c
+++ b/src/osmo_server_network.c
@@ -499,16 +499,11 @@
talloc_free(conn);
}
-struct osmo_pcap_conn *osmo_pcap_server_find(struct osmo_pcap_server *server,
- const char *name)
+static struct osmo_pcap_conn *osmo_pcap_conn_alloc(struct osmo_pcap_server *server,
+ const char *name)
{
- struct rate_ctr_group_desc *desc;
struct osmo_pcap_conn *conn;
-
- llist_for_each_entry(conn, &server->conn, entry) {
- if (strcmp(conn->name, name) == 0)
- return conn;
- }
+ struct rate_ctr_group_desc *desc;
conn = talloc_zero(server, struct osmo_pcap_conn);
if (!conn) {
@@ -563,6 +558,19 @@
return conn;
}
+struct osmo_pcap_conn *osmo_pcap_server_find_or_create(
+ struct osmo_pcap_server *server,
+ const char *name)
+{
+ struct osmo_pcap_conn *conn;
+
+ llist_for_each_entry(conn, &server->conn, entry) {
+ if (strcmp(conn->name, name) == 0)
+ return conn;
+ }
+ return osmo_pcap_conn_alloc(server, name);
+}
+
static int do_read_tls(struct osmo_pcap_conn *conn, void *buf, size_t want_size)
{
size_t size = want_size;
diff --git a/src/osmo_server_vty.c b/src/osmo_server_vty.c
index b976857..aed382f 100644
--- a/src/osmo_server_vty.c
+++ b/src/osmo_server_vty.c
@@ -354,7 +354,7 @@
bool store, bool use_tls)
{
struct osmo_pcap_conn *conn;
- conn = osmo_pcap_server_find(pcap_server, name);
+ conn = osmo_pcap_server_find_or_create(pcap_server, name);
if (!conn) {
vty_out(vty, "Failed to create a pcap server.\n");
return CMD_WARNING;
@@ -403,7 +403,7 @@
NO_STR CLIENT_STR "The name\n")
{
struct osmo_pcap_conn *conn;
- conn = osmo_pcap_server_find(pcap_server, argv[0]);
+ conn = osmo_pcap_server_find_or_create(pcap_server, argv[0]);
if (!conn) {
vty_out(vty, "Failed to create a pcap server.\n");
return CMD_WARNING;
--
To view, visit
https://gerrit.osmocom.org/c/osmo-pcap/+/39274?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-pcap
Gerrit-Branch: master
Gerrit-Change-Id: I622c9662b0a451ca5466e053a046346b536ed0a6
Gerrit-Change-Number: 39274
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>