Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching defs:drv

146 static int wpa_driver_wired_membership(struct wpa_driver_wired_data *drv,
152 if (drv->pf_sock == -1)
156 mreq.mr_ifindex = if_nametoindex(drv->ifname);
161 if (setsockopt(drv->pf_sock, SOL_PACKET,
176 struct wpa_driver_wired_data *drv;
179 drv = os_zalloc(sizeof(*drv));
180 if (drv == NULL)
182 os_strncpy(drv->ifname, ifname, sizeof(drv->ifname));
183 drv->ctx = ctx;
186 drv->pf_sock = socket(PF_PACKET, SOCK_DGRAM, 0);
187 if (drv->pf_sock < 0)
190 drv->pf_sock = -1;
196 drv->iff_up = 1;
199 if (wpa_driver_wired_membership(drv, pae_group_addr, 1) == 0) {
202 drv->membership = 1;
206 drv->multi = 1;
210 os_free(drv);
219 os_free(drv);
224 drv->iff_allmulti = 1;
227 return drv;
233 struct wpa_driver_wired_data *drv = priv;
236 if (drv->membership &&
237 wpa_driver_wired_membership(drv, pae_group_addr, 0) < 0) {
242 if (drv->multi &&
243 wpa_driver_wired_multi(drv->ifname, pae_group_addr, 0) < 0) {
248 if (drv->iff_allmulti &&
249 (wpa_driver_wired_get_ifflags(drv->ifname, &flags) < 0 ||
250 wpa_driver_wired_set_ifflags(drv->ifname,
256 if (drv->iff_up &&
257 wpa_driver_wired_get_ifflags(drv->ifname, &flags) == 0 &&
259 wpa_driver_wired_set_ifflags(drv->ifname, flags & ~IFF_UP) < 0) {
264 if (drv->pf_sock != -1)
265 close(drv->pf_sock);
267 os_free(drv);