add programm startup arguments
This commit is contained in:
parent
a2bc53241c
commit
081967e141
|
@ -1,6 +1,8 @@
|
||||||
#ifndef __WIFICTLD_LOG_H
|
#ifndef __WIFICTLD_LOG_H
|
||||||
#define __WIFICTLD_LOG_H
|
#define __WIFICTLD_LOG_H
|
||||||
|
|
||||||
|
#define BOOL2STR(v) (v)? "true" : "false"
|
||||||
|
|
||||||
void log_info(const char *format, ...);
|
void log_info(const char *format, ...);
|
||||||
void log_verbose(const char *format, ...);
|
void log_verbose(const char *format, ...);
|
||||||
void log_debug(const char *format, ...);
|
void log_debug(const char *format, ...);
|
||||||
|
|
|
@ -4,6 +4,47 @@
|
||||||
#include "wifi_clients.h"
|
#include "wifi_clients.h"
|
||||||
#include "ubus.h"
|
#include "ubus.h"
|
||||||
|
|
||||||
|
struct option longopts[] = {
|
||||||
|
{"verbose", no_argument, 0, 'v'},
|
||||||
|
{"help", no_argument, 0, 'h'},
|
||||||
|
// Bandsteering options
|
||||||
|
{"try", required_argument, 0, 't'},
|
||||||
|
{"signal", required_argument, 0, 's'},
|
||||||
|
{"force", optional_argument, 0, 'f'},
|
||||||
|
{"force-probe", optional_argument, 0, 1},
|
||||||
|
{"probe", optional_argument, 0, 'p'},
|
||||||
|
{"probe-learning", optional_argument, 0, 2},
|
||||||
|
// memory options
|
||||||
|
{"clean-every", required_argument, 0, 3},
|
||||||
|
{"clean-older-then", required_argument, 0, 4},
|
||||||
|
{"clean-authed", optional_argument, 0, 5},
|
||||||
|
};
|
||||||
|
|
||||||
|
void usage(int c) {
|
||||||
|
printf("Usage: wifictld ...\n");
|
||||||
|
#ifdef DEBUG
|
||||||
|
printf(" -v|--verbose log verbose and debug (current: %s)\n", BOOL2STR(config_verbose));
|
||||||
|
#else
|
||||||
|
printf(" -v|--verbose log verbose (current: %s)\n", BOOL2STR(config_verbose));
|
||||||
|
#endif
|
||||||
|
printf(" -h|--help show this help text\n");
|
||||||
|
printf("\nbandsteering options:\n");
|
||||||
|
printf(" -t|--try threashold till allow (current: %d)\n", config_client_try_threashold);
|
||||||
|
printf(" -s|--signal threashold to allow (current: %d)\n", config_client_signal_threashold);
|
||||||
|
printf(" -f|--force force steering (current: %s)\n", BOOL2STR(config_client_force));
|
||||||
|
printf(" --force-probe force steering only for probes (current: %s)\n", BOOL2STR(config_client_force_probe));
|
||||||
|
printf(" -p|--probe probe-steering (current: %s)\n", BOOL2STR(config_client_probe_steering));
|
||||||
|
printf(" --probe-learning probe-learing (current: %s)\n", BOOL2STR(config_client_probe_learning));
|
||||||
|
printf(" (parameter ignored if probe-steering on)\n");
|
||||||
|
printf("\nmemory cleanup options:\n");
|
||||||
|
printf(" --clean-every run cleaning every (current: %ds)\n", config_client_clean_every);
|
||||||
|
printf(" --clean-older-then clean unseen for secound (current: %ds)\n", config_client_clean_older_then);
|
||||||
|
printf(" --clean-authed clean already authed also (not only learned by probes) (current: %s)\n", BOOL2STR(config_client_clean_authed));
|
||||||
|
printf("\nConfig could be changed by ubus, see `ubus -v list wifictld`\n");
|
||||||
|
if(c)
|
||||||
|
printf("Invalid parameter %c ignored.\n", c);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
@ -14,14 +55,78 @@ int main(int argc, char *argv[])
|
||||||
log_info("start wifictld (full)\n");
|
log_info("start wifictld (full)\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int c = 0;
|
int c = 0, indexptr = 0;
|
||||||
while ((c = getopt(argc, argv, "v")) != -1) {
|
while ((c = getopt_long(argc, argv, "vht:s:fp",longopts, &indexptr)) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'v':
|
case 'v':
|
||||||
config_verbose = 1;
|
config_verbose = !config_verbose;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
usage(0);
|
||||||
|
return 0;
|
||||||
|
// Bandsteering options
|
||||||
|
case 't':
|
||||||
|
config_client_try_threashold = atoi(optarg);
|
||||||
|
if (config_client_try_threashold < 0) {
|
||||||
|
printf("negativ tries count not supported\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
config_client_signal_threashold = atoi(optarg);
|
||||||
|
if (config_client_signal_threashold > 0) {
|
||||||
|
printf("prositiv signal not supported\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'f':
|
||||||
|
if(optarg)
|
||||||
|
config_client_force = atoi(optarg);
|
||||||
|
else
|
||||||
|
config_client_force = !config_client_force;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if(optarg)
|
||||||
|
config_client_force_probe = atoi(optarg);
|
||||||
|
else
|
||||||
|
config_client_force_probe = !config_client_force_probe;
|
||||||
|
break;
|
||||||
|
case 'p':
|
||||||
|
if(optarg)
|
||||||
|
config_client_probe_steering = atoi(optarg);
|
||||||
|
else
|
||||||
|
config_client_probe_steering = !config_client_probe_steering;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if(optarg)
|
||||||
|
config_client_probe_learning = atoi(optarg);
|
||||||
|
else
|
||||||
|
config_client_probe_learning = !config_client_probe_learning;
|
||||||
|
break;
|
||||||
|
// memory options
|
||||||
|
case 3:
|
||||||
|
config_client_clean_every = atoi(optarg);
|
||||||
|
if (config_client_clean_every < 0) {
|
||||||
|
printf("negativ time not supported\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
config_client_clean_older_then = atoi(optarg);
|
||||||
|
if (config_client_clean_older_then < 0) {
|
||||||
|
printf("negativ time not supported\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if(optarg)
|
||||||
|
config_client_clean_authed = atoi(optarg);
|
||||||
|
else
|
||||||
|
config_client_clean_authed = !config_client_clean_authed;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log_error("Invalid parameter %c ignored.\n", c);
|
usage(c);
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue