Browse Source

Fix RADIUS server deinit to cancel timeout for session removal

Jouni Malinen 15 years ago
parent
commit
f481459f5e
1 changed files with 3 additions and 4 deletions
  1. 3 4
      src/radius/radius_server.c

+ 3 - 4
src/radius/radius_server.c

@@ -296,7 +296,8 @@ wpa_hexdump_ascii(MSG_MSGDUMP, "RADIUS SRV: " args)
 
 
 static void radius_server_session_timeout(void *eloop_ctx, void *timeout_ctx);
-
+static void radius_server_session_remove_timeout(void *eloop_ctx,
+						 void *timeout_ctx);
 
 
 static struct radius_client *
@@ -358,6 +359,7 @@ static void radius_server_session_free(struct radius_server_data *data,
 				       struct radius_session *sess)
 {
 	eloop_cancel_timeout(radius_server_session_timeout, data, sess);
+	eloop_cancel_timeout(radius_server_session_remove_timeout, data, sess);
 	eap_server_sm_deinit(sess->eap);
 	radius_msg_free(sess->last_msg);
 	os_free(sess->last_from_addr);
@@ -367,9 +369,6 @@ static void radius_server_session_free(struct radius_server_data *data,
 }
 
 
-static void radius_server_session_remove_timeout(void *eloop_ctx,
-						 void *timeout_ctx);
-
 static void radius_server_session_remove(struct radius_server_data *data,
 					 struct radius_session *sess)
 {