Lines Matching refs:ifs

108     struct ifaddrs_storage *ifs, *ifs0 = NULL;
129 ifs = calloc(1, sizeof(struct ifaddrs_storage) + stats_len);
130 if (ifs == 0)
134 ifs->index = ifi->ifi_index;
135 ifs->ifa.ifa_flags = ifi->ifi_flags;
140 if (RTA_DATALEN(rta) < sizeof(ifs->name)) {
141 memcpy(ifs->name, RTA_DATA(rta), RTA_DATALEN(rta));
142 ifs->ifa.ifa_name = ifs->name;
146 copy_lladdr(&ifs->ifa.ifa_addr, &ifs->addr, RTA_DATA(rta), RTA_DATALEN(rta),
150 copy_lladdr(&ifs->ifa.ifa_broadaddr, &ifs->ifu, RTA_DATA(rta), RTA_DATALEN(rta),
154 ifs->ifa.ifa_data = (void*)(ifs + 1);
155 memcpy(ifs->ifa.ifa_data, RTA_DATA(rta), RTA_DATALEN(rta));
159 if (ifs->ifa.ifa_name) {
160 unsigned int bucket = ifs->index % IFADDRS_HASH_SIZE;
161 ifs->hash_next = ctx->hash[bucket];
162 ctx->hash[bucket] = ifs;
165 ifs->ifa.ifa_name = ifs0->ifa.ifa_name;
166 ifs->ifa.ifa_flags = ifs0->ifa.ifa_flags;
172 if (ifs->ifa.ifa_addr)
173 copy_addr(&ifs->ifa.ifa_dstaddr, ifa->ifa_family, &ifs->ifu, RTA_DATA(rta),
176 copy_addr(&ifs->ifa.ifa_addr, ifa->ifa_family, &ifs->addr, RTA_DATA(rta),
180 copy_addr(&ifs->ifa.ifa_broadaddr, ifa->ifa_family, &ifs->ifu, RTA_DATA(rta),
186 if (ifs->ifa.ifa_addr) {
187 ifs->ifu = ifs->addr;
188 ifs->ifa.ifa_dstaddr = &ifs->ifu.sa;
189 memset(&ifs->addr, 0, sizeof(ifs->addr));
191 copy_addr(&ifs->ifa.ifa_addr, ifa->ifa_family, &ifs->addr, RTA_DATA(rta),
195 if (RTA_DATALEN(rta) < sizeof(ifs->name)) {
196 memcpy(ifs->name, RTA_DATA(rta), RTA_DATALEN(rta));
197 ifs->ifa.ifa_name = ifs->name;
202 if (ifs->ifa.ifa_addr)
203 gen_netmask(&ifs->ifa.ifa_netmask, ifa->ifa_family, &ifs->netmask, ifa->ifa_prefixlen);
206 if (ifs->ifa.ifa_name) {
208 ctx->first = ifs;
210 ctx->last->ifa.ifa_next = &ifs->ifa;
211 ctx->last = ifs;
213 free(ifs);