Author: tuexen
Date: Tue Jul  4 18:24:50 2017
New Revision: 320653
URL: https://svnweb.freebsd.org/changeset/base/320653

Log:
  Move to open state after plausibility checks.
  
  When doing this too early, the MIB counters go wrong.
  
  MFC after:    1 week

Modified:
  head/sys/netinet/sctp_input.c

Modified: head/sys/netinet/sctp_input.c
==============================================================================
--- head/sys/netinet/sctp_input.c       Tue Jul  4 18:23:17 2017        
(r320652)
+++ head/sys/netinet/sctp_input.c       Tue Jul  4 18:24:50 2017        
(r320653)
@@ -2252,17 +2252,6 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, in
                        stcb->asoc.authenticated = 1;
                }
        }
-       /* update current state */
-       SCTPDBG(SCTP_DEBUG_INPUT2, "moving to OPEN state\n");
-       SCTP_SET_STATE(asoc, SCTP_STATE_OPEN);
-       if (asoc->state & SCTP_STATE_SHUTDOWN_PENDING) {
-               sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD,
-                   stcb->sctp_ep, stcb, asoc->primary_destination);
-       }
-       sctp_stop_all_cookie_timers(stcb);
-       SCTP_STAT_INCR_COUNTER32(sctps_passiveestab);
-       SCTP_STAT_INCR_GAUGE32(sctps_currestab);
-
        /*
         * if we're doing ASCONFs, check to see if we have any new local
         * addresses that need to get added to the peer (eg. addresses
@@ -2309,6 +2298,17 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, in
 #endif
                return (NULL);
        }
+
+       /* update current state */
+       SCTPDBG(SCTP_DEBUG_INPUT2, "moving to OPEN state\n");
+       SCTP_SET_STATE(asoc, SCTP_STATE_OPEN);
+       if (asoc->state & SCTP_STATE_SHUTDOWN_PENDING) {
+               sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD,
+                   stcb->sctp_ep, stcb, asoc->primary_destination);
+       }
+       sctp_stop_all_cookie_timers(stcb);
+       SCTP_STAT_INCR_COUNTER32(sctps_passiveestab);
+       SCTP_STAT_INCR_GAUGE32(sctps_currestab);
 
        /* set up to notify upper layer */
        *notification = SCTP_NOTIFY_ASSOC_UP;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to