Increased wpa_cli/hostapd_cli ping interval and made it configurable

The default interval is now 5 seconds (used to be 1 second for
interactive mode and 2 seconds for wpa_cli -a). The interval can be
changed with -G<seconds> command line option.
This commit is contained in:
Jouni Malinen 2009-01-20 21:12:00 +02:00
parent 3a4606585c
commit 1cc84c1c6b
4 changed files with 27 additions and 9 deletions

View file

@ -1,5 +1,9 @@
ChangeLog for hostapd ChangeLog for hostapd
????-??-?? - v0.7.0
* increased hostapd_cli ping interval to 5 seconds and made this
configurable with a new command line options (-G<seconds>)
2009-01-06 - v0.6.7 2009-01-06 - v0.6.7
* added support for Wi-Fi Protected Setup (WPS) * added support for Wi-Fi Protected Setup (WPS)
(hostapd can now be configured to act as an integrated WPS Registrar (hostapd can now be configured to act as an integrated WPS Registrar

View file

@ -101,6 +101,7 @@ static int hostapd_cli_quit = 0;
static int hostapd_cli_attached = 0; static int hostapd_cli_attached = 0;
static const char *ctrl_iface_dir = "/var/run/hostapd"; static const char *ctrl_iface_dir = "/var/run/hostapd";
static char *ctrl_ifname = NULL; static char *ctrl_ifname = NULL;
static int ping_interval = 5;
static void usage(void) static void usage(void)
@ -109,7 +110,8 @@ static void usage(void)
fprintf(stderr, fprintf(stderr,
"\n" "\n"
"usage: hostapd_cli [-p<path>] [-i<ifname>] [-hv] " "usage: hostapd_cli [-p<path>] [-i<ifname>] [-hv] "
"[command..]\n" "[-G<ping interval>] \\\n"
" [command..]\n"
"\n" "\n"
"Options:\n" "Options:\n"
" -h help (show this usage text)\n" " -h help (show this usage text)\n"
@ -507,7 +509,7 @@ static void hostapd_cli_interactive(void)
do { do {
hostapd_cli_recv_pending(ctrl_conn, 0); hostapd_cli_recv_pending(ctrl_conn, 0);
printf("> "); printf("> ");
alarm(1); alarm(ping_interval);
res = fgets(cmd, sizeof(cmd), stdin); res = fgets(cmd, sizeof(cmd), stdin);
alarm(0); alarm(0);
if (res == NULL) if (res == NULL)
@ -569,7 +571,7 @@ static void hostapd_cli_alarm(int sig)
} }
if (ctrl_conn) if (ctrl_conn)
hostapd_cli_recv_pending(ctrl_conn, 1); hostapd_cli_recv_pending(ctrl_conn, 1);
alarm(1); alarm(ping_interval);
} }
@ -580,10 +582,13 @@ int main(int argc, char *argv[])
int c; int c;
for (;;) { for (;;) {
c = getopt(argc, argv, "hi:p:v"); c = getopt(argc, argv, "hG:i:p:v");
if (c < 0) if (c < 0)
break; break;
switch (c) { switch (c) {
case 'G':
ping_interval = atoi(optarg);
break;
case 'h': case 'h':
usage(); usage();
return 0; return 0;

View file

@ -1,5 +1,9 @@
ChangeLog for wpa_supplicant ChangeLog for wpa_supplicant
????-??-?? - v0.7.0
* increased wpa_cli ping interval to 5 seconds and made this
configurable with a new command line options (-G<seconds>)
2009-01-06 - v0.6.7 2009-01-06 - v0.6.7
* added support for Wi-Fi Protected Setup (WPS) * added support for Wi-Fi Protected Setup (WPS)
(wpa_supplicant can now be configured to act as a WPS Enrollee to (wpa_supplicant can now be configured to act as a WPS Enrollee to

View file

@ -95,6 +95,7 @@ static const char *ctrl_iface_dir = "/var/run/wpa_supplicant";
static char *ctrl_ifname = NULL; static char *ctrl_ifname = NULL;
static const char *pid_file = NULL; static const char *pid_file = NULL;
static const char *action_file = NULL; static const char *action_file = NULL;
static int ping_interval = 5;
static void print_help(); static void print_help();
@ -104,7 +105,8 @@ static void usage(void)
{ {
printf("wpa_cli [-p<path to ctrl sockets>] [-i<ifname>] [-hvB] " printf("wpa_cli [-p<path to ctrl sockets>] [-i<ifname>] [-hvB] "
"[-a<action file>] \\\n" "[-a<action file>] \\\n"
" [-P<pid file>] [-g<global ctrl>] [command..]\n" " [-P<pid file>] [-g<global ctrl>] [-G<ping interval>] "
"[command..]\n"
" -h = help (show this usage text)\n" " -h = help (show this usage text)\n"
" -v = shown version information\n" " -v = shown version information\n"
" -a = run in daemon mode executing the action file based on " " -a = run in daemon mode executing the action file based on "
@ -1586,7 +1588,7 @@ static void wpa_cli_interactive(void)
do { do {
wpa_cli_recv_pending(ctrl_conn, 0, 0); wpa_cli_recv_pending(ctrl_conn, 0, 0);
#ifndef CONFIG_NATIVE_WINDOWS #ifndef CONFIG_NATIVE_WINDOWS
alarm(1); alarm(ping_interval);
#endif /* CONFIG_NATIVE_WINDOWS */ #endif /* CONFIG_NATIVE_WINDOWS */
#ifdef CONFIG_READLINE #ifdef CONFIG_READLINE
cmd = readline("> "); cmd = readline("> ");
@ -1690,7 +1692,7 @@ static void wpa_cli_action(struct wpa_ctrl *ctrl)
while (!wpa_cli_quit) { while (!wpa_cli_quit) {
FD_ZERO(&rfds); FD_ZERO(&rfds);
FD_SET(fd, &rfds); FD_SET(fd, &rfds);
tv.tv_sec = 2; tv.tv_sec = ping_interval;
tv.tv_usec = 0; tv.tv_usec = 0;
res = select(fd + 1, &rfds, NULL, NULL, &tv); res = select(fd + 1, &rfds, NULL, NULL, &tv);
if (res < 0 && errno != EINTR) { if (res < 0 && errno != EINTR) {
@ -1744,7 +1746,7 @@ static void wpa_cli_alarm(int sig)
wpa_cli_reconnect(); wpa_cli_reconnect();
if (ctrl_conn) if (ctrl_conn)
wpa_cli_recv_pending(ctrl_conn, 1, 0); wpa_cli_recv_pending(ctrl_conn, 1, 0);
alarm(1); alarm(ping_interval);
} }
#endif /* CONFIG_NATIVE_WINDOWS */ #endif /* CONFIG_NATIVE_WINDOWS */
@ -1817,7 +1819,7 @@ int main(int argc, char *argv[])
return -1; return -1;
for (;;) { for (;;) {
c = getopt(argc, argv, "a:Bg:hi:p:P:v"); c = getopt(argc, argv, "a:Bg:G:hi:p:P:v");
if (c < 0) if (c < 0)
break; break;
switch (c) { switch (c) {
@ -1830,6 +1832,9 @@ int main(int argc, char *argv[])
case 'g': case 'g':
global = optarg; global = optarg;
break; break;
case 'G':
ping_interval = atoi(optarg);
break;
case 'h': case 'h':
usage(); usage();
return 0; return 0;