2 * ptti.c -- BSD style print_tcptpi() function for lsof library
7 * Copyright 1997 Purdue Research Foundation, West Lafayette, Indiana
8 * 47907. All rights reserved.
10 * Written by Victor A. Abell
12 * This software is not subject to any license of the American Telephone
13 * and Telegraph Company or the Regents of the University of California.
15 * Permission is granted to anyone to use this software for any purpose on
16 * any computer system, and to alter it and redistribute it freely, subject
17 * to the following restrictions:
19 * 1. Neither the authors nor Purdue University are responsible for any
20 * consequences of the use of this software.
22 * 2. The origin of this software must not be misrepresented, either by
23 * explicit claim or by omission. Credit to the authors and Purdue
24 * University must appear in documentation and sources.
26 * 3. Altered versions must be plainly marked as such, and must not be
27 * misrepresented as being the original software.
29 * 4. This notice may not be removed or altered.
33 #include "../machine.h"
35 #if defined(USE_LIB_PRINT_TCPTPI)
38 static char copyright[] =
39 "@(#) Copyright 1997 Purdue Research Foundation.\nAll rights reserved.\n";
40 static char *rcsid = "$Id: ptti.c,v 1.6 2008/10/21 16:13:23 abe Exp $";
41 # endif /* !defined(lint) */
43 #define TCPSTATES /* activate tcpstates[] */
48 * build_IPstates() -- build the TCP and UDP state tables
50 * Note: this module does not support a UDP state table.
58 * Set the TcpNstates global variable.
60 TcpNstates = TCP_NSTATES;
61 TcpSt = (char **)&tcpstates;
66 * print_tcptpi() - print TCP/TPI info
71 int nl; /* 1 == '\n' required */
76 if ((Ftcptpi & TCPTPI_STATE) && Lf->lts.type == 0) {
78 (void) printf("%cST=", LSOF_FID_TCPTPI);
82 (void) build_IPstates();
83 if ((s = Lf->lts.state.i) < 0 || s >= TcpNstates)
84 (void) printf("UNKNOWN_TCP_STATE_%d", s);
86 (void) fputs(TcpSt[s], stdout);
92 #if defined(HASTCPTPIQ)
93 if (Ftcptpi & TCPTPI_QUEUES) {
96 putchar(LSOF_FID_TCPTPI);
103 (void) printf("QR=%lu", Lf->lts.rq);
110 putchar(LSOF_FID_TCPTPI);
117 (void) printf("QS=%lu", Lf->lts.sq);
123 #endif /* defined(HASTCPTPIQ) */
125 #if defined(HASSOOPT)
126 if (Ftcptpi & TCPTPI_FLAGS) {
129 if ((opt = Lf->lts.opt)
130 || Lf->lts.pqlens || Lf->lts.qlens || Lf->lts.qlims
131 || Lf->lts.rbszs || Lf->lts.sbsz
136 sep = LSOF_FID_TCPTPI;
139 (void) printf("%cSO", sep);
143 # if defined(SO_ACCEPTCONN)
144 if (opt & SO_ACCEPTCONN) {
145 (void) printf("%cACCEPTCONN", sep);
146 opt &= ~SO_ACCEPTCONN;
149 # endif /* defined(SO_ACCEPTCONN) */
151 # if defined(SO_ACCEPTFILTER)
152 if (opt & SO_ACCEPTFILTER) {
153 (void) printf("%cACCEPTFILTER", sep);
154 opt &= ~SO_ACCEPTFILTER;
157 # endif /* defined(SO_ACCEPTFILTER) */
159 # if defined(SO_AUDIT)
160 if (opt & SO_AUDIT) {
161 (void) printf("%cAUDIT", sep);
165 # endif /* defined(SO_AUDIT) */
167 # if defined(SO_BINDANY)
168 if (opt & SO_BINDANY) {
169 (void) printf("%cBINDANY", sep);
173 # endif /* defined(SO_BINDANY) */
175 # if defined(SO_BINTIME)
176 if (opt & SO_BINTIME) {
177 (void) printf("%cBINTIME", sep);
181 # endif /* defined(SO_BINTIME) */
183 # if defined(SO_BROADCAST)
184 if (opt & SO_BROADCAST) {
185 (void) printf("%cBROADCAST", sep);
186 opt &= ~SO_BROADCAST;
189 # endif /* defined(SO_BROADCAST) */
191 # if defined(SO_CKSUMRECV)
192 if (opt & SO_CKSUMRECV) {
193 (void) printf("%cCKSUMRECV", sep);
194 opt &= ~SO_CKSUMRECV;
197 # endif /* defined(SO_CKSUMRECV) */
199 # if defined(SO_CLUA_IN_NOALIAS)
200 if (opt & SO_CLUA_IN_NOALIAS) {
201 (void) printf("%cCLUA_IN_NOALIAS", sep);
202 opt &= ~SO_CLUA_IN_NOALIAS;
205 # endif /* defined(SO_CLUA_IN_NOALIAS) */
207 # if defined(SO_CLUA_IN_NOLOCAL)
208 if (opt & SO_CLUA_IN_NOLOCAL) {
209 (void) printf("%cCLUA_IN_NOLOCAL", sep);
210 opt &= ~SO_CLUA_IN_NOLOCAL;
213 # endif /* defined(SO_CLUA_IN_NOLOCAL) */
215 # if defined(SO_DEBUG)
216 if (opt & SO_DEBUG) {
217 (void) printf("%cDEBUG", sep);
221 # endif /* defined(SO_DEBUG) */
223 # if defined(SO_DGRAM_ERRIND)
224 if (opt & SO_DGRAM_ERRIND) {
225 (void) printf("%cDGRAM_ERRIND", sep);
226 opt &= ~SO_DGRAM_ERRIND;
229 # endif /* defined(SO_DGRAM_ERRIND) */
231 # if defined(SO_DONTROUTE)
232 if (opt & SO_DONTROUTE) {
233 (void) printf("%cDONTROUTE", sep);
234 opt &= ~SO_DONTROUTE;
237 # endif /* defined(SO_DONTROUTE) */
239 # if defined(SO_DONTTRUNC)
240 if (opt & SO_DONTTRUNC) {
241 (void) printf("%cDONTTRUNC", sep);
242 opt &= ~SO_DONTTRUNC;
245 # endif /* defined(SO_DONTTRUNC) */
247 # if defined(SO_EXPANDED_RIGHTS)
248 if (opt & SO_EXPANDED_RIGHTS) {
249 (void) printf("%cEXPANDED_RIGHTS", sep);
250 opt &= ~SO_EXPANDED_RIGHTS;
253 # endif /* defined(SO_EXPANDED_RIGHTS) */
255 # if defined(SO_KEEPALIVE)
256 if (opt & SO_KEEPALIVE) {
257 (void) printf("%cKEEPALIVE", sep);
259 (void) printf("=%d", Lf->lts.kai);
260 opt &= ~SO_KEEPALIVE;
263 # endif /* defined(SO_KEEPALIVE) */
265 # if defined(SO_KERNACCEPT)
266 if (opt & SO_KERNACCEPT) {
267 (void) printf("%cKERNACCEPT", sep);
268 opt &= ~SO_KERNACCEPT;
271 # endif /* defined(SO_KERNACCEPT) */
273 # if defined(SO_IMASOCKET)
274 if (opt & SO_IMASOCKET) {
275 (void) printf("%cIMASOCKET", sep);
276 opt &= ~SO_IMASOCKET;
279 # endif /* defined(SO_IMASOCKET) */
281 # if defined(SO_LINGER)
282 if (opt & SO_LINGER) {
283 (void) printf("%cLINGER", sep);
285 (void) printf("=%d", Lf->lts.ltm);
289 # endif /* defined(SO_LINGER) */
291 # if defined(SO_LISTENING)
292 if (opt & SO_LISTENING) {
293 (void) printf("%cLISTENING", sep);
294 opt &= ~SO_LISTENING;
297 # endif /* defined(SO_LISTENING) */
299 # if defined(SO_MGMT)
301 (void) printf("%cMGMT", sep);
305 # endif /* defined(SO_MGMT) */
307 # if defined(SO_PAIRABLE)
308 if (opt & SO_PAIRABLE) {
309 (void) printf("%cPAIRABLE", sep);
313 # endif /* defined(SO_PAIRABLE) */
315 # if defined(SO_RESVPORT)
316 if (opt & SO_RESVPORT) {
317 (void) printf("%cRESVPORT", sep);
321 # endif /* defined(SO_RESVPORT) */
323 # if defined(SO_NOREUSEADDR)
324 if (opt & SO_NOREUSEADDR) {
325 (void) printf("%cNOREUSEADDR", sep);
326 opt &= ~SO_NOREUSEADDR;
329 # endif /* defined(SO_NOREUSEADDR) */
331 # if defined(SO_NOSIGPIPE)
332 if (opt & SO_NOSIGPIPE) {
333 (void) printf("%cNOSIGPIPE", sep);
334 opt &= ~SO_NOSIGPIPE;
337 # endif /* defined(SO_NOSIGPIPE) */
339 # if defined(SO_OOBINLINE)
340 if (opt & SO_OOBINLINE) {
341 (void) printf("%cOOBINLINE", sep);
342 opt &= ~SO_OOBINLINE;
345 # endif /* defined(SO_OOBINLINE) */
347 # if defined(SO_ORDREL)
348 if (opt & SO_ORDREL) {
349 (void) printf("%cORDREL", sep);
353 # endif /* defined(SO_ORDREL) */
355 if (Lf->lts.pqlens) {
356 (void) printf("%cPQLEN=%u", sep, Lf->lts.pqlen);
360 (void) printf("%cQLEN=%u", sep, Lf->lts.qlen);
364 (void) printf("%cQLIM=%u", sep, Lf->lts.qlim);
368 (void) printf("%cRCVBUF=%lu", sep, Lf->lts.rbsz);
372 # if defined(SO_REUSEADDR)
373 if (opt & SO_REUSEADDR) {
374 (void) printf("%cREUSEADDR", sep);
375 opt &= ~SO_REUSEADDR;
378 # endif /* defined(SO_REUSEADDR) */
380 # if defined(SO_REUSEALIASPORT)
381 if (opt & SO_REUSEALIASPORT) {
382 (void) printf("%cREUSEALIASPORT", sep);
383 opt &= ~SO_REUSEALIASPORT;
386 # endif /* defined(SO_REUSEALIASPORT) */
388 # if defined(SO_REUSEPORT)
389 if (opt & SO_REUSEPORT) {
390 (void) printf("%cREUSEPORT", sep);
391 opt &= ~SO_REUSEPORT;
394 # endif /* defined(SO_REUSEPORT) */
396 # if defined(SO_REUSERAD)
397 if (opt & SO_REUSERAD) {
398 (void) printf("%cREUSERAD", sep);
402 # endif /* defined(SO_REUSERAD) */
404 # if defined(SO_SECURITY_REQUEST)
405 if (opt & SO_SECURITY_REQUEST) {
406 (void) printf("%cSECURITY_REQUEST", sep);
407 opt &= ~SO_SECURITY_REQUEST;
410 # endif /* defined(SO_SECURITY_REQUEST) */
413 (void) printf("%cSNDBUF=%lu", sep, Lf->lts.sbsz);
417 # if defined(SO_TIMESTAMP)
418 if (opt & SO_TIMESTAMP) {
419 (void) printf("%cTIMESTAMP", sep);
420 opt &= ~SO_TIMESTAMP;
423 # endif /* defined(SO_TIMESTAMP) */
427 (void) printf("%cUMC", sep);
431 # endif /* defined(SO_UMC) */
433 # if defined(SO_USE_IFBUFS)
434 if (opt & SO_USE_IFBUFS) {
435 (void) printf("%cUSE_IFBUFS", sep);
436 opt &= ~SO_USE_IFBUFS;
439 # endif /* defined(SO_USE_IFBUFS) */
441 # if defined(SO_USELOOPBACK)
442 if (opt & SO_USELOOPBACK) {
443 (void) printf("%cUSELOOPBACK", sep);
444 opt &= ~SO_USELOOPBACK;
447 # endif /* defined(SO_USELOOPBACK) */
449 # if defined(SO_WANTMORE)
450 if (opt & SO_WANTMORE) {
451 (void) printf("%cWANTMORE", sep);
455 # endif /* defined(SO_WANTMORE) */
457 # if defined(SO_WANTOOBFLAG)
458 if (opt & SO_WANTOOBFLAG) {
459 (void) printf("%cWANTOOBFLAG", sep);
460 opt &= ~SO_WANTOOBFLAG;
463 # endif /* defined(SO_WANTOOBFLAG) */
466 (void) printf("%cUNKNOWN=%#x", sep, opt);
471 #endif /* defined(HASSOOPT) */
473 #if defined(HASSOSTATE)
474 if (Ftcptpi & TCPTPI_FLAGS) {
477 if ((ss = Lf->lts.ss)) {
481 sep = LSOF_FID_TCPTPI;
484 (void) printf("%cSS", sep);
488 # if defined(SS_ASYNC)
490 (void) printf("%cASYNC", sep);
494 # endif /* defined(SS_ASYNC) */
496 # if defined(SS_BOUND)
498 (void) printf("%cBOUND", sep);
502 # endif /* defined(SS_BOUND) */
504 # if defined(HASSBSTATE)
505 # if defined(SBS_CANTRCVMORE)
506 if (Lf->lts.sbs_rcv & SBS_CANTRCVMORE) {
507 (void) printf("%cCANTRCVMORE", sep);
508 Lf->lts.sbs_rcv &= ~SBS_CANTRCVMORE;
511 # endif /* defined(SBS_CANTRCVMORE) */
513 # if defined(SBS_CANTSENDMORE)
514 if (Lf->lts.sbs_snd & SBS_CANTSENDMORE) {
515 (void) printf("%cCANTSENDMORE", sep);
516 Lf->lts.sbs_snd &= ~SBS_CANTSENDMORE;
519 # endif /* defined(SS_CANTSENDMORE) */
520 # else /* !defined(HASSBSTATE) */
522 # if defined(SS_CANTRCVMORE)
523 if (ss & SS_CANTRCVMORE) {
524 (void) printf("%cCANTRCVMORE", sep);
525 ss &= ~SS_CANTRCVMORE;
528 # endif /* defined(SS_CANTRCVMORE) */
530 # if defined(SS_CANTSENDMORE)
531 if (ss & SS_CANTSENDMORE) {
532 (void) printf("%cCANTSENDMORE", sep);
533 ss &= ~SS_CANTSENDMORE;
536 # endif /* defined(SS_CANTSENDMORE) */
537 # endif /* defined(HASSBSTATE) */
539 # if defined(SS_COMP)
541 (void) printf("%cCOMP", sep);
545 # endif /* defined(SS_COMP) */
547 # if defined(SS_CONNECTOUT)
548 if (ss & SS_CONNECTOUT) {
549 (void) printf("%cCONNECTOUT", sep);
550 ss &= ~SS_CONNECTOUT;
553 # endif /* defined(SS_CONNECTOUT) */
555 # if defined(SS_HIPRI)
557 (void) printf("%cHIPRI", sep);
561 # endif /* defined(SS_HIPRI) */
563 # if defined(SS_IGNERR)
564 if (ss & SS_IGNERR) {
565 (void) printf("%cIGNERR", sep);
569 # endif /* defined(SS_IGNERR) */
571 # if defined(SS_INCOMP)
572 if (ss & SS_INCOMP) {
573 (void) printf("%cINCOMP", sep);
577 # endif /* defined(SS_INCOMP) */
579 # if defined(SS_IOCWAIT)
580 if (ss & SS_IOCWAIT) {
581 (void) printf("%cIOCWAIT", sep);
585 # endif /* defined(SS_IOCWAIT) */
587 # if defined(SS_ISCONFIRMING)
588 if (ss & SS_ISCONFIRMING) {
589 (void) printf("%cISCONFIRMING", sep);
590 ss &= ~SS_ISCONFIRMING;
593 # endif /* defined(SS_ISCONFIRMING) */
595 # if defined(SS_ISCONNECTED)
596 if (ss & SS_ISCONNECTED) {
597 (void) printf("%cISCONNECTED", sep);
598 ss &= ~SS_ISCONNECTED;
601 # endif /* defined(SS_ISCONNECTED) */
603 # if defined(SS_ISCONNECTING)
604 if (ss & SS_ISCONNECTING) {
605 (void) printf("%cISCONNECTING", sep);
606 ss &= ~SS_ISCONNECTING;
609 # endif /* defined(SS_ISCONNECTING) */
611 # if defined(SS_ISDISCONNECTING)
612 if (ss & SS_ISDISCONNECTING) {
613 (void) printf("%cISDISCONNECTING", sep);
614 ss &= ~SS_ISDISCONNECTING;
617 # endif /* defined(SS_ISDISCONNECTING) */
619 # if defined(SS_MORETOSEND)
620 if (ss & SS_MORETOSEND) {
621 (void) printf("%cMORETOSEND", sep);
622 ss &= ~SS_MORETOSEND;
625 # endif /* defined(SS_MORETOSEND) */
627 # if defined(SS_NBIO)
629 (void) printf("%cNBIO", sep);
633 # endif /* defined(SS_NBIO) */
635 # if defined(SS_NOCONN)
636 if (ss & SS_NOCONN) {
637 (void) printf("%cNOCONN", sep);
641 # endif /* defined(SS_NOCONN) */
643 # if defined(SS_NODELETE)
644 if (ss & SS_NODELETE) {
645 (void) printf("%cNODELETE", sep);
649 # endif /* defined(SS_NODELETE) */
651 # if defined(SS_NOFDREF)
652 if (ss & SS_NOFDREF) {
653 (void) printf("%cNOFDREF", sep);
657 # endif /* defined(SS_NOFDREF) */
659 # if defined(SS_NOGHOST)
660 if (ss & SS_NOGHOST) {
661 (void) printf("%cNOGHOST", sep);
665 # endif /* defined(SS_NOGHOST) */
667 # if defined(SS_NOINPUT)
668 if (ss & SS_NOINPUT) {
669 (void) printf("%cNOINPUT", sep);
673 # endif /* defined(SS_NOINPUT) */
675 # if defined(SS_PRIV)
677 (void) printf("%cPRIV", sep);
681 # endif /* defined(SS_PRIV) */
683 # if defined(SS_QUEUE)
685 (void) printf("%cQUEUE", sep);
689 # endif /* defined(SS_QUEUE) */
691 # if defined(HASSBSTATE)
692 # if defined(SBS_RCVATMARK)
693 if (Lf->lts.sbs_rcv & SBS_RCVATMARK) {
694 (void) printf("%cRCVATMARK", sep);
695 Lf->lts.sbs_rcv &= ~SBS_RCVATMARK;
698 # endif /* defined(SBS_RCVATMARK) */
700 # else /* !defined(HASSBSTATE) */
701 # if defined(SS_RCVATMARK)
702 if (ss & SS_RCVATMARK) {
703 (void) printf("%cRCVATMARK", sep);
707 # endif /* defined(SS_RCVATMARK) */
708 # endif /* defined(HASSBSTATE) */
710 # if defined(SS_READWAIT)
711 if (ss & SS_READWAIT) {
712 (void) printf("%cREADWAIT", sep);
716 # endif /* defined(SS_READWAIT) */
718 # if defined(SS_SETRCV)
719 if (ss & SS_SETRCV) {
720 (void) printf("%cSETRCV", sep);
724 # endif /* defined(SS_SETRCV) */
726 # if defined(SS_SETSND)
727 if (ss & SS_SETSND) {
728 (void) printf("%cSETSND", sep);
732 # endif /* defined(SS_SETSND) */
734 # if defined(SS_SIGREAD)
735 if (ss & SS_SIGREAD) {
736 (void) printf("%cSIGREAD", sep);
740 # endif /* defined(SS_SIGREAD) */
742 # if defined(SS_SIGWRITE)
743 if (ss & SS_SIGWRITE) {
744 (void) printf("%cSIGWRITE", sep);
748 # endif /* defined(SS_SIGWRITE) */
750 # if defined(SS_SPLICED)
751 if (ss & SS_SPLICED) {
752 (void) printf("%cSPLICED", sep);
756 # endif /* defined(SS_SPLICED) */
758 # if defined(SS_WRITEWAIT)
759 if (ss & SS_WRITEWAIT) {
760 (void) printf("%cWRITEWAIT", sep);
764 # endif /* defined(SS_WRITEWAIT) */
766 # if defined(SS_ZOMBIE)
767 if (ss & SS_ZOMBIE) {
768 (void) printf("%cZOMBIE", sep);
772 # endif /* defined(SS_ZOMBIE) */
775 (void) printf("%cUNKNOWN=%#x", sep, ss);
780 #endif /* defined(HASSOSTATE) */
782 #if defined(HASTCPOPT)
783 if (Ftcptpi & TCPTPI_FLAGS) {
786 if ((topt = Lf->lts.topt) || Lf->lts.msss) {
790 sep = LSOF_FID_TCPTPI;
793 (void) printf("%cTF", sep);
797 # if defined(TF_ACKNOW)
798 if (topt & TF_ACKNOW) {
799 (void) printf("%cACKNOW", sep);
803 # endif /* defined(TF_ACKNOW) */
805 # if defined(TF_CANT_TXSACK)
806 if (topt & TF_CANT_TXSACK) {
807 (void) printf("%cCANT_TXSACK", sep);
808 topt &= ~TF_CANT_TXSACK;
811 # endif /* defined(TF_CANT_TXSACK) */
813 # if defined(TF_DEAD)
814 if (topt & TF_DEAD) {
815 (void) printf("%cDEAD", sep);
819 # endif /* defined(TF_DEAD) */
821 # if defined(TF_DELACK)
822 if (topt & TF_DELACK) {
823 (void) printf("%cDELACK", sep);
827 # endif /* defined(TF_DELACK) */
829 # if defined(TF_DELAY_ACK)
830 if (topt & TF_DELAY_ACK) {
831 (void) printf("%cDELAY_ACK", sep);
832 topt &= ~TF_DELAY_ACK;
835 # endif /* defined(TF_DELAY_ACK) */
837 # if defined(TF_DISABLE_ECN)
838 if (topt & TF_DISABLE_ECN) {
839 (void) printf("%cDISABLE_ECN", sep);
840 topt &= ~TF_DISABLE_ECN;
843 # endif /* defined(TF_DISABLE_ECN) */
847 (void) printf("%cECN", sep);
851 # endif /* defined(TF_ECN) */
853 # if defined(TF_ECN_PERMIT)
854 if (topt & TF_ECN_PERMIT) {
855 (void) printf("%cECN_PERMIT", sep);
856 topt &= ~TF_ECN_PERMIT;
859 # endif /* defined(TF_ECN_PERMIT) */
861 # if defined(TF_FASTRECOVERY)
862 if (topt & TF_FASTRECOVERY) {
863 (void) printf("%cFASTRECOVERY", sep);
864 topt &= ~TF_FASTRECOVERY;
867 # endif /* defined(TF_FASTRECOVERY) */
869 # if defined(TF_FASTRXMT_PHASE)
870 if (topt & TF_FASTRXMT_PHASE) {
871 (void) printf("%cFASTRXMT_PHASE", sep);
872 topt &= ~TF_FASTRXMT_PHASE;
875 # endif /* defined(TF_FASTRXMT_PHASE) */
877 # if defined(TF_HAVEACKED)
878 if (topt & TF_HAVEACKED) {
879 (void) printf("%cHAVEACKED", sep);
880 topt &= ~TF_HAVEACKED;
883 # endif /* defined(TF_HAVEACKED) */
885 # if defined(TF_HAVECLOSED)
886 if (topt & TF_HAVECLOSED) {
887 (void) printf("%cHAVECLOSED", sep);
888 topt &= ~TF_HAVECLOSED;
891 # endif /* defined(TF_HAVECLOSED) */
893 # if defined(TF_IGNR_RXSACK)
894 if (topt & TF_IGNR_RXSACK) {
895 (void) printf("%cIGNR_RXSACK", sep);
896 topt &= ~TF_IGNR_RXSACK;
899 # endif /* defined(TF_IGNR_RXSACK) */
901 # if defined(TF_IOLOCK)
902 if (topt & TF_IOLOCK) {
903 (void) printf("%cIOLOCK", sep);
907 # endif /* defined(TF_IOLOCK) */
909 # if defined(TF_LARGESEND)
910 if (topt & TF_LARGESEND) {
911 (void) printf("%cLARGESEND", sep);
912 topt &= ~TF_LARGESEND;
915 # endif /* defined(TF_LARGESEND) */
917 # if defined(TF_LASTIDLE)
918 if (topt & TF_LASTIDLE) {
919 (void) printf("%cLASTIDLE", sep);
920 topt &= ~TF_LASTIDLE;
923 # endif /* defined(TF_LASTIDLE) */
925 # if defined(TF_LQ_OVERFLOW)
926 if (topt & TF_LQ_OVERFLOW) {
927 (void) printf("%cLQ_OVERFLOW", sep);
928 topt &= ~TF_LQ_OVERFLOW;
931 # endif /* defined(TF_LQ_OVERFLOW) */
934 (void) printf("%cMSS=%lu", sep, Lf->lts.mss);
938 # if defined(TF_MORETOCOME)
939 if (topt & TF_MORETOCOME) {
940 (void) printf("%cMORETOCOME", sep);
941 topt &= ~TF_MORETOCOME;
944 # endif /* defined(TF_MORETOCOME) */
946 # if defined(TF_NEEDACK)
947 if (topt & TF_NEEDACK) {
948 (void) printf("%cNEEDACK", sep);
952 # endif /* defined(TF_NEEDACK) */
954 # if defined(TF_NEEDCLOSE)
955 if (topt & TF_NEEDCLOSE) {
956 (void) printf("%cNEEDCLOSE", sep);
957 topt &= ~TF_NEEDCLOSE;
960 # endif /* defined(TF_NEEDCLOSE) */
962 # if defined(TF_NEEDFIN)
963 if (topt & TF_NEEDFIN) {
964 (void) printf("%cNEEDFIN", sep);
968 # endif /* defined(TF_NEEDFIN) */
970 # if defined(TF_NEEDIN)
971 if (topt & TF_NEEDIN) {
972 (void) printf("%cNEEDIN", sep);
976 # endif /* defined(TF_NEEDIN) */
978 # if defined(TF_NEEDOUT)
979 if (topt & TF_NEEDOUT) {
980 (void) printf("%cNEEDOUT", sep);
984 # endif /* defined(TF_NEEDOUT) */
986 # if defined(TF_NEEDSYN)
987 if (topt & TF_NEEDSYN) {
988 (void) printf("%cNEEDSYN", sep);
992 # endif /* defined(TF_NEEDSYN) */
994 # if defined(TF_NEEDTIMER)
995 if (topt & TF_NEEDTIMER) {
996 (void) printf("%cNEEDTIMER", sep);
997 topt &= ~TF_NEEDTIMER;
1000 # endif /* defined(TF_NEEDTIMER) */
1002 # if defined(TF_NEWRENO_RXMT)
1003 if (topt & TF_NEWRENO_RXMT) {
1004 (void) printf("%cNEWRENO_RXMT", sep);
1005 topt &= ~TF_NEWRENO_RXMT;
1008 # endif /* defined(TF_NEWRENO_RXMT) */
1010 # if defined(TF_NODELACK)
1011 if (topt & TF_NODELACK) {
1012 (void) printf("%cNODELACK", sep);
1013 topt &= ~TF_NODELACK;
1016 # endif /* defined(TF_NODELACK) */
1018 # if defined(TF_NODELAY)
1019 if (topt & TF_NODELAY) {
1020 (void) printf("%cNODELAY", sep);
1021 topt &= ~TF_NODELAY;
1024 # endif /* defined(TF_NODELAY) */
1026 # if defined(TF_NOOPT)
1027 if (topt & TF_NOOPT) {
1028 (void) printf("%cNOOPT", sep);
1032 # endif /* defined(TF_NOOPT) */
1034 # if defined(TF_NOPUSH)
1035 if (topt & TF_NOPUSH) {
1036 (void) printf("%cNOPUSH", sep);
1040 # endif /* defined(TF_NOPUSH) */
1042 # if defined(TF_NO_PMTU)
1043 if (topt & TF_NO_PMTU) {
1044 (void) printf("%cNO_PMTU", sep);
1045 topt &= ~TF_NO_PMTU;
1048 # endif /* defined(TF_NO_PMTU) */
1050 # if defined(TF_RAW)
1051 if (topt & TF_RAW) {
1052 (void) printf("%cRAW", sep);
1056 # endif /* defined(TF_RAW) */
1058 # if defined(TF_RCVD_CC)
1059 if (topt & TF_RCVD_CC) {
1060 (void) printf("%cRCVD_CC", sep);
1061 topt &= ~TF_RCVD_CC;
1064 # endif /* defined(TF_RCVD_CC) */
1066 # if defined(TF_RCVD_SCALE)
1067 if (topt & TF_RCVD_SCALE) {
1068 (void) printf("%cRCVD_SCALE", sep);
1069 topt &= ~TF_RCVD_SCALE;
1072 # endif /* defined(TF_RCVD_SCALE) */
1074 # if defined(TF_RCVD_CE)
1075 if (topt & TF_RCVD_CE) {
1076 (void) printf("%cRCVD_CE", sep);
1077 topt &= ~TF_RCVD_CE;
1080 # endif /* defined(TF_RCVD_CE) */
1082 # if defined(TF_RCVD_TS)
1083 if (topt & TF_RCVD_TS) {
1084 (void) printf("%cRCVD_TS", sep);
1085 topt &= ~TF_RCVD_TS;
1088 # endif /* defined(TF_RCVD_TS) */
1090 # if defined(TF_RCVD_TSTMP)
1091 if (topt & TF_RCVD_TSTMP) {
1092 (void) printf("%cRCVD_TSTMP", sep);
1093 topt &= ~TF_RCVD_TSTMP;
1096 # endif /* defined(TF_RCVD_TSTMP) */
1098 # if defined(TF_RCVD_WS)
1099 if (topt & TF_RCVD_WS) {
1100 (void) printf("%cRCVD_WS", sep);
1101 topt &= ~TF_RCVD_WS;
1104 # endif /* defined(TF_RCVD_WS) */
1106 # if defined(TF_REASSEMBLING)
1107 if (topt & TF_REASSEMBLING) {
1108 (void) printf("%cREASSEMBLING", sep);
1109 topt &= ~TF_REASSEMBLING;
1112 # endif /* defined(TF_REASSEMBLING) */
1114 # if defined(TF_REQ_CC)
1115 if (topt & TF_REQ_CC) {
1116 (void) printf("%cREQ_CC", sep);
1120 # endif /* defined(TF_REQ_CC) */
1122 # if defined(TF_REQ_SCALE)
1123 if (topt & TF_REQ_SCALE) {
1124 (void) printf("%cREQ_SCALE", sep);
1125 topt &= ~TF_REQ_SCALE;
1128 # endif /* defined(TF_REQ_SCALE) */
1130 # if defined(TF_REQ_TSTMP)
1131 if (topt & TF_REQ_TSTMP) {
1132 (void) printf("%cREQ_TSTMP", sep);
1133 topt &= ~TF_REQ_TSTMP;
1136 # endif /* defined(TF_REQ_TSTMP) */
1138 # if defined(TF_RFC1323)
1139 if (topt & TF_RFC1323) {
1140 (void) printf("%cRFC1323", sep);
1141 topt &= ~TF_RFC1323;
1144 # endif /* defined(TF_RFC1323) */
1146 # if defined(TF_RXWIN0SENT)
1147 if (topt & TF_RXWIN0SENT) {
1148 (void) printf("%cRXWIN0SENT", sep);
1149 topt &= ~TF_RXWIN0SENT;
1152 # endif /* defined(TF_RXWIN0SENT) */
1154 # if defined(TF_SACK_GENERATE)
1155 if (topt & TF_SACK_GENERATE) {
1156 (void) printf("%cSACK_GENERATE", sep);
1157 topt &= ~TF_SACK_GENERATE;
1160 # endif /* defined(TF_SACK_GENERATE) */
1162 # if defined(TF_SACK_PERMIT)
1163 if (topt & TF_SACK_PERMIT) {
1164 (void) printf("%cSACK_PERMIT", sep);
1165 topt &= ~TF_SACK_PERMIT;
1168 # endif /* defined(TF_SACK_PERMIT) */
1170 # if defined(TF_SACK_PROCESS)
1171 if (topt & TF_SACK_PROCESS) {
1172 (void) printf("%cSACK_PROCESS", sep);
1173 topt &= ~TF_SACK_PROCESS;
1176 # endif /* defined(TF_SACK_PROCESS) */
1178 # if defined(TF_SEND)
1179 if (topt & TF_SEND) {
1180 (void) printf("%cSEND", sep);
1184 # endif /* defined(TF_SEND) */
1186 # if defined(TF_SEND_AND_DISCONNECT)
1187 if (topt & TF_SEND_AND_DISCONNECT) {
1188 (void) printf("%cSEND_AND_DISCONNECT", sep);
1189 topt &= ~TF_SEND_AND_DISCONNECT;
1192 # endif /* defined(TF_SEND_AND_DISCONNECT) */
1194 # if defined(TF_SENDCCNEW)
1195 if (topt & TF_SENDCCNEW) {
1196 (void) printf("%cSENDCCNEW", sep);
1197 topt &= ~TF_SENDCCNEW;
1200 # endif /* defined(TF_SENDCCNEW) */
1202 # if defined(TF_SEND_CWR)
1203 if (topt & TF_SEND_CWR) {
1204 (void) printf("%cSEND_CWR", sep);
1205 topt &= ~TF_SEND_CWR;
1208 # endif /* defined(TF_SEND_CWR) */
1210 # if defined(TF_SEND_ECHO)
1211 if (topt & TF_SEND_ECHO) {
1212 (void) printf("%cSEND_ECHO", sep);
1213 topt &= ~TF_SEND_ECHO;
1216 # endif /* defined(TF_SEND_ECHO) */
1218 # if defined(TF_SEND_TSTMP)
1219 if (topt & TF_SEND_TSTMP) {
1220 (void) printf("%cSEND_TSTMP", sep);
1221 topt &= ~TF_SEND_TSTMP;
1224 # endif /* defined(TF_SEND_TSTMP) */
1226 # if defined(TF_SENTFIN)
1227 if (topt & TF_SENTFIN) {
1228 (void) printf("%cSENTFIN", sep);
1229 topt &= ~TF_SENTFIN;
1232 # endif /* defined(TF_SENTFIN) */
1234 # if defined(TF_SENT_TS)
1235 if (topt & TF_SENT_TS) {
1236 (void) printf("%cSENT_TS", sep);
1237 topt &= ~TF_SENT_TS;
1240 # endif /* defined(TF_SENT_TS) */
1242 # if defined(TF_SENT_WS)
1243 if (topt & TF_SENT_WS) {
1244 (void) printf("%cSENT_WS", sep);
1245 topt &= ~TF_SENT_WS;
1248 # endif /* defined(TF_SENT_WS) */
1250 # if defined(TF_SIGNATURE)
1251 if (topt & TF_SIGNATURE) {
1252 (void) printf("%cSIGNATURE", sep);
1253 topt &= ~TF_SIGNATURE;
1256 # endif /* defined(TF_SIGNATURE) */
1258 # if defined(TF_SLOWLINK)
1259 if (topt & TF_SLOWLINK) {
1260 (void) printf("%cSLOWLINK", sep);
1261 topt &= ~TF_SLOWLINK;
1264 # endif /* defined(TF_SLOWLINK) */
1266 # if defined(TF_STDURG)
1267 if (topt & TF_STDURG) {
1268 (void) printf("%cSTDURG", sep);
1272 # endif /* defined(TF_STDURG) */
1274 # if defined(TF_SYN_REXMT)
1275 if (topt & TF_SYN_REXMT) {
1276 (void) printf("%cSYN_REXMT", sep);
1277 topt &= ~TF_SYN_REXMT;
1280 # endif /* defined(TF_SYN_REXMT) */
1282 # if defined(TF_UIOMOVED)
1283 if (topt & TF_UIOMOVED) {
1284 (void) printf("%cUIOMOVED", sep);
1285 topt &= ~TF_UIOMOVED;
1288 # endif /* defined(TF_UIOMOVED) */
1290 # if defined(TF_USE_SCALE)
1291 if (topt & TF_USE_SCALE) {
1292 (void) printf("%cUSE_SCALE", sep);
1293 topt &= ~TF_USE_SCALE;
1296 # endif /* defined(TF_USE_SCALE) */
1298 # if defined(TF_WASIDLE)
1299 if (topt & TF_WASIDLE) {
1300 (void) printf("%cWASIDLE", sep);
1301 topt &= ~TF_WASIDLE;
1304 # endif /* defined(TF_WASIDLE) */
1306 # if defined(TF_WASFRECOVERY)
1307 if (topt & TF_WASFRECOVERY) {
1308 (void) printf("%cWASFRECOVERY", sep);
1309 topt &= ~TF_WASFRECOVERY;
1312 # endif /* defined(TF_WASFRECOVERY) */
1314 # if defined(TF_WILL_SACK)
1315 if (topt & TF_WILL_SACK) {
1316 (void) printf("%cWILL_SACK", sep);
1317 topt &= ~TF_WILL_SACK;
1320 # endif /* defined(TF_WILL_SACK) */
1323 (void) printf("%cUNKNOWN=%#x", sep, topt);
1325 putchar(Terminator);
1328 #endif /* defined(HASTCPOPT) */
1330 #if defined(HASTCPTPIW)
1331 if (Ftcptpi & TCPTPI_WINDOWS) {
1334 putchar(LSOF_FID_TCPTPI);
1341 (void) printf("WR=%lu", Lf->lts.rw);
1343 putchar(Terminator);
1348 putchar(LSOF_FID_TCPTPI);
1355 (void) printf("WW=%lu", Lf->lts.ww);
1357 putchar(Terminator);
1361 #endif /* defined(HASTCPTPIW) */
1368 #else /* !defined(USE_LIB_PRINT_TCPTPI) */
1369 char ptti_d1[] = "d"; char *ptti_d2 = ptti_d1;
1370 #endif /* defined(USE_LIB_PRINT_TCPTPI) */