Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: ECONNREFUSED no longer works
On Mon, Oct 31, 2022 at 6:12 AM Michael van Elst <mlelstv%serpens.de@localhost> wrote:
>
> tnn%NetBSD.org@localhost (Tobias Nygren) writes:
>
> >$ nc -n -v 127.0.0.1 1234
> ># hangs forever in connect(2) instead of exiting w/ connection refused.
>
> The logic in tcp_drop() got reversed:
>
> @@ -1042,17 +1017,12 @@ tcp_newtcpcb(int family, void *aux)
> struct tcpcb *
> tcp_drop(struct tcpcb *tp, int errno)
> {
> - struct socket *so = NULL;
> + struct socket *so;
>
> - KASSERT(!(tp->t_inpcb && tp->t_in6pcb));
> + KASSERT(tp->t_inpcb != NULL);
>
> - if (tp->t_inpcb)
> - so = tp->t_inpcb->inp_socket;
> -#ifdef INET6
> - if (tp->t_in6pcb)
> - so = tp->t_in6pcb->in6p_socket;
> -#endif
> - if (!so)
> + so = tp->t_inpcb->inp_socket;
> + if (so != NULL) <-------------
> return NULL;
>
> if (TCPS_HAVERCVDSYN(tp->t_state)) {
>
Thank you for pointing this out. I've committed a fix.
ozaki-r
Home |
Main Index |
Thread Index |
Old Index