Rename --dump to --stdout. Add --stdin.

This commit is contained in:
Ian Gulliver
2016-02-25 15:12:16 -08:00
parent 46fd0c3c8b
commit 4f14845c75
3 changed files with 29 additions and 18 deletions

View File

@@ -28,11 +28,12 @@ static void print_usage(const char *name) {
"\n" "\n"
"Options:\n" "Options:\n"
"\t--help\n" "\t--help\n"
"\t--dump=FORMAT\n"
"\t--connect-receive=HOST/PORT\n" "\t--connect-receive=HOST/PORT\n"
"\t--connect-send=FORMAT=HOST/PORT\n" "\t--connect-send=FORMAT=HOST/PORT\n"
"\t--listen-receive=[HOST/]PORT\n" "\t--listen-receive=[HOST/]PORT\n"
"\t--listen-send=FORMAT=[HOST/]PORT\n" "\t--listen-send=FORMAT=[HOST/]PORT\n"
"\t--stdin\n"
"\t--stdout=FORMAT\n"
, name); , name);
receive_print_usage(); receive_print_usage();
send_print_usage(); send_print_usage();
@@ -40,11 +41,12 @@ static void print_usage(const char *name) {
static bool parse_opts(int argc, char *argv[]) { static bool parse_opts(int argc, char *argv[]) {
static struct option long_options[] = { static struct option long_options[] = {
{"dump", required_argument, 0, 'd'},
{"connect-receive", required_argument, 0, 'c'}, {"connect-receive", required_argument, 0, 'c'},
{"connect-send", required_argument, 0, 's'}, {"connect-send", required_argument, 0, 's'},
{"listen-receive", required_argument, 0, 'l'}, {"listen-receive", required_argument, 0, 'l'},
{"listen-send", required_argument, 0, 'm'}, {"listen-send", required_argument, 0, 'm'},
{"stdin", no_argument, 0, 'i'},
{"stdout", required_argument, 0, 'o'},
{"help", no_argument, 0, 'h'}, {"help", no_argument, 0, 'h'},
{0, 0, 0, 0 }, {0, 0, 0, 0 },
}; };
@@ -53,10 +55,6 @@ static bool parse_opts(int argc, char *argv[]) {
while ((opt = getopt_long_only(argc, argv, "", long_options, NULL)) != -1) { while ((opt = getopt_long_only(argc, argv, "", long_options, NULL)) != -1) {
bool (*handler)(char *) = NULL; bool (*handler)(char *) = NULL;
switch (opt) { switch (opt) {
case 'd':
handler = opts_add_dump;
break;
case 'c': case 'c':
handler = opts_add_connect_receive; handler = opts_add_connect_receive;
break; break;
@@ -73,6 +71,14 @@ static bool parse_opts(int argc, char *argv[]) {
handler = opts_add_listen_send; handler = opts_add_listen_send;
break; break;
case 'i':
handler = opts_add_stdin;
break;
case 'o':
handler = opts_add_stdout;
break;
case 'h': case 'h':
default: default:
print_usage(argv[0]); print_usage(argv[0]);
@@ -98,8 +104,6 @@ static bool parse_opts(int argc, char *argv[]) {
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
assert(!close(0));
hex_init(); hex_init();
rand_init(); rand_init();
resolve_init(); resolve_init();
@@ -117,6 +121,7 @@ int main(int argc, char *argv[]) {
peer_shutdown(); peer_shutdown();
} }
assert(!close(0));
assert(!close(1)); assert(!close(1));
peer_loop(); peer_loop();

View File

@@ -45,15 +45,6 @@ static struct serializer *opts_get_serializer(char **arg) {
return serializer; return serializer;
} }
bool opts_add_dump(char *arg) {
struct serializer *serializer = send_get_serializer(arg);
if (!serializer) {
return false;
}
send_new(dup(1), serializer, NULL);
return true;
}
bool opts_add_connect_receive(char *arg) { bool opts_add_connect_receive(char *arg) {
char *host = opts_split(&arg, '/'); char *host = opts_split(&arg, '/');
if (!host) { if (!host) {
@@ -95,3 +86,17 @@ bool opts_add_listen_send(char *arg) {
opts_add_listen(arg, send_new_wrapper, serializer); opts_add_listen(arg, send_new_wrapper, serializer);
return true; return true;
} }
bool opts_add_stdin(char *arg) {
receive_new(dup(0), NULL, NULL);
return true;
}
bool opts_add_stdout(char *arg) {
struct serializer *serializer = send_get_serializer(arg);
if (!serializer) {
return false;
}
send_new(dup(1), serializer, NULL);
return true;
}

View File

@@ -2,8 +2,9 @@
#include <stdbool.h> #include <stdbool.h>
bool opts_add_dump(char *);
bool opts_add_connect_receive(char *); bool opts_add_connect_receive(char *);
bool opts_add_connect_send(char *); bool opts_add_connect_send(char *);
bool opts_add_listen_receive(char *); bool opts_add_listen_receive(char *);
bool opts_add_listen_send(char *); bool opts_add_listen_send(char *);
bool opts_add_stdout(char *);
bool opts_add_stdin(char *);