summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose M. Guisado <jguisado@soleta.eu>2022-02-16 20:58:45 +0100
committerJose M. Guisado <jguisado@soleta.eu>2022-02-16 21:10:36 +0100
commit93eb1de2a7e6b74e15a038634eccd6b5e43dec47 (patch)
tree1725de5bb93dc319807141223a618ba865e1b230
parentc80bd1c52565b74b1b6203d1fead97e59c7b4c7e (diff)
main: fix -r and -t options
Add -t option to optstring. Check for optarg when using -r. Fixes max_redirect initializing to the same value of max_clients when using short option -r.
-rw-r--r--src/main.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main.c b/src/main.c
index 3d776b7..65b68fc 100644
--- a/src/main.c
+++ b/src/main.c
@@ -54,7 +54,7 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
while (1) {
- val = getopt_long(argc, argv, "n:r::d", tip_repo_opts, NULL);
+ val = getopt_long(argc, argv, "n:t:r::d", tip_repo_opts, NULL);
if (val < 0)
break;
@@ -67,16 +67,18 @@ int main(int argc, char *argv[])
}
break;
case 'r':
- if (optind < argc &&
+ if (optarg) {
+ max_redirect = atoi(optarg);
+ } else if (optind < argc &&
argv[optind][0] != '-') {
max_redirect = atoi(argv[optind++]);
- if (max_redirect < 0) {
- syslog(LOG_ERR, "Invalid number for redirections");
- return EXIT_FAILURE;
- }
} else {
max_redirect = max_clients;
}
+ if (max_redirect < 0) {
+ syslog(LOG_ERR, "Invalid number for redirections");
+ return EXIT_FAILURE;
+ }
break;
case 't':
root = strdup(optarg);