Lines Matching refs:addrs
506 static int sctp_bindx_add(struct sock *sk, struct sockaddr *addrs, int addrcnt) in sctp_bindx_add() argument
515 addrs, addrcnt); in sctp_bindx_add()
517 addr_buf = addrs; in sctp_bindx_add()
538 sctp_bindx_rem(sk, addrs, cnt); in sctp_bindx_add()
557 struct sockaddr *addrs, in sctp_send_asconf_add_ip() argument
581 __func__, sk, addrs, addrcnt); in sctp_send_asconf_add_ip()
598 addr_buf = addrs; in sctp_send_asconf_add_ip()
621 chunk = sctp_make_asconf_update_ip(asoc, &laddr->a, addrs, in sctp_send_asconf_add_ip()
631 addr_buf = addrs; in sctp_send_asconf_add_ip()
679 static int sctp_bindx_rem(struct sock *sk, struct sockaddr *addrs, int addrcnt) in sctp_bindx_rem() argument
691 __func__, sk, addrs, addrcnt); in sctp_bindx_rem()
693 addr_buf = addrs; in sctp_bindx_rem()
740 sctp_bindx_add(sk, addrs, cnt); in sctp_bindx_rem()
759 struct sockaddr *addrs, in sctp_send_asconf_del_ip() argument
784 __func__, sk, addrs, addrcnt); in sctp_send_asconf_del_ip()
802 addr_buf = addrs; in sctp_send_asconf_del_ip()
825 laddr = sctp_find_unmatch_addr(bp, (union sctp_addr *)addrs, in sctp_send_asconf_del_ip()
837 addrs->sa_family; in sctp_send_asconf_del_ip()
840 if (addrs->sa_family == AF_INET) { in sctp_send_asconf_del_ip()
843 sin = (struct sockaddr_in *)addrs; in sctp_send_asconf_del_ip()
845 } else if (addrs->sa_family == AF_INET6) { in sctp_send_asconf_del_ip()
848 sin6 = (struct sockaddr_in6 *)addrs; in sctp_send_asconf_del_ip()
868 chunk = sctp_make_asconf_update_ip(asoc, laddr, addrs, addrcnt, in sctp_send_asconf_del_ip()
879 addr_buf = addrs; in sctp_send_asconf_del_ip()
1000 static int sctp_setsockopt_bindx(struct sock *sk, struct sockaddr *addrs, in sctp_setsockopt_bindx() argument
1007 void *addr_buf = addrs; in sctp_setsockopt_bindx()
1039 addrs, addrs_size); in sctp_setsockopt_bindx()
1042 err = sctp_bindx_add(sk, addrs, addrcnt); in sctp_setsockopt_bindx()
1045 return sctp_send_asconf_add_ip(sk, addrs, addrcnt); in sctp_setsockopt_bindx()
1047 err = sctp_bindx_rem(sk, addrs, addrcnt); in sctp_setsockopt_bindx()
1050 return sctp_send_asconf_del_ip(sk, addrs, addrcnt); in sctp_setsockopt_bindx()
1057 static int sctp_bind_add(struct sock *sk, struct sockaddr *addrs, in sctp_bind_add() argument
1063 err = sctp_setsockopt_bindx(sk, addrs, addrlen, SCTP_BINDX_ADD_ADDR); in sctp_bind_add()
1384 compat_uptr_t addrs; /* struct sockaddr * */ member
1408 param.addrs = compat_ptr(param32.addrs); in sctp_getsockopt_connectx3()
1418 kaddrs = memdup_user(param.addrs, param.addr_num); in sctp_getsockopt_connectx3()
6171 to = optval + offsetof(struct sctp_getaddrs, addrs); in sctp_getsockopt_peer_addrs()
6172 space_left = len - offsetof(struct sctp_getaddrs, addrs); in sctp_getsockopt_peer_addrs()
6257 void *addrs; in sctp_getsockopt_local_addrs() local
6281 to = optval + offsetof(struct sctp_getaddrs, addrs); in sctp_getsockopt_local_addrs()
6282 space_left = len - offsetof(struct sctp_getaddrs, addrs); in sctp_getsockopt_local_addrs()
6284 addrs = kmalloc(space_left, GFP_USER | __GFP_NOWARN); in sctp_getsockopt_local_addrs()
6285 if (!addrs) in sctp_getsockopt_local_addrs()
6295 cnt = sctp_copy_laddrs(sk, bp->port, addrs, in sctp_getsockopt_local_addrs()
6305 buf = addrs; in sctp_getsockopt_local_addrs()
6326 if (copy_to_user(to, addrs, bytes_copied)) { in sctp_getsockopt_local_addrs()
6340 kfree(addrs); in sctp_getsockopt_local_addrs()