-#endif
- break;
-
-#ifdef TCPTRUEOOB
- case TCPOPT_WILLOOB:
- tp->t_flags |= TF_DOOOB;
-printf("tp %x dooob\n", tp);
- break;
-
- case TCPOPT_OOBDATA: {
- int seq;
- register struct socket *so = tp->t_inpcb->inp_socket;
- tcp_seq mark;
-
- if (optlen != 8)
- continue;
- seq = cp[2];
- if (seq < tp->t_iobseq)
- seq += 256;
-printf("oobdata cp[2] %d iobseq %d seq %d\n", cp[2], tp->t_iobseq, seq);
- if (seq - tp->t_iobseq > 128) {
-printf("bad seq\n");
- tp->t_oobflags |= TCPOOB_OWEACK;
- break;
- }
- tp->t_iobseq = cp[2];
- tp->t_iobc = cp[3];
- mark = *(tcp_seq *)(cp + 4);
-#if vax || pdp11
- mark = ntohl(mark);
-#endif
- so->so_oobmark = so->so_rcv.sb_cc + (mark-tp->rcv_nxt);
- if (so->so_oobmark == 0)
- so->so_state |= SS_RCVATMARK;
-printf("take oob data %x input iobseq now %x\n", tp->t_iobc, tp->t_iobseq);
- sohasoutofband(so);