net/sctp/output.c
changeset 2 d1f6d8b6f81c
parent 0 aa628870c1d3
equal deleted inserted replaced
1:0056487c491e 2:d1f6d8b6f81c
   322 	 * before we send DATA.
   322 	 * before we send DATA.
   323 	 */
   323 	 */
   324 	switch (chunk->chunk_hdr->type) {
   324 	switch (chunk->chunk_hdr->type) {
   325 	    case SCTP_CID_DATA:
   325 	    case SCTP_CID_DATA:
   326 		retval = sctp_packet_append_data(packet, chunk);
   326 		retval = sctp_packet_append_data(packet, chunk);
       
   327 		if (SCTP_XMIT_OK != retval)
       
   328 			goto finish;
   327 		/* Disallow SACK bundling after DATA. */
   329 		/* Disallow SACK bundling after DATA. */
   328 		packet->has_sack = 1;
   330 		packet->has_sack = 1;
   329 		/* Disallow AUTH bundling after DATA */
   331 		/* Disallow AUTH bundling after DATA */
   330 		packet->has_auth = 1;
   332 		packet->has_auth = 1;
   331 		/* Let it be knows that packet has DATA in it */
   333 		/* Let it be knows that packet has DATA in it */
   332 		packet->has_data = 1;
   334 		packet->has_data = 1;
   333 		if (SCTP_XMIT_OK != retval)
   335 		/* timestamp the chunk for rtx purposes */
   334 			goto finish;
   336 		chunk->sent_at = jiffies;
   335 		break;
   337 		break;
   336 	    case SCTP_CID_COOKIE_ECHO:
   338 	    case SCTP_CID_COOKIE_ECHO:
   337 		packet->has_cookie_echo = 1;
   339 		packet->has_cookie_echo = 1;
   338 		break;
   340 		break;
   339 
   341 
   468 					tp->rto_pending = 1;
   470 					tp->rto_pending = 1;
   469 				}
   471 				}
   470 			} else
   472 			} else
   471 				chunk->resent = 1;
   473 				chunk->resent = 1;
   472 
   474 
   473 			chunk->sent_at = jiffies;
       
   474 			has_data = 1;
   475 			has_data = 1;
   475 		}
   476 		}
   476 
   477 
   477 		padding = WORD_ROUND(chunk->skb->len) - chunk->skb->len;
   478 		padding = WORD_ROUND(chunk->skb->len) - chunk->skb->len;
   478 		if (padding)
   479 		if (padding)