Lines Matching refs:addr
34 union sctp_addr *addr, enum sctp_scope scope,
48 struct sctp_sockaddr_entry *addr; in sctp_bind_addr_copy() local
55 list_for_each_entry(addr, &src->address_list, list) { in sctp_bind_addr_copy()
56 error = sctp_copy_one_addr(net, dest, &addr->a, scope, in sctp_bind_addr_copy()
67 list_for_each_entry(addr, &src->address_list, list) { in sctp_bind_addr_copy()
68 error = sctp_copy_one_addr(net, dest, &addr->a, in sctp_bind_addr_copy()
92 struct sctp_sockaddr_entry *addr; in sctp_bind_addr_dup() local
98 list_for_each_entry(addr, &src->address_list, list) { in sctp_bind_addr_dup()
99 error = sctp_add_bind_addr(dest, &addr->a, sizeof(addr->a), in sctp_bind_addr_dup()
120 struct sctp_sockaddr_entry *addr, *temp; in sctp_bind_addr_clean() local
123 list_for_each_entry_safe(addr, temp, &bp->address_list, list) { in sctp_bind_addr_clean()
124 list_del_rcu(&addr->list); in sctp_bind_addr_clean()
125 kfree_rcu(addr, rcu); in sctp_bind_addr_clean()
126 SCTP_DBG_OBJCNT_DEC(addr); in sctp_bind_addr_clean()
141 struct sctp_sockaddr_entry *addr; in sctp_add_bind_addr() local
144 addr = kzalloc(sizeof(*addr), gfp); in sctp_add_bind_addr()
145 if (!addr) in sctp_add_bind_addr()
148 memcpy(&addr->a, new, min_t(size_t, sizeof(*new), new_size)); in sctp_add_bind_addr()
153 if (!addr->a.v4.sin_port) in sctp_add_bind_addr()
154 addr->a.v4.sin_port = htons(bp->port); in sctp_add_bind_addr()
156 addr->state = addr_state; in sctp_add_bind_addr()
157 addr->valid = 1; in sctp_add_bind_addr()
159 INIT_LIST_HEAD(&addr->list); in sctp_add_bind_addr()
164 list_add_tail_rcu(&addr->list, &bp->address_list); in sctp_add_bind_addr()
165 SCTP_DBG_OBJCNT_INC(addr); in sctp_add_bind_addr()
175 struct sctp_sockaddr_entry *addr, *temp; in sctp_del_bind_addr() local
181 list_for_each_entry_safe(addr, temp, &bp->address_list, list) { in sctp_del_bind_addr()
182 if (sctp_cmp_addr_exact(&addr->a, del_addr)) { in sctp_del_bind_addr()
185 addr->valid = 0; in sctp_del_bind_addr()
186 list_del_rcu(&addr->list); in sctp_del_bind_addr()
192 kfree_rcu(addr, rcu); in sctp_del_bind_addr()
193 SCTP_DBG_OBJCNT_DEC(addr); in sctp_del_bind_addr()
214 struct sctp_sockaddr_entry *addr; in sctp_bind_addrs_to_raw() local
240 list_for_each_entry(addr, &bp->address_list, list) { in sctp_bind_addrs_to_raw()
241 af = sctp_get_af_specific(addr->a.v4.sin_family); in sctp_bind_addrs_to_raw()
242 len = af->to_addr_param(&addr->a, &rawaddr); in sctp_bind_addrs_to_raw()
262 union sctp_addr addr; in sctp_raw_to_bind_addrs() local
274 !af->from_addr_param(&addr, rawaddr, htons(port), 0)) { in sctp_raw_to_bind_addrs()
279 if (sctp_bind_addr_state(bp, &addr) != -1) in sctp_raw_to_bind_addrs()
281 retval = sctp_add_bind_addr(bp, &addr, sizeof(addr), in sctp_raw_to_bind_addrs()
308 const union sctp_addr *addr, in sctp_bind_addr_match() argument
318 if (opt->pf->cmp_addr(&laddr->a, addr, opt)) { in sctp_bind_addr_match()
360 const union sctp_addr *addr, in sctp_bind_addr_conflict() argument
384 conflict = sp->pf->cmp_addr(&laddr->a, addr, sp); in sctp_bind_addr_conflict()
395 const union sctp_addr *addr) in sctp_bind_addr_state() argument
400 af = sctp_get_af_specific(addr->sa.sa_family); in sctp_bind_addr_state()
407 if (af->cmp_addr(&laddr->a, addr)) in sctp_bind_addr_state()
423 union sctp_addr *addr; in sctp_find_unmatch_addr() local
435 addr = addr_buf; in sctp_find_unmatch_addr()
436 af = sctp_get_af_specific(addr->v4.sin_family); in sctp_find_unmatch_addr()
440 if (opt->pf->cmp_addr(&laddr->a, addr, opt)) in sctp_find_unmatch_addr()
454 union sctp_addr *addr, enum sctp_scope scope, in sctp_copy_one_addr() argument
459 if (sctp_is_any(NULL, addr)) { in sctp_copy_one_addr()
461 } else if (sctp_in_scope(net, addr, scope)) { in sctp_copy_one_addr()
466 if ((((AF_INET == addr->sa.sa_family) && in sctp_copy_one_addr()
469 (((AF_INET6 == addr->sa.sa_family) && in sctp_copy_one_addr()
472 error = sctp_add_bind_addr(dest, addr, sizeof(*addr), in sctp_copy_one_addr()
480 int sctp_is_any(struct sock *sk, const union sctp_addr *addr) in sctp_is_any() argument
486 if (addr->sa.sa_family != AF_UNSPEC) in sctp_is_any()
487 fam = addr->sa.sa_family; in sctp_is_any()
495 return af->is_any(addr); in sctp_is_any()
499 int sctp_in_scope(struct net *net, const union sctp_addr *addr, in sctp_in_scope() argument
502 enum sctp_scope addr_scope = sctp_scope(addr); in sctp_in_scope()
543 struct sctp_sockaddr_entry *addr; in sctp_is_ep_boundall() local
547 addr = list_entry(bp->address_list.next, in sctp_is_ep_boundall()
549 if (sctp_is_any(sk, &addr->a)) in sctp_is_ep_boundall()
560 enum sctp_scope sctp_scope(const union sctp_addr *addr) in sctp_scope() argument
564 af = sctp_get_af_specific(addr->sa.sa_family); in sctp_scope()
568 return af->scope((union sctp_addr *)addr); in sctp_scope()