if (sock->state == LISTEN_TLS_CHECKING) {
int autz_type = PW_AUTZ_TYPE;
char const *name = "Autz-Type";
+ rad_listen_t *listener = request->listener;
if (request->listener->type == RAD_LISTEN_ACCT) {
autz_type = PW_ACCT_TYPE;
if ((rcode == RLM_MODULE_OK) || (rcode == RLM_MODULE_UPDATED)) {
RDEBUG("(TLS) Connection is authorized");
request->reply->code = PW_CODE_ACCESS_ACCEPT;
+
+ listener->status = RAD_LISTEN_STATUS_RESUME;
+
+ rad_assert(sock->request->packet != request->packet);
+
+ sock->state = LISTEN_TLS_SETUP;
+
} else {
RWDEBUG("(TLS) Connection is not authorized - closing TCP socket.");
request->reply->code = PW_CODE_ACCESS_REJECT;
+
+ listener->status = RAD_LISTEN_STATUS_EOL;
+ listener->tls = NULL; /* parent owns this! */
}
+ radius_update_listener(listener);
return 0;
}
}
* or any other contents.
*/
request->packet->code = PW_CODE_STATUS_SERVER;
+ request->packet->id = request->reply->id = 0;
request->packet->data = talloc_zero_array(request->packet, uint8_t, 20);
request->packet->data[0] = PW_CODE_STATUS_SERVER;
request->packet->data[3] = 20;