aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sctp/sm_make_chunk.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 17cb400ecd6a..33aed1c6cbd6 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -419,10 +419,17 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
419 if (!retval) 419 if (!retval)
420 goto nomem_chunk; 420 goto nomem_chunk;
421 421
422 /* Per the advice in RFC 2960 6.4, send this reply to 422 /* RFC 2960 6.4 Multi-homed SCTP Endpoints
423 * the source of the INIT packet. 423 *
424 * An endpoint SHOULD transmit reply chunks (e.g., SACK,
425 * HEARTBEAT ACK, * etc.) to the same destination transport
426 * address from which it received the DATA or control chunk
427 * to which it is replying.
428 *
429 * [INIT ACK back to where the INIT came from.]
424 */ 430 */
425 retval->transport = chunk->transport; 431 retval->transport = chunk->transport;
432
426 retval->subh.init_hdr = 433 retval->subh.init_hdr =
427 sctp_addto_chunk(retval, sizeof(initack), &initack); 434 sctp_addto_chunk(retval, sizeof(initack), &initack);
428 retval->param_hdr.v = sctp_addto_chunk(retval, addrs_len, addrs.v); 435 retval->param_hdr.v = sctp_addto_chunk(retval, addrs_len, addrs.v);
@@ -461,18 +468,6 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
461 /* We need to remove the const qualifier at this point. */ 468 /* We need to remove the const qualifier at this point. */
462 retval->asoc = (struct sctp_association *) asoc; 469 retval->asoc = (struct sctp_association *) asoc;
463 470
464 /* RFC 2960 6.4 Multi-homed SCTP Endpoints
465 *
466 * An endpoint SHOULD transmit reply chunks (e.g., SACK,
467 * HEARTBEAT ACK, * etc.) to the same destination transport
468 * address from which it received the DATA or control chunk
469 * to which it is replying.
470 *
471 * [INIT ACK back to where the INIT came from.]
472 */
473 if (chunk)
474 retval->transport = chunk->transport;
475
476nomem_chunk: 471nomem_chunk:
477 kfree(cookie); 472 kfree(cookie);
478nomem_cookie: 473nomem_cookie: