Lines Matching +full:multi +full:- +full:socket
3 * Copyright (c) 2005-2009, Jouni Malinen <j@w1.fi>
38 s = socket(PF_INET, SOCK_DGRAM, 0); in driver_wired_get_ifflags()
40 wpa_printf(MSG_ERROR, "socket: %s", strerror(errno)); in driver_wired_get_ifflags()
41 return -1; in driver_wired_get_ifflags()
50 return -1; in driver_wired_get_ifflags()
63 s = socket(PF_INET, SOCK_DGRAM, 0); in driver_wired_set_ifflags()
65 wpa_printf(MSG_ERROR, "socket: %s", strerror(errno)); in driver_wired_set_ifflags()
66 return -1; in driver_wired_set_ifflags()
76 return -1; in driver_wired_set_ifflags()
89 return -1; in driver_wired_multi()
92 s = socket(PF_INET, SOCK_DGRAM, 0); in driver_wired_multi()
94 wpa_printf(MSG_ERROR, "socket: %s", strerror(errno)); in driver_wired_multi()
95 return -1; in driver_wired_multi()
109 dlp->sdl_len = sizeof(struct sockaddr_dl); in driver_wired_multi()
110 dlp->sdl_family = AF_LINK; in driver_wired_multi()
111 dlp->sdl_index = 0; in driver_wired_multi()
112 dlp->sdl_nlen = 0; in driver_wired_multi()
113 dlp->sdl_alen = ETH_ALEN; in driver_wired_multi()
114 dlp->sdl_slen = 0; in driver_wired_multi()
123 sap->sa_len = sizeof(struct sockaddr); in driver_wired_multi()
124 sap->sa_family = AF_UNSPEC; in driver_wired_multi()
125 os_memcpy(sap->sa_data, addr, ETH_ALEN); in driver_wired_multi()
130 wpa_printf(MSG_ERROR, "ioctl[SIOC{ADD/DEL}MULTI]: %s", in driver_wired_multi()
133 return -1; in driver_wired_multi()
146 return -1; in wired_multicast_membership()
158 return -1; in wired_multicast_membership()
162 return -1; in wired_multicast_membership()
185 capa->flags = WPA_DRIVER_FLAGS_WIRED; in driver_wired_get_capa()
196 s = socket(PF_INET, SOCK_DGRAM, 0); in driver_wired_get_ifstatus()
198 wpa_printf(MSG_ERROR, "socket: %s", strerror(errno)); in driver_wired_get_ifstatus()
199 return -1; in driver_wired_get_ifstatus()
208 return -1; in driver_wired_get_ifstatus()
224 os_strlcpy(common->ifname, ifname, sizeof(common->ifname)); in driver_wired_init_common()
225 common->ctx = ctx; in driver_wired_init_common()
228 common->pf_sock = socket(PF_PACKET, SOCK_DGRAM, 0); in driver_wired_init_common()
229 if (common->pf_sock < 0) in driver_wired_init_common()
230 wpa_printf(MSG_ERROR, "socket(PF_PACKET): %s", strerror(errno)); in driver_wired_init_common()
232 common->pf_sock = -1; in driver_wired_init_common()
238 common->iff_up = 1; in driver_wired_init_common()
240 if (wired_multicast_membership(common->pf_sock, in driver_wired_init_common()
241 if_nametoindex(common->ifname), in driver_wired_init_common()
244 "%s: Added multicast membership with packet socket", in driver_wired_init_common()
246 common->membership = 1; in driver_wired_init_common()
251 common->multi = 1; in driver_wired_init_common()
255 return -1; in driver_wired_init_common()
263 return -1; in driver_wired_init_common()
266 common->iff_allmulti = 1; in driver_wired_init_common()
288 if (common->membership && in driver_wired_deinit_common()
289 wired_multicast_membership(common->pf_sock, in driver_wired_deinit_common()
290 if_nametoindex(common->ifname), in driver_wired_deinit_common()
297 if (common->multi && in driver_wired_deinit_common()
298 driver_wired_multi(common->ifname, pae_group_addr, 0) < 0) { in driver_wired_deinit_common()
304 if (common->iff_allmulti && in driver_wired_deinit_common()
305 (driver_wired_get_ifflags(common->ifname, &flags) < 0 || in driver_wired_deinit_common()
306 driver_wired_set_ifflags(common->ifname, in driver_wired_deinit_common()
312 if (common->iff_up && in driver_wired_deinit_common()
313 driver_wired_get_ifflags(common->ifname, &flags) == 0 && in driver_wired_deinit_common()
315 driver_wired_set_ifflags(common->ifname, flags & ~IFF_UP) < 0) { in driver_wired_deinit_common()
320 if (common->pf_sock != -1) in driver_wired_deinit_common()
321 close(common->pf_sock); in driver_wired_deinit_common()