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;
        }
_______________________________________________
svn-src-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to