xref: /freebsd/contrib/wpa/src/drivers/driver_none.c (revision e28a4053)
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