pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/39151?usp=email )
Change subject: pcap-server: New vty command 'no max-file-size' ......................................................................
pcap-server: New vty command 'no max-file-size'
This new VTY command allows disabling the max-file-size feature.
Change-Id: I54f1f0e2976ea235e92a1c527fa80f18ae166992 --- M include/osmo-pcap/osmo_pcap_server.h M src/osmo_server_main.c M src/osmo_server_network.c M src/osmo_server_vty.c 4 files changed, 20 insertions(+), 3 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 6d2afcf..5fe6d11 100644 --- a/include/osmo-pcap/osmo_pcap_server.h +++ b/include/osmo-pcap/osmo_pcap_server.h @@ -131,6 +131,7 @@ char *base_path; mode_t permission_mask; off_t max_size; + bool max_size_enabled; int max_snaplen;
/* statistics */ diff --git a/src/osmo_server_main.c b/src/osmo_server_main.c index 4633888..85f4290 100644 --- a/src/osmo_server_main.c +++ b/src/osmo_server_main.c @@ -281,7 +281,8 @@ INIT_LLIST_HEAD(&pcap_server->conn); pcap_server->base_path = talloc_strdup(pcap_server, "./"); pcap_server->permission_mask = 0440; - pcap_server->max_size = 1073741824; + pcap_server->max_size = 1073741824; /* 1024^3, 1GB **/ + pcap_server->max_size_enabled = true; pcap_server->max_snaplen = DEFAULT_SNAPLEN;
if (vty_read_config_file(config_file, NULL) < 0) { diff --git a/src/osmo_server_network.c b/src/osmo_server_network.c index 1ace77a..e53ce01 100644 --- a/src/osmo_server_network.c +++ b/src/osmo_server_network.c @@ -217,6 +217,8 @@ { off_t cur;
+ if (pcap_server->max_size_enabled) + return false; cur = lseek(conn->local_fd, 0, SEEK_CUR); if (cur + data->len <= conn->server->max_size) return false; diff --git a/src/osmo_server_vty.c b/src/osmo_server_vty.c index 796aed8..507a477 100644 --- a/src/osmo_server_vty.c +++ b/src/osmo_server_vty.c @@ -93,8 +93,10 @@ vty_out(vty, " server ip %s%s", pcap_server->addr, VTY_NEWLINE); if (pcap_server->port > 0) vty_out(vty, " server port %d%s", pcap_server->port, VTY_NEWLINE); - vty_out(vty, " max-file-size %llu%s", - (unsigned long long) pcap_server->max_size, VTY_NEWLINE); + if (pcap_server->max_size_enabled) + vty_out(vty, " max-file-size %llu%s", (unsigned long long)pcap_server->max_size, VTY_NEWLINE); + else + vty_out(vty, " no max-file-size%s", VTY_NEWLINE); if (pcap_server->max_snaplen != DEFAULT_SNAPLEN) vty_out(vty, " server max-snaplen %d%s", pcap_server->max_snaplen, VTY_NEWLINE); if (pcap_server->zmq_port > 0) @@ -198,6 +200,16 @@ "Maximum file size for a trace\n" "Filesize in bytes\n") { pcap_server->max_size = strtoull(argv[0], NULL, 10); + pcap_server->max_size_enabled = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_server_no_max_size, + cfg_server_no_max_size_cmd, + "no max-file-size", + NO_STR "Maximum file size for a trace\n") +{ + pcap_server->max_size_enabled = false; return CMD_SUCCESS; }
@@ -564,6 +576,7 @@ install_element(SERVER_NODE, &cfg_server_ip_cmd); install_element(SERVER_NODE, &cfg_server_port_cmd); install_element(SERVER_NODE, &cfg_server_max_size_cmd); + install_element(SERVER_NODE, &cfg_server_no_max_size_cmd); install_element(SERVER_NODE, &cfg_server_max_snaplen_cmd); install_element(SERVER_NODE, &cfg_server_zmq_ip_port_cmd); install_element(SERVER_NODE, &cfg_no_server_zmq_ip_port_cmd);