Lines Matching refs:drv

168 static int wired_init_sockets(struct wpa_driver_wired_data *drv, u8 *own_addr)  in wired_init_sockets()  argument
176 drv->common.sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_PAE)); in wired_init_sockets()
177 if (drv->common.sock < 0) { in wired_init_sockets()
183 if (eloop_register_read_sock(drv->common.sock, handle_read, in wired_init_sockets()
184 drv->common.ctx, NULL)) { in wired_init_sockets()
190 os_strlcpy(ifr.ifr_name, drv->common.ifname, sizeof(ifr.ifr_name)); in wired_init_sockets()
191 if (ioctl(drv->common.sock, SIOCGIFINDEX, &ifr) != 0) { in wired_init_sockets()
203 if (bind(drv->common.sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) in wired_init_sockets()
210 if (wired_multicast_membership(drv->common.sock, ifr.ifr_ifindex, in wired_init_sockets()
218 os_strlcpy(ifr.ifr_name, drv->common.ifname, sizeof(ifr.ifr_name)); in wired_init_sockets()
219 if (ioctl(drv->common.sock, SIOCGIFHWADDR, &ifr) != 0) { in wired_init_sockets()
233 if ((drv->dhcp_sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) { in wired_init_sockets()
239 if (eloop_register_read_sock(drv->dhcp_sock, handle_dhcp, in wired_init_sockets()
240 drv->common.ctx, NULL)) { in wired_init_sockets()
250 if (setsockopt(drv->dhcp_sock, SOL_SOCKET, SO_REUSEADDR, (char *) &n, in wired_init_sockets()
256 if (setsockopt(drv->dhcp_sock, SOL_SOCKET, SO_BROADCAST, (char *) &n, in wired_init_sockets()
264 os_strlcpy(ifr.ifr_ifrn.ifrn_name, drv->common.ifname, IFNAMSIZ); in wired_init_sockets()
265 if (setsockopt(drv->dhcp_sock, SOL_SOCKET, SO_BINDTODEVICE, in wired_init_sockets()
273 if (bind(drv->dhcp_sock, (struct sockaddr *) &addr2, in wired_init_sockets()
290 struct wpa_driver_wired_data *drv = priv; in wired_send_eapol() local
305 os_memcpy(hdr->dest, drv->use_pae_group_addr ? pae_group_addr : addr, in wired_send_eapol()
313 res = send(drv->common.sock, (u8 *) hdr, len, 0); in wired_send_eapol()
329 struct wpa_driver_wired_data *drv; in wired_driver_hapd_init() local
331 drv = os_zalloc(sizeof(struct wpa_driver_wired_data)); in wired_driver_hapd_init()
332 if (drv == NULL) { in wired_driver_hapd_init()
338 drv->common.ctx = hapd; in wired_driver_hapd_init()
339 os_strlcpy(drv->common.ifname, params->ifname, in wired_driver_hapd_init()
340 sizeof(drv->common.ifname)); in wired_driver_hapd_init()
341 drv->use_pae_group_addr = params->use_pae_group_addr; in wired_driver_hapd_init()
343 if (wired_init_sockets(drv, params->own_addr)) { in wired_driver_hapd_init()
344 os_free(drv); in wired_driver_hapd_init()
348 return drv; in wired_driver_hapd_init()
354 struct wpa_driver_wired_data *drv = priv; in wired_driver_hapd_deinit() local
356 if (drv->common.sock >= 0) { in wired_driver_hapd_deinit()
357 eloop_unregister_read_sock(drv->common.sock); in wired_driver_hapd_deinit()
358 close(drv->common.sock); in wired_driver_hapd_deinit()
361 if (drv->dhcp_sock >= 0) { in wired_driver_hapd_deinit()
362 eloop_unregister_read_sock(drv->dhcp_sock); in wired_driver_hapd_deinit()
363 close(drv->dhcp_sock); in wired_driver_hapd_deinit()
366 os_free(drv); in wired_driver_hapd_deinit()
372 struct wpa_driver_wired_data *drv; in wpa_driver_wired_init() local
374 drv = os_zalloc(sizeof(*drv)); in wpa_driver_wired_init()
375 if (drv == NULL) in wpa_driver_wired_init()
378 if (driver_wired_init_common(&drv->common, ifname, ctx) < 0) { in wpa_driver_wired_init()
379 os_free(drv); in wpa_driver_wired_init()
383 return drv; in wpa_driver_wired_init()
389 struct wpa_driver_wired_data *drv = priv; in wpa_driver_wired_deinit() local
391 driver_wired_deinit_common(&drv->common); in wpa_driver_wired_deinit()
392 os_free(drv); in wpa_driver_wired_deinit()