Browse Source

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.
Jouni Malinen 16 years ago
parent
commit
1cc84c1c6b
4 changed files with 27 additions and 9 deletions
  1. 4 0
      hostapd/ChangeLog
  2. 9 4
      hostapd/hostapd_cli.c
  3. 4 0
      wpa_supplicant/ChangeLog
  4. 10 5
      wpa_supplicant/wpa_cli.c

+ 4 - 0
hostapd/ChangeLog

@@ -1,5 +1,9 @@
 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
 	* added support for Wi-Fi Protected Setup (WPS)
 	  (hostapd can now be configured to act as an integrated WPS Registrar

+ 9 - 4
hostapd/hostapd_cli.c

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

+ 4 - 0
wpa_supplicant/ChangeLog

@@ -1,5 +1,9 @@
 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
 	* added support for Wi-Fi Protected Setup (WPS)
 	  (wpa_supplicant can now be configured to act as a WPS Enrollee to

+ 10 - 5
wpa_supplicant/wpa_cli.c

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