SCTP: Pick the correct port when binding to 0.
sctp_bindx() allows the use of unspecified port. The problem is that every address we bind to ends up selecting a new port if the user specified port 0. This patch allows re-use of the already selected port when the port from bindx was 0. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
This commit is contained in:
@@ -353,6 +353,7 @@ SCTP_STATIC int sctp_do_bind(struct sock *sk, union sctp_addr *addr, int len)
|
|||||||
* The function sctp_get_port_local() does duplicate address
|
* The function sctp_get_port_local() does duplicate address
|
||||||
* detection.
|
* detection.
|
||||||
*/
|
*/
|
||||||
|
addr->v4.sin_port = htons(snum);
|
||||||
if ((ret = sctp_get_port_local(sk, addr))) {
|
if ((ret = sctp_get_port_local(sk, addr))) {
|
||||||
if (ret == (long) sk) {
|
if (ret == (long) sk) {
|
||||||
/* This endpoint has a conflicting address. */
|
/* This endpoint has a conflicting address. */
|
||||||
|
Reference in New Issue
Block a user