1252190Srpaulo/* 2252190Srpaulo * RADIUS Dynamic Authorization Server (DAS) 3252190Srpaulo * Copyright (c) 2012, Jouni Malinen <j@w1.fi> 4252190Srpaulo * 5252190Srpaulo * This software may be distributed under the terms of the BSD license. 6252190Srpaulo * See README for more details. 7252190Srpaulo */ 8252190Srpaulo 9252190Srpaulo#ifndef RADIUS_DAS_H 10252190Srpaulo#define RADIUS_DAS_H 11252190Srpaulo 12252190Srpaulostruct radius_das_data; 13252190Srpaulo 14252190Srpauloenum radius_das_res { 15252190Srpaulo RADIUS_DAS_SUCCESS, 16252190Srpaulo RADIUS_DAS_NAS_MISMATCH, 17252190Srpaulo RADIUS_DAS_SESSION_NOT_FOUND 18252190Srpaulo}; 19252190Srpaulo 20252190Srpaulostruct radius_das_attrs { 21252190Srpaulo const u8 *sta_addr; 22252190Srpaulo const u8 *user_name; 23252190Srpaulo size_t user_name_len; 24252190Srpaulo const u8 *acct_session_id; 25252190Srpaulo size_t acct_session_id_len; 26252190Srpaulo const u8 *cui; 27252190Srpaulo size_t cui_len; 28252190Srpaulo}; 29252190Srpaulo 30252190Srpaulostruct radius_das_conf { 31252190Srpaulo int port; 32252190Srpaulo const u8 *shared_secret; 33252190Srpaulo size_t shared_secret_len; 34252190Srpaulo const struct hostapd_ip_addr *client_addr; 35252190Srpaulo unsigned int time_window; 36252190Srpaulo int require_event_timestamp; 37252190Srpaulo void *ctx; 38252190Srpaulo enum radius_das_res (*disconnect)(void *ctx, 39252190Srpaulo struct radius_das_attrs *attr); 40252190Srpaulo}; 41252190Srpaulo 42252190Srpaulostruct radius_das_data * 43252190Srpauloradius_das_init(struct radius_das_conf *conf); 44252190Srpaulo 45252190Srpaulovoid radius_das_deinit(struct radius_das_data *data); 46252190Srpaulo 47252190Srpaulo#endif /* RADIUS_DAS_H */ 48