Browse Source

Allow RADIUS server address to be replaced

The new hostapd parameters auth_server_addr_replace and
acct_server_addr_replace can now be used to replace the configured IP
address instead of adding a new RADIUS server. This is mainly useful for
testing purposes where the address can be changed over control interface
during AP operation.

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 10 years ago
parent
commit
bbee36e316
1 changed files with 18 additions and 0 deletions
  1. 18 0
      hostapd/config_file.c

+ 18 - 0
hostapd/config_file.c

@@ -2199,6 +2199,15 @@ static int hostapd_config_fill(struct hostapd_config *conf,
 				   line, pos);
 				   line, pos);
 			return 1;
 			return 1;
 		}
 		}
+	} else if (bss->radius->auth_server &&
+		   os_strcmp(buf, "auth_server_addr_replace") == 0) {
+		if (hostapd_parse_ip_addr(pos,
+					  &bss->radius->auth_server->addr)) {
+			wpa_printf(MSG_ERROR,
+				   "Line %d: invalid IP address '%s'",
+				   line, pos);
+			return 1;
+		}
 	} else if (bss->radius->auth_server &&
 	} else if (bss->radius->auth_server &&
 		   os_strcmp(buf, "auth_server_port") == 0) {
 		   os_strcmp(buf, "auth_server_port") == 0) {
 		bss->radius->auth_server->port = atoi(pos);
 		bss->radius->auth_server->port = atoi(pos);
@@ -2224,6 +2233,15 @@ static int hostapd_config_fill(struct hostapd_config *conf,
 				   line, pos);
 				   line, pos);
 			return 1;
 			return 1;
 		}
 		}
+	} else if (bss->radius->acct_server &&
+		   os_strcmp(buf, "acct_server_addr_replace") == 0) {
+		if (hostapd_parse_ip_addr(pos,
+					  &bss->radius->acct_server->addr)) {
+			wpa_printf(MSG_ERROR,
+				   "Line %d: invalid IP address '%s'",
+				   line, pos);
+			return 1;
+		}
 	} else if (bss->radius->acct_server &&
 	} else if (bss->radius->acct_server &&
 		   os_strcmp(buf, "acct_server_port") == 0) {
 		   os_strcmp(buf, "acct_server_port") == 0) {
 		bss->radius->acct_server->port = atoi(pos);
 		bss->radius->acct_server->port = atoi(pos);