From 18d65be080591f08e4c48118c140069c8cf6114f Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 3 Feb 2017 18:36:32 +0100 Subject: osmo-auc-gen: cmdline help: list algorithms; error messages In the -h help output, list the names of available algorithms. In case of option parsing failure, also print help() (so that e.g. for a typo in the algorithm, the list of algorithms is printed along with the error message). If there are -2/-3 or -a missing, show an error message that explains this. Change-Id: I76732b28d7a553a6293d1707fe398d28b5ef4886 --- utils/osmo-auc-gen.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c index 872d6f39..f0cfa795 100644 --- a/utils/osmo-auc-gen.c +++ b/utils/osmo-auc-gen.c @@ -70,6 +70,7 @@ static struct osmo_sub_auth_data test_aud = { static void help() { + int alg; printf( "-2 --2g\tUse 2G (GSM) authentication\n" "-3 --3g\tUse 3G (UMTS) authentication\n" "-a --algorithm\tSpecify name of the algorithm\n" @@ -81,6 +82,11 @@ static void help() "-A --auts\tSpecify AUTS (only for 3G)\n" "-r --rand\tSpecify random value\n" "-I --ipsec\tOutput in triplets.dat format for strongswan\n"); + + fprintf(stderr, "\nAvailable algorithms for option -a:\n"); + for (alg = 1; alg < _OSMO_AUTH_ALG_NUM; alg++) + fprintf(stderr, " %s\n", + osmo_auth_alg_name(alg)); } int main(int argc, char **argv) @@ -209,7 +215,8 @@ int main(int argc, char **argv) } if (rc < 0) { - fprintf(stderr, "Error parsing argument of option `%c'\n", c); + help(); + fprintf(stderr, "\nError parsing argument of option `%c'\n", c); exit(2); } } @@ -229,6 +236,8 @@ int main(int argc, char **argv) if (test_aud.type == OSMO_AUTH_TYPE_NONE || test_aud.algo == OSMO_AUTH_ALG_NONE) { help(); + fprintf(stderr, "\nError: you need to pass at least" + " -2 or -3, as well as an algorithm to use.\n"); exit(2); } -- cgit v1.2.3