del: 将go版本的内容删除,只保留处理日志功能
This commit is contained in:
88
cmd/udpserver.c
Normal file
88
cmd/udpserver.c
Normal file
@@ -0,0 +1,88 @@
|
||||
#include "cli_parse.h"
|
||||
#include "server_udp_hub.h"
|
||||
|
||||
static void udpserver_usage(FILE *out) {
|
||||
fprintf(out, "usage: udpserver [-listen addr] [-latency-log path] [-tx-ts-debug-log path]\n");
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
const char *listen_addr = ":9001";
|
||||
const char *latency_log_path = "";
|
||||
const char *tx_debug_log_path = "";
|
||||
latency_logger_t *latency_logger = NULL;
|
||||
tx_timestamp_debug_logger_t *debug_logger = NULL;
|
||||
udp_hub_t *hub = NULL;
|
||||
int enable_timestamping = 0;
|
||||
int i;
|
||||
int rc = 1;
|
||||
|
||||
for (i = 1; i < argc; ++i) {
|
||||
const char *value = NULL;
|
||||
int handled;
|
||||
|
||||
if ((handled = cli_parse_value_flag(argc, argv, &i, argv[i], "-listen", &value)) < 0) {
|
||||
fprintf(stderr, "udpserver: flag -listen requires a value\n");
|
||||
return 1;
|
||||
} else if (handled) {
|
||||
listen_addr = value;
|
||||
continue;
|
||||
}
|
||||
if ((handled = cli_parse_value_flag(argc, argv, &i, argv[i], "-latency-log", &value)) < 0) {
|
||||
fprintf(stderr, "udpserver: flag -latency-log requires a value\n");
|
||||
return 1;
|
||||
} else if (handled) {
|
||||
latency_log_path = value;
|
||||
continue;
|
||||
}
|
||||
if ((handled = cli_parse_value_flag(argc, argv, &i, argv[i], "-tx-ts-debug-log", &value)) < 0) {
|
||||
fprintf(stderr, "udpserver: flag -tx-ts-debug-log requires a value\n");
|
||||
return 1;
|
||||
} else if (handled) {
|
||||
tx_debug_log_path = value;
|
||||
continue;
|
||||
}
|
||||
if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) {
|
||||
udpserver_usage(stdout);
|
||||
return 0;
|
||||
}
|
||||
fprintf(stderr, "udpserver: unknown argument %s\n", argv[i]);
|
||||
udpserver_usage(stderr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (latency_log_path[0] != '\0') {
|
||||
latency_logger = latencylog_open_jsonl(latency_log_path);
|
||||
if (latency_logger == NULL) {
|
||||
fprintf(stderr, "udpserver: open latency logger %s failed\n", latency_log_path);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
if (tx_debug_log_path[0] != '\0') {
|
||||
debug_logger = tx_timestamp_debug_open_jsonl(tx_debug_log_path);
|
||||
if (debug_logger == NULL) {
|
||||
fprintf(stderr, "udpserver: open tx timestamp debug logger %s failed\n", tx_debug_log_path);
|
||||
goto cleanup;
|
||||
}
|
||||
enable_timestamping = 1;
|
||||
}
|
||||
|
||||
hub = udp_hub_open(listen_addr, latency_logger, debug_logger, enable_timestamping);
|
||||
if (hub == NULL) {
|
||||
fprintf(stderr, "udpserver: listen on %s failed\n", listen_addr);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
fprintf(stderr, "udp server listening on %s\n", listen_addr);
|
||||
if (udp_hub_serve(hub) != 0) {
|
||||
fprintf(stderr, "udpserver: serve failed\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
rc = 0;
|
||||
|
||||
cleanup:
|
||||
udp_hub_free(hub);
|
||||
tx_timestamp_debug_close(debug_logger);
|
||||
latencylog_close(latency_logger);
|
||||
return rc;
|
||||
}
|
||||
Reference in New Issue
Block a user