Lines Matching refs:addr

34 			      union sctp_addr *addr, enum sctp_scope scope,
48 struct sctp_sockaddr_entry *addr;
55 list_for_each_entry(addr, &src->address_list, list) {
56 error = sctp_copy_one_addr(net, dest, &addr->a, scope,
67 list_for_each_entry(addr, &src->address_list, list) {
68 error = sctp_copy_one_addr(net, dest, &addr->a,
98 struct sctp_sockaddr_entry *addr;
104 list_for_each_entry(addr, &src->address_list, list) {
105 error = sctp_add_bind_addr(dest, &addr->a, sizeof(addr->a),
126 struct sctp_sockaddr_entry *addr, *temp;
129 list_for_each_entry_safe(addr, temp, &bp->address_list, list) {
130 list_del_rcu(&addr->list);
131 kfree_rcu(addr, rcu);
132 SCTP_DBG_OBJCNT_DEC(addr);
147 struct sctp_sockaddr_entry *addr;
150 addr = kzalloc(sizeof(*addr), gfp);
151 if (!addr)
154 memcpy(&addr->a, new, min_t(size_t, sizeof(*new), new_size));
159 if (!addr->a.v4.sin_port)
160 addr->a.v4.sin_port = htons(bp->port);
162 addr->state = addr_state;
163 addr->valid = 1;
165 INIT_LIST_HEAD(&addr->list);
170 list_add_tail_rcu(&addr->list, &bp->address_list);
171 SCTP_DBG_OBJCNT_INC(addr);
181 struct sctp_sockaddr_entry *addr, *temp;
187 list_for_each_entry_safe(addr, temp, &bp->address_list, list) {
188 if (sctp_cmp_addr_exact(&addr->a, del_addr)) {
191 addr->valid = 0;
192 list_del_rcu(&addr->list);
198 kfree_rcu(addr, rcu);
199 SCTP_DBG_OBJCNT_DEC(addr);
220 struct sctp_sockaddr_entry *addr;
246 list_for_each_entry(addr, &bp->address_list, list) {
247 af = sctp_get_af_specific(addr->a.v4.sin_family);
248 len = af->to_addr_param(&addr->a, &rawaddr);
268 union sctp_addr addr;
280 !af->from_addr_param(&addr, rawaddr, htons(port), 0)) {
285 if (sctp_bind_addr_state(bp, &addr) != -1)
287 retval = sctp_add_bind_addr(bp, &addr, sizeof(addr),
314 const union sctp_addr *addr,
324 if (opt->pf->cmp_addr(&laddr->a, addr, opt)) {
362 /* Does the address 'addr' conflict with any addresses in
366 const union sctp_addr *addr,
390 conflict = sp->pf->cmp_addr(&laddr->a, addr, sp);
401 const union sctp_addr *addr)
406 af = sctp_get_af_specific(addr->sa.sa_family);
413 if (af->cmp_addr(&laddr->a, addr))
429 union sctp_addr *addr;
441 addr = addr_buf;
442 af = sctp_get_af_specific(addr->v4.sin_family);
446 if (opt->pf->cmp_addr(&laddr->a, addr, opt))
460 union sctp_addr *addr, enum sctp_scope scope,
465 if (sctp_is_any(NULL, addr)) {
467 } else if (sctp_in_scope(net, addr, scope)) {
472 if ((((AF_INET == addr->sa.sa_family) &&
475 (((AF_INET6 == addr->sa.sa_family) &&
478 error = sctp_add_bind_addr(dest, addr, sizeof(*addr),
486 int sctp_is_any(struct sock *sk, const union sctp_addr *addr)
492 if (addr->sa.sa_family != AF_UNSPEC)
493 fam = addr->sa.sa_family;
501 return af->is_any(addr);
504 /* Is 'addr' valid for 'scope'? */
505 int sctp_in_scope(struct net *net, const union sctp_addr *addr,
508 enum sctp_scope addr_scope = sctp_scope(addr);
549 struct sctp_sockaddr_entry *addr;
553 addr = list_entry(bp->address_list.next,
555 if (sctp_is_any(sk, &addr->a))
565 /* What is the scope of 'addr'? */
566 enum sctp_scope sctp_scope(const union sctp_addr *addr)
570 af = sctp_get_af_specific(addr->sa.sa_family);
574 return af->scope((union sctp_addr *)addr);