svn commit: r294995 - head/sys/netinet

Oliver Pinter oliver.pinter at hardenedbsd.org
Thu Jan 28 22:24:27 UTC 2016


On Thu, Jan 28, 2016 at 5:05 PM, Michael Tuexen <tuexen at freebsd.org> wrote:
> Author: tuexen
> Date: Thu Jan 28 16:05:46 2016
> New Revision: 294995
> URL: https://svnweb.freebsd.org/changeset/base/294995
>
> Log:
>   Always look in the TCP pool.
>   This fixes issues with a restarting peer when the listening
>   1-to-1 style socket is closed.
>
>   MFC after: 3 days
>
> Modified:
>   head/sys/netinet/sctp_input.c
>   head/sys/netinet/sctp_pcb.c
>
> Modified: head/sys/netinet/sctp_input.c
> ==============================================================================
> --- head/sys/netinet/sctp_input.c       Thu Jan 28 15:44:14 2016        (r294994)
> +++ head/sys/netinet/sctp_input.c       Thu Jan 28 16:05:46 2016        (r294995)
> @@ -5688,6 +5688,7 @@ sctp_common_input_processing(struct mbuf
>                                 if (net->port == 0) {
>                                         sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr));
>                                 }
> +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port));

Are these debug printf intended?

>                                 net->port = port;
>                         }
>  #endif
> @@ -5719,6 +5720,7 @@ sctp_common_input_processing(struct mbuf
>                 if (net->port == 0) {
>                         sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr));
>                 }
> +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port));
>                 net->port = port;
>         }
>  #endif
> @@ -5831,6 +5833,7 @@ sctp_common_input_processing(struct mbuf
>                                 if (net->port == 0) {
>                                         sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr));
>                                 }
> +printf("Changing remote encaps port from %u to %u.\n", ntohs(net->port), ntohs(port));
>                                 net->port = port;
>                         }
>  #endif
>
> Modified: head/sys/netinet/sctp_pcb.c
> ==============================================================================
> --- head/sys/netinet/sctp_pcb.c Thu Jan 28 15:44:14 2016        (r294994)
> +++ head/sys/netinet/sctp_pcb.c Thu Jan 28 16:05:46 2016        (r294995)
> @@ -2256,7 +2256,6 @@ sctp_findassociation_addr(struct mbuf *m
>      struct sctphdr *sh, struct sctp_chunkhdr *ch,
>      struct sctp_inpcb **inp_p, struct sctp_nets **netp, uint32_t vrf_id)
>  {
> -       int find_tcp_pool;
>         struct sctp_tcb *stcb;
>         struct sctp_inpcb *inp;
>
> @@ -2268,25 +2267,13 @@ sctp_findassociation_addr(struct mbuf *m
>                         return (stcb);
>                 }
>         }
> -       find_tcp_pool = 0;
> -       /*
> -        * Don't consider INIT chunks since that breaks 1-to-1 sockets: When
> -        * a server closes the listener, incoming INIT chunks are not
> -        * responsed by an INIT-ACK chunk.
> -        */
> -       if ((ch->chunk_type != SCTP_INITIATION_ACK) &&
> -           (ch->chunk_type != SCTP_COOKIE_ACK) &&
> -           (ch->chunk_type != SCTP_COOKIE_ECHO)) {
> -               /* Other chunk types go to the tcp pool. */
> -               find_tcp_pool = 1;
> -       }
>         if (inp_p) {
>                 stcb = sctp_findassociation_addr_sa(src, dst, inp_p, netp,
> -                   find_tcp_pool, vrf_id);
> +                   1, vrf_id);
>                 inp = *inp_p;
>         } else {
>                 stcb = sctp_findassociation_addr_sa(src, dst, &inp, netp,
> -                   find_tcp_pool, vrf_id);
> +                   1, vrf_id);
>         }
>         SCTPDBG(SCTP_DEBUG_PCB1, "stcb:%p inp:%p\n", (void *)stcb, (void *)inp);
>         if (stcb == NULL && inp) {
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"


More information about the svn-src-head mailing list