svn commit: r266064 - stable/9/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Wed May 14 18:15:55 UTC 2014


Author: tuexen
Date: Wed May 14 18:15:55 2014
New Revision: 266064
URL: http://svnweb.freebsd.org/changeset/base/266064

Log:
  MFC r258235:
  
  Use SCTP_PR_SCTP_TTL when the user provides a positive
  timetolive in sctp_sendmsg().

Modified:
  stable/9/sys/netinet/sctp_output.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/netinet/sctp_output.c
==============================================================================
--- stable/9/sys/netinet/sctp_output.c	Wed May 14 18:14:17 2014	(r266063)
+++ stable/9/sys/netinet/sctp_output.c	Wed May 14 18:15:55 2014	(r266064)
@@ -3389,7 +3389,11 @@ sctp_find_cmsg(int c_type, void *data, s
 						return (found);
 					}
 					m_copydata(control, at + CMSG_ALIGN(sizeof(cmh)), sizeof(struct sctp_prinfo), (caddr_t)&prinfo);
-					sndrcvinfo->sinfo_timetolive = prinfo.pr_value;
+					if (prinfo.pr_policy != SCTP_PR_SCTP_NONE) {
+						sndrcvinfo->sinfo_timetolive = prinfo.pr_value;
+					} else {
+						sndrcvinfo->sinfo_timetolive = 0;
+					}
 					sndrcvinfo->sinfo_flags |= prinfo.pr_policy;
 					break;
 				case SCTP_AUTHINFO:
@@ -6078,13 +6082,13 @@ sctp_set_prsctp_policy(struct sctp_strea
 {
 	/*
 	 * We assume that the user wants PR_SCTP_TTL if the user provides a
-	 * positive lifetime but does not specify any PR_SCTP policy. This
-	 * is a BAD assumption and causes problems at least with the
-	 * U-Vancovers MPI folks. I will change this to be no policy means
-	 * NO PR-SCTP.
+	 * positive lifetime but does not specify any PR_SCTP policy.
 	 */
 	if (PR_SCTP_ENABLED(sp->sinfo_flags)) {
 		sp->act_flags |= PR_SCTP_POLICY(sp->sinfo_flags);
+	} else if (sp->timetolive > 0) {
+		sp->sinfo_flags |= SCTP_PR_SCTP_TTL;
+		sp->act_flags |= PR_SCTP_POLICY(sp->sinfo_flags);
 	} else {
 		return;
 	}


More information about the svn-src-stable-9 mailing list