1 /* 2 * Driver interface for RADIUS server or WPS ER only (no driver) 3 * Copyright (c) 2008, Atheros Communications 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation. 8 * 9 * Alternatively, this software may be distributed under the terms of BSD 10 * license. 11 * 12 * See README and COPYING for more details. 13 */ 14 15 #include "includes.h" 16 17 #include "common.h" 18 #include "driver.h" 19 20 21 struct none_driver_data { 22 struct hostapd_data *hapd; 23 void *ctx; 24 }; 25 26 27 static void * none_driver_hapd_init(struct hostapd_data *hapd, 28 struct wpa_init_params *params) 29 { 30 struct none_driver_data *drv; 31 32 drv = os_zalloc(sizeof(struct none_driver_data)); 33 if (drv == NULL) { 34 wpa_printf(MSG_ERROR, "Could not allocate memory for none " 35 "driver data"); 36 return NULL; 37 } 38 drv->hapd = hapd; 39 40 return drv; 41 } 42 43 44 static void none_driver_hapd_deinit(void *priv) 45 { 46 struct none_driver_data *drv = priv; 47 48 os_free(drv); 49 } 50 51 52 static int none_driver_send_ether(void *priv, const u8 *dst, const u8 *src, 53 u16 proto, const u8 *data, size_t data_len) 54 { 55 return 0; 56 } 57 58 59 static void * none_driver_init(void *ctx, const char *ifname) 60 { 61 struct none_driver_data *drv; 62 63 drv = os_zalloc(sizeof(struct none_driver_data)); 64 if (drv == NULL) { 65 wpa_printf(MSG_ERROR, "Could not allocate memory for none " 66 "driver data"); 67 return NULL; 68 } 69 drv->ctx = ctx; 70 71 return drv; 72 } 73 74 75 static void none_driver_deinit(void *priv) 76 { 77 struct none_driver_data *drv = priv; 78 79 os_free(drv); 80 } 81 82 83 static int none_driver_send_eapol(void *priv, const u8 *dest, u16 proto, 84 const u8 *data, size_t data_len) 85 { 86 return -1; 87 } 88 89 90 const struct wpa_driver_ops wpa_driver_none_ops = { 91 .name = "none", 92 .desc = "no driver (RADIUS server/WPS ER)", 93 .hapd_init = none_driver_hapd_init, 94 .hapd_deinit = none_driver_hapd_deinit, 95 .send_ether = none_driver_send_ether, 96 .init = none_driver_init, 97 .deinit = none_driver_deinit, 98 .send_eapol = none_driver_send_eapol, 99 }; 100