mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
net: add a new bind_add method
The SCTP protocol allows to bind multiple address to a socket. That feature is currently only exposed as a socket option. Add a bind_add method struct proto that allows to bind additional addresses, and switch the dlm code to use the method instead of going through the socket option from kernel space. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
05bfd36614
commit
c0425a4249
4 changed files with 30 additions and 7 deletions
|
@ -1052,6 +1052,18 @@ static int sctp_setsockopt_bindx(struct sock *sk,
|
|||
return err;
|
||||
}
|
||||
|
||||
static int sctp_bind_add(struct sock *sk, struct sockaddr *addrs,
|
||||
int addrlen)
|
||||
{
|
||||
int err;
|
||||
|
||||
lock_sock(sk);
|
||||
err = sctp_setsockopt_bindx_kernel(sk, addrs, addrlen,
|
||||
SCTP_BINDX_ADD_ADDR);
|
||||
release_sock(sk);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int sctp_connect_new_asoc(struct sctp_endpoint *ep,
|
||||
const union sctp_addr *daddr,
|
||||
const struct sctp_initmsg *init,
|
||||
|
@ -9620,6 +9632,7 @@ struct proto sctp_prot = {
|
|||
.sendmsg = sctp_sendmsg,
|
||||
.recvmsg = sctp_recvmsg,
|
||||
.bind = sctp_bind,
|
||||
.bind_add = sctp_bind_add,
|
||||
.backlog_rcv = sctp_backlog_rcv,
|
||||
.hash = sctp_hash,
|
||||
.unhash = sctp_unhash,
|
||||
|
@ -9662,6 +9675,7 @@ struct proto sctpv6_prot = {
|
|||
.sendmsg = sctp_sendmsg,
|
||||
.recvmsg = sctp_recvmsg,
|
||||
.bind = sctp_bind,
|
||||
.bind_add = sctp_bind_add,
|
||||
.backlog_rcv = sctp_backlog_rcv,
|
||||
.hash = sctp_hash,
|
||||
.unhash = sctp_unhash,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue