• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/wpa_supplicant-0.7.3/src/drivers/

Lines Matching refs:drv

204 static int wired_init_sockets(struct wpa_driver_wired_data *drv, u8 *own_addr)
212 drv->sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_PAE));
213 if (drv->sock < 0) {
218 if (eloop_register_read_sock(drv->sock, handle_read, drv->ctx, NULL)) {
224 os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name));
225 if (ioctl(drv->sock, SIOCGIFINDEX, &ifr) != 0) {
236 if (bind(drv->sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
242 if (wired_multicast_membership(drv->sock, ifr.ifr_ifindex,
250 os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name));
251 if (ioctl(drv->sock, SIOCGIFHWADDR, &ifr) != 0) {
264 if ((drv->dhcp_sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
269 if (eloop_register_read_sock(drv->dhcp_sock, handle_dhcp, drv->ctx,
280 if (setsockopt(drv->dhcp_sock, SOL_SOCKET, SO_REUSEADDR, (char *) &n,
285 if (setsockopt(drv->dhcp_sock, SOL_SOCKET, SO_BROADCAST, (char *) &n,
292 os_strlcpy(ifr.ifr_ifrn.ifrn_name, drv->ifname, IFNAMSIZ);
293 if (setsockopt(drv->dhcp_sock, SOL_SOCKET, SO_BINDTODEVICE,
299 if (bind(drv->dhcp_sock, (struct sockaddr *) &addr2,
316 struct wpa_driver_wired_data *drv = priv;
330 os_memcpy(hdr->dest, drv->use_pae_group_addr ? pae_group_addr : addr,
338 res = send(drv->sock, (u8 *) hdr, len, 0);
354 struct wpa_driver_wired_data *drv;
356 drv = os_zalloc(sizeof(struct wpa_driver_wired_data));
357 if (drv == NULL) {
362 drv->ctx = hapd;
363 os_strlcpy(drv->ifname, params->ifname, sizeof(drv->ifname));
364 drv->use_pae_group_addr = params->use_pae_group_addr;
366 if (wired_init_sockets(drv, params->own_addr)) {
367 os_free(drv);
371 return drv;
377 struct wpa_driver_wired_data *drv = priv;
379 if (drv->sock >= 0)
380 close(drv->sock);
382 if (drv->dhcp_sock >= 0)
383 close(drv->dhcp_sock);
385 os_free(drv);
512 struct wpa_driver_wired_data *drv;
515 drv = os_zalloc(sizeof(*drv));
516 if (drv == NULL)
518 os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
519 drv->ctx = ctx;
522 drv->pf_sock = socket(PF_PACKET, SOCK_DGRAM, 0);
523 if (drv->pf_sock < 0)
526 drv->pf_sock = -1;
532 drv->iff_up = 1;
535 if (wired_multicast_membership(drv->pf_sock,
536 if_nametoindex(drv->ifname),
540 drv->membership = 1;
544 drv->multi = 1;
548 os_free(drv);
557 os_free(drv);
562 drv->iff_allmulti = 1;
565 return drv;
571 struct wpa_driver_wired_data *drv = priv;
574 if (drv->membership &&
575 wired_multicast_membership(drv->pf_sock,
576 if_nametoindex(drv->ifname),
582 if (drv->multi &&
583 wpa_driver_wired_multi(drv->ifname, pae_group_addr, 0) < 0) {
588 if (drv->iff_allmulti &&
589 (wpa_driver_wired_get_ifflags(drv->ifname, &flags) < 0 ||
590 wpa_driver_wired_set_ifflags(drv->ifname,
596 if (drv->iff_up &&
597 wpa_driver_wired_get_ifflags(drv->ifname, &flags) == 0 &&
599 wpa_driver_wired_set_ifflags(drv->ifname, flags & ~IFF_UP) < 0) {
604 if (drv->pf_sock != -1)
605 close(drv->pf_sock);
607 os_free(drv);