On Mon, Aug 22, 2022 at 05:55:48PM +0300, Vitaliy Makkoveev wrote:
> +/*
> + * Mark the connection as being incapable of further output.
> + */
> +int
> +tcp_shutdown(struct socket *so)
> +{
> +     struct inpcb *inp;
> +     struct tcpcb *tp, *otp = NULL;
> +     int error;
> +     short ostate;
> +
> +     soassertlocked(so);
> +
> +     if ((error = tcp_sogetpcb(so, &inp, &tp)))
> +             return (error);
> +
> +     if (so->so_options & SO_DEBUG) {
> +             otp = tp;
> +             ostate = tp->t_state;
> +     }
> +
> +     if (so->so_state & SS_CANTSENDMORE)
> +             goto out;
> +
> +     socantsendmore(so);
> +     tp = tcp_usrclosed(tp);
> +     if (tp)
> +             error = tcp_output(tp);
> +
> +out:
> +     if (otp)
> +             tcp_trace(TA_USER, ostate, tp, otp, NULL, PRU_SHUTDOWN, 0);
>       return (0);

This must be return (error).

>  }

Reply via email to