*ip=save_ip;
icmp_error(m, ICMP_UNREACH,code, 0,strerror(errno));
}
- tp = tcp_close(tp);
+ tcp_close(tp);
m_free(m);
} else {
/*
goto dropwithreset;
if (tiflags & TH_RST) {
- if (tiflags & TH_ACK)
- tp = tcp_drop(tp,0); /* XXX Check t_softerror! */
+ if (tiflags & TH_ACK) {
+ tcp_drop(tp, 0); /* XXX Check t_softerror! */
+ }
goto drop;
}
case TCPS_FIN_WAIT_2:
case TCPS_CLOSE_WAIT:
tp->t_state = TCPS_CLOSED;
- tp = tcp_close(tp);
+ tcp_close(tp);
goto drop;
case TCPS_CLOSING:
case TCPS_LAST_ACK:
case TCPS_TIME_WAIT:
- tp = tcp_close(tp);
+ tcp_close(tp);
goto drop;
}
*/
case TCPS_LAST_ACK:
if (ourfinisacked) {
- tp = tcp_close(tp);
+ tcp_close(tp);
goto drop;
}
break;
if ((ti->ti_len || (tiflags&TH_FIN)) &&
TCPS_HAVERCVDFIN(tp->t_state) == 0) {
TCP_REASS(tp, ti, m, so, tiflags);
- /*
- * Note the amount of data that peer has sent into
- * our window, in order to estimate the sender's
- * buffer size.
- */
- len = so->so_rcv.sb_datalen - (tp->rcv_adv - tp->rcv_nxt);
} else {
m_free(m);
tiflags &= ~TH_FIN;
struct sockaddr_in saddr, daddr;
struct mbuf *m;
struct tftp_t *tp;
- int nobytes;
m = m_get(spt->slirp);
daddr.sin_addr = spt->client_ip;
daddr.sin_port = spt->client_port;
- nobytes = 2;
-
m->m_len = sizeof(struct tftp_t) - 514 + 3 + strlen(msg) -
sizeof(struct ip) - sizeof(struct udphdr);