aboutsummaryrefslogtreecommitdiffstats
path: root/src/radius
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2013-11-04 18:44:24 -0800
committerDmitry Shmidt <dimitrysh@google.com>2013-11-04 18:44:24 -0800
commitcce06667447b5aec83452adb0c15100ada531095 (patch)
treedb6df7284213a7942b7f3adf46afd525f4b2166f /src/radius
parente6c91e4c8125a2e7b31d176a52644aa9cab146f1 (diff)
downloadandroid_external_wpa_supplicant_8-cce06667447b5aec83452adb0c15100ada531095.tar.gz
android_external_wpa_supplicant_8-cce06667447b5aec83452adb0c15100ada531095.tar.bz2
android_external_wpa_supplicant_8-cce06667447b5aec83452adb0c15100ada531095.zip
Cumulative patch from commit d4f1a347ceca31fd9cf14070fd000235d5f4e9c1
d4f1a34 Allow AP mode configuration with VHT enabled on 2.4 GHz bb337dd DFS: Do not use cf1 to override freq for 20 MHz channels 0dfd2c6 Document AP mode startup functions fee947b hostapd: Use correct wpa_printf verbosity level for message 2fe210c hostapd: Fix multi-BSS configuration file parsing regression e4ba031 hostapd: Use start_ctrl_iface() from hostapd_add_iface() bf7f09b Fix AP mode QoS Map configuration to be per-BSS dc036d9 DFS: Convert hostapd_data use to hostapd_iface 2db938e hostapd: Fill in phyname automatically 5ae6449 hostapd: Add ctrl_iface STATUS command afadaff Optimize 40 MHz HT co-ex scan on AP 7d6d737 hostapd: Add AP-ENABLED/DISABLED ctrl_iface events e1c5faf hostapd: Track interface state f0793bf hostapd: Wait for channel list update after country code change ae134e1 hostapd: Add ctrl_iface events for ACS ad08e14 hostapd: Move ctrl_iface initialization to happen earlier c20cb02 hostapd: Remove hostapd_interface_init2() 4a5deb9 hostapd: Simplify interface initialization 186c905 DFS: Add control interface events for various DFS events ddf5517 hostapd: Add control interface test commands for radar detection 884f1a3 nl80211: Verify radar event attributes exist before using them 71cdf6b hostapd: Fix ENABLE failure to not remove interface 18ca733 SAE: Fix group selection 65015b2 Replace unnecessary UTF-8 characters with ASCII versions 61323e7 Convert perror/printf calls to wpa_printf 3f134b4 hostapd: Accept RELOG from global control interface b253e6f hostapd: Use wpa_printf() for hostapd_logger() to stdout c092d83 P2P: Clear pending group formation data on group removal 9100b66 P2P: Debug print reason for specific SSID for scan 2aec4f3 Allow add-BSS operation to re-use existing netdev 5592065 hostapd: Allow a single BSS to be removed from an interface 2e2fff3 hostapd: Allow a single BSS to be added to an interface a1fb569 hostapd: Make hostapd_interface_init_bss() available externally 66936c6 hostapd: Make hostapd_init() available externally 390e489 hostapd: Allow the first BSS in a multi-BSS setup to be removed 834ee56 nl80211: Make wpa_driver_nl80211_data::first_bss pointer 748c0ac nl80211: Fix monitor interface reference counting 08e55eb nl80211: Add a debug print for DEL_BEACON 33b0b33 hostapd: Fix error path in hostapd_add_iface() 770ecdf ACS: Do not get stuck while failing to do a subsequent scan 813d4ba DFS: Add support for multi-BSS 954e71d DFS: Reset cac_started properly 6a398dd DFS: Sanitize channel availability checks 32595da DFS: Fix HT40/VHT calculation 0648c3b hostapd: Add -T Linux tracing option 392e68e Set GTK rekey offload information after initial group key handshake bbc706a nl80211: Add debug prints for NL80211_CMD_SET_STATION 731ca63 Update regulatory change to all virtual interface for the phy 6f2db2f hostapd: Validate configuration parameters on RELOAD command eff0fd1 hostapd: Move generic configuration functions into src/ap 5afaa06 hostapd: Allow per-BSS (vif) configuration files ebd79f0 hostapd: Make hostapd_config::bss array of pointers a781e21 hostapd: Force PSK to be derived again on BSS reload 9f104b0 hostapd: Reuse hostapd_clear_old() for RELOAD command Change-Id: I7fbb26cbd4a2960af66a4373c0e6bbe5390a4940 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src/radius')
-rw-r--r--src/radius/radius_client.c50
-rw-r--r--src/radius/radius_das.c6
-rw-r--r--src/radius/radius_server.c28
3 files changed, 42 insertions, 42 deletions
diff --git a/src/radius/radius_client.c b/src/radius/radius_client.c
index 425ad935..290c7c81 100644
--- a/src/radius/radius_client.c
+++ b/src/radius/radius_client.c
@@ -300,7 +300,7 @@ static void radius_client_handle_send_error(struct radius_client_data *radius,
{
#ifndef CONFIG_NATIVE_WINDOWS
int _errno = errno;
- perror("send[RADIUS]");
+ wpa_printf(MSG_INFO, "send[RADIUS]: %s", strerror(errno));
if (_errno == ENOTCONN || _errno == EDESTADDRREQ || _errno == EINVAL ||
_errno == EBADF) {
hostapd_logger(radius->ctx, NULL, HOSTAPD_MODULE_RADIUS,
@@ -361,8 +361,7 @@ static int radius_client_retransmit(struct radius_client_data *radius,
if (entry->next_wait > RADIUS_CLIENT_MAX_WAIT)
entry->next_wait = RADIUS_CLIENT_MAX_WAIT;
if (entry->attempts >= RADIUS_CLIENT_MAX_RETRIES) {
- printf("Removing un-ACKed RADIUS message due to too many "
- "failed retransmit attempts\n");
+ wpa_printf(MSG_INFO, "RADIUS: Removing un-ACKed message due to too many failed retransmit attempts");
return 1;
}
@@ -526,7 +525,7 @@ static void radius_client_list_add(struct radius_client_data *radius,
entry = os_zalloc(sizeof(*entry));
if (entry == NULL) {
- printf("Failed to add RADIUS packet into retransmit list\n");
+ wpa_printf(MSG_INFO, "RADIUS: Failed to add packet into retransmit list");
radius_msg_free(msg);
return;
}
@@ -547,8 +546,7 @@ static void radius_client_list_add(struct radius_client_data *radius,
radius_client_update_timeout(radius);
if (radius->num_msgs >= RADIUS_CLIENT_MAX_ENTRIES) {
- printf("Removing the oldest un-ACKed RADIUS packet due to "
- "retransmit list limits.\n");
+ wpa_printf(MSG_INFO, "RADIUS: Removing the oldest un-ACKed packet due to retransmit list limits");
prev = NULL;
while (entry->next) {
prev = entry;
@@ -710,21 +708,20 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
len = recv(sock, buf, sizeof(buf), MSG_DONTWAIT);
if (len < 0) {
- perror("recv[RADIUS]");
+ wpa_printf(MSG_INFO, "recv[RADIUS]: %s", strerror(errno));
return;
}
hostapd_logger(radius->ctx, NULL, HOSTAPD_MODULE_RADIUS,
HOSTAPD_LEVEL_DEBUG, "Received %d bytes from RADIUS "
"server", len);
if (len == sizeof(buf)) {
- printf("Possibly too long UDP frame for our buffer - "
- "dropping it\n");
+ wpa_printf(MSG_INFO, "RADIUS: Possibly too long UDP frame for our buffer - dropping it");
return;
}
msg = radius_msg_parse(buf, len);
if (msg == NULL) {
- printf("Parsing incoming RADIUS frame failed\n");
+ wpa_printf(MSG_INFO, "RADIUS: Parsing incoming frame failed");
rconf->malformed_responses++;
return;
}
@@ -1041,13 +1038,14 @@ radius_change_server(struct radius_client_data *radius,
}
if (bind(sel_sock, cl_addr, claddrlen) < 0) {
- perror("bind[radius]");
+ wpa_printf(MSG_INFO, "bind[radius]: %s",
+ strerror(errno));
return -1;
}
}
if (connect(sel_sock, addr, addrlen) < 0) {
- perror("connect[radius]");
+ wpa_printf(MSG_INFO, "connect[radius]: %s", strerror(errno));
return -1;
}
@@ -1123,8 +1121,8 @@ static int radius_client_disable_pmtu_discovery(int s)
r = setsockopt(s, IPPROTO_IP, IP_MTU_DISCOVER, &action,
sizeof(action));
if (r == -1)
- wpa_printf(MSG_ERROR, "Failed to set IP_MTU_DISCOVER: "
- "%s", strerror(errno));
+ wpa_printf(MSG_ERROR, "RADIUS: Failed to set IP_MTU_DISCOVER: %s",
+ strerror(errno));
#endif
return r;
}
@@ -1137,7 +1135,8 @@ static int radius_client_init_auth(struct radius_client_data *radius)
radius->auth_serv_sock = socket(PF_INET, SOCK_DGRAM, 0);
if (radius->auth_serv_sock < 0)
- perror("socket[PF_INET,SOCK_DGRAM]");
+ wpa_printf(MSG_INFO, "RADIUS: socket[PF_INET,SOCK_DGRAM]: %s",
+ strerror(errno));
else {
radius_client_disable_pmtu_discovery(radius->auth_serv_sock);
ok++;
@@ -1146,7 +1145,8 @@ static int radius_client_init_auth(struct radius_client_data *radius)
#ifdef CONFIG_IPV6
radius->auth_serv_sock6 = socket(PF_INET6, SOCK_DGRAM, 0);
if (radius->auth_serv_sock6 < 0)
- perror("socket[PF_INET6,SOCK_DGRAM]");
+ wpa_printf(MSG_INFO, "RADIUS: socket[PF_INET6,SOCK_DGRAM]: %s",
+ strerror(errno));
else
ok++;
#endif /* CONFIG_IPV6 */
@@ -1162,8 +1162,7 @@ static int radius_client_init_auth(struct radius_client_data *radius)
eloop_register_read_sock(radius->auth_serv_sock,
radius_client_receive, radius,
(void *) RADIUS_AUTH)) {
- printf("Could not register read socket for authentication "
- "server\n");
+ wpa_printf(MSG_INFO, "RADIUS: Could not register read socket for authentication server");
return -1;
}
@@ -1172,8 +1171,7 @@ static int radius_client_init_auth(struct radius_client_data *radius)
eloop_register_read_sock(radius->auth_serv_sock6,
radius_client_receive, radius,
(void *) RADIUS_AUTH)) {
- printf("Could not register read socket for authentication "
- "server\n");
+ wpa_printf(MSG_INFO, "RADIUS: Could not register read socket for authentication server");
return -1;
}
#endif /* CONFIG_IPV6 */
@@ -1189,7 +1187,8 @@ static int radius_client_init_acct(struct radius_client_data *radius)
radius->acct_serv_sock = socket(PF_INET, SOCK_DGRAM, 0);
if (radius->acct_serv_sock < 0)
- perror("socket[PF_INET,SOCK_DGRAM]");
+ wpa_printf(MSG_INFO, "RADIUS: socket[PF_INET,SOCK_DGRAM]: %s",
+ strerror(errno));
else {
radius_client_disable_pmtu_discovery(radius->acct_serv_sock);
ok++;
@@ -1198,7 +1197,8 @@ static int radius_client_init_acct(struct radius_client_data *radius)
#ifdef CONFIG_IPV6
radius->acct_serv_sock6 = socket(PF_INET6, SOCK_DGRAM, 0);
if (radius->acct_serv_sock6 < 0)
- perror("socket[PF_INET6,SOCK_DGRAM]");
+ wpa_printf(MSG_INFO, "RADIUS: socket[PF_INET6,SOCK_DGRAM]: %s",
+ strerror(errno));
else
ok++;
#endif /* CONFIG_IPV6 */
@@ -1214,8 +1214,7 @@ static int radius_client_init_acct(struct radius_client_data *radius)
eloop_register_read_sock(radius->acct_serv_sock,
radius_client_receive, radius,
(void *) RADIUS_ACCT)) {
- printf("Could not register read socket for accounting "
- "server\n");
+ wpa_printf(MSG_INFO, "RADIUS: Could not register read socket for accounting server");
return -1;
}
@@ -1224,8 +1223,7 @@ static int radius_client_init_acct(struct radius_client_data *radius)
eloop_register_read_sock(radius->acct_serv_sock6,
radius_client_receive, radius,
(void *) RADIUS_ACCT)) {
- printf("Could not register read socket for accounting "
- "server\n");
+ wpa_printf(MSG_INFO, "RADIUS: Could not register read socket for accounting server");
return -1;
}
#endif /* CONFIG_IPV6 */
diff --git a/src/radius/radius_das.c b/src/radius/radius_das.c
index bded9651..8e5988dd 100644
--- a/src/radius/radius_das.c
+++ b/src/radius/radius_das.c
@@ -1,6 +1,6 @@
/*
* RADIUS Dynamic Authorization Server (DAS) (RFC 5176)
- * Copyright (c) 2012, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2012-2013, Jouni Malinen <j@w1.fi>
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
@@ -284,7 +284,7 @@ static int radius_das_open_socket(int port)
s = socket(PF_INET, SOCK_DGRAM, 0);
if (s < 0) {
- perror("socket");
+ wpa_printf(MSG_INFO, "RADIUS DAS: socket: %s", strerror(errno));
return -1;
}
@@ -292,7 +292,7 @@ static int radius_das_open_socket(int port)
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
if (bind(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
- perror("bind");
+ wpa_printf(MSG_INFO, "RADIUS DAS: bind: %s", strerror(errno));
close(s);
return -1;
}
diff --git a/src/radius/radius_server.c b/src/radius/radius_server.c
index 0144c9f8..fe197704 100644
--- a/src/radius/radius_server.c
+++ b/src/radius/radius_server.c
@@ -679,7 +679,7 @@ static int radius_server_reject(struct radius_server_data *data,
buf = radius_msg_get_buf(msg);
if (sendto(data->auth_sock, wpabuf_head(buf), wpabuf_len(buf), 0,
(struct sockaddr *) from, sizeof(*from)) < 0) {
- perror("sendto[RADIUS SRV]");
+ wpa_printf(MSG_INFO, "sendto[RADIUS SRV]: %s", strerror(errno));
ret = -1;
}
@@ -750,7 +750,8 @@ static int radius_server_request(struct radius_server_data *data,
wpabuf_len(buf), 0,
(struct sockaddr *) from, fromlen);
if (res < 0) {
- perror("sendto[RADIUS SRV]");
+ wpa_printf(MSG_INFO, "sendto[RADIUS SRV]: %s",
+ strerror(errno));
}
return 0;
}
@@ -842,7 +843,8 @@ static int radius_server_request(struct radius_server_data *data,
wpabuf_len(buf), 0,
(struct sockaddr *) from, fromlen);
if (res < 0) {
- perror("sendto[RADIUS SRV]");
+ wpa_printf(MSG_INFO, "sendto[RADIUS SRV]: %s",
+ strerror(errno));
}
radius_msg_free(sess->last_reply);
sess->last_reply = reply;
@@ -897,7 +899,8 @@ static void radius_server_receive_auth(int sock, void *eloop_ctx,
len = recvfrom(sock, buf, RADIUS_MAX_MSG_LEN, 0,
(struct sockaddr *) &from.ss, &fromlen);
if (len < 0) {
- perror("recvfrom[radius_server]");
+ wpa_printf(MSG_INFO, "recvfrom[radius_server]: %s",
+ strerror(errno));
goto fail;
}
@@ -1001,7 +1004,7 @@ static int radius_server_open_socket(int port)
s = socket(PF_INET, SOCK_DGRAM, 0);
if (s < 0) {
- perror("socket");
+ wpa_printf(MSG_INFO, "RADIUS: socket: %s", strerror(errno));
return -1;
}
@@ -1011,7 +1014,7 @@ static int radius_server_open_socket(int port)
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
if (bind(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
- perror("bind");
+ wpa_printf(MSG_INFO, "RADIUS: bind: %s", strerror(errno));
close(s);
return -1;
}
@@ -1028,7 +1031,8 @@ static int radius_server_open_socket6(int port)
s = socket(PF_INET6, SOCK_DGRAM, 0);
if (s < 0) {
- perror("socket[IPv6]");
+ wpa_printf(MSG_INFO, "RADIUS: socket[IPv6]: %s",
+ strerror(errno));
return -1;
}
@@ -1037,7 +1041,7 @@ static int radius_server_open_socket6(int port)
os_memcpy(&addr.sin6_addr, &in6addr_any, sizeof(in6addr_any));
addr.sin6_port = htons(port);
if (bind(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
- perror("bind");
+ wpa_printf(MSG_INFO, "RADIUS: bind: %s", strerror(errno));
close(s);
return -1;
}
@@ -1248,8 +1252,7 @@ radius_server_init(struct radius_server_conf *conf)
#ifndef CONFIG_IPV6
if (conf->ipv6) {
- fprintf(stderr, "RADIUS server compiled without IPv6 "
- "support.\n");
+ wpa_printf(MSG_ERROR, "RADIUS server compiled without IPv6 support");
return NULL;
}
#endif /* CONFIG_IPV6 */
@@ -1305,7 +1308,7 @@ radius_server_init(struct radius_server_conf *conf)
data->clients = radius_server_read_clients(conf->client_file,
conf->ipv6);
if (data->clients == NULL) {
- printf("No RADIUS clients configured.\n");
+ wpa_printf(MSG_ERROR, "No RADIUS clients configured");
radius_server_deinit(data);
return NULL;
}
@@ -1317,8 +1320,7 @@ radius_server_init(struct radius_server_conf *conf)
#endif /* CONFIG_IPV6 */
data->auth_sock = radius_server_open_socket(conf->auth_port);
if (data->auth_sock < 0) {
- printf("Failed to open UDP socket for RADIUS authentication "
- "server\n");
+ wpa_printf(MSG_ERROR, "Failed to open UDP socket for RADIUS authentication server");
radius_server_deinit(data);
return NULL;
}