From 909146d201b113f7339ca10bddf8629887a2e9da Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Mon, 24 Jan 2005 20:41:04 +0000 Subject: add help --- ebtablesu.c | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/ebtablesu.c b/ebtablesu.c index 9aab70b..cd86783 100644 --- a/ebtablesu.c +++ b/ebtablesu.c @@ -7,18 +7,26 @@ #include #include +static void print_help() +{ + printf("ebtablesu v"PROGVERSION" ("PROGDATE")\n"); + printf( +"Usage:\n" +"ebtablesu open table : copy the kernel table\n" +"ebtablesu fopen table file : copy the table from the specified file\n" +"ebtablesu free table : remove the table from memory\n" +"ebtablesu commit table : commit the table to the kernel\n" +"ebtablesu fcommit table file : commit the table to the specified file\n\n" +"ebtablesu : the ebtables specifications\n" +" use spaces only to separate options and commands\n" +"For the ebtables options, see\n# ebtables -h\nor\n# man ebtables\n" + ); +} int main(int argc, char *argv[]) { char *arguments, *pos; int i, writefd, len = 0; - if ((writefd = open(EBTD_PIPE, O_WRONLY, 0)) == -1) { - fprintf(stderr, "Could not open the pipe, perhaps ebtablesd is " - "not running or you don't have write permission (try " - "running as root).\n"); - return -1; - } - if (argc > EBTD_ARGC_MAX) { fprintf(stderr, "ebtablesd accepts at most %d arguments, %d " "arguments were specified. If you need this many " @@ -43,11 +51,27 @@ int main(int argc, char *argv[]) return -1; } + if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) { + if (argc != 2) { + fprintf(stderr, "%s does not accept options.\n", argv[1]); + return -1; + } + print_help(); + exit(0); + } + if (!(arguments = (char *)malloc(len))) { fprintf(stderr, "ebtablesu: out of memory.\n"); return -1; } + if ((writefd = open(EBTD_PIPE, O_WRONLY, 0)) == -1) { + fprintf(stderr, "Could not open the pipe, perhaps ebtablesd is " + "not running or you don't have write permission (try " + "running as root).\n"); + return -1; + } + pos = arguments; for (i = 0; i < argc; i++) { strcpy(pos, argv[i]); -- cgit v1.2.3