del: 将go版本的内容删除,只保留处理日志功能
This commit is contained in:
59
cmd/udprelay.c
Normal file
59
cmd/udprelay.c
Normal file
@@ -0,0 +1,59 @@
|
||||
#include "cli_parse.h"
|
||||
#include "server_udp_relay.h"
|
||||
|
||||
static void udprelay_usage(FILE *out) {
|
||||
fprintf(out, "usage: udprelay [-listen addr] [-upstream addr]\n");
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
const char *listen_addr = ":9003";
|
||||
const char *upstream_addr = "127.0.0.1:9002";
|
||||
udp_relay_t *relay = NULL;
|
||||
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, "udprelay: 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], "-upstream", &value)) < 0) {
|
||||
fprintf(stderr, "udprelay: flag -upstream requires a value\n");
|
||||
return 1;
|
||||
} else if (handled) {
|
||||
upstream_addr = value;
|
||||
continue;
|
||||
}
|
||||
if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) {
|
||||
udprelay_usage(stdout);
|
||||
return 0;
|
||||
}
|
||||
fprintf(stderr, "udprelay: unknown argument %s\n", argv[i]);
|
||||
udprelay_usage(stderr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
relay = udp_relay_open(listen_addr, upstream_addr);
|
||||
if (relay == NULL) {
|
||||
fprintf(stderr, "udprelay: open relay %s -> %s failed\n", listen_addr, upstream_addr);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
fprintf(stderr, "udp relay listening on %s, upstream %s\n", listen_addr, upstream_addr);
|
||||
if (udp_relay_serve(relay) != 0) {
|
||||
fprintf(stderr, "udprelay: relay serve failed\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
rc = 0;
|
||||
|
||||
cleanup:
|
||||
udp_relay_free(relay);
|
||||
return rc;
|
||||
}
|
||||
Reference in New Issue
Block a user