The macro for printing flags just prints a bunch of f's in an order you
can't tell a whole lot from. This code looks like it hasn't been touched
in 20 years so maybe an old compiler used to do something different?
This makes it print the flag names.

Before:
0xffff8000008b4cc0 ESTABLISHED:output [93471a53..93471a98)@f8f54269, urp=0<f,f> 
-> ESTABLISHED

After:
0xffff8000008b4ee0 ESTABLISHED:output [91d4a412..91d4a457)@bdd41aae, 
urp=0<ACK,PUSH> -> ESTABLISHED

Mitchell


diff --git sys/netinet/tcp_debug.c sys/netinet/tcp_debug.c
index 4ebf93214..21e888cf2 100644
--- sys/netinet/tcp_debug.c
+++ sys/netinet/tcp_debug.c
@@ -200,7 +200,7 @@ tcp_trace(short act, short ostate, struct tcpcb *tp, struct 
tcpcb *otp,
                flags = th->th_flags;
                if (flags) {
                        char *cp = "<";
-#define pf(f) { if (th->th_flags&TH_##f) { printf("%s%s", cp, "f"); cp = ","; 
} }
+#define pf(f) { if (th->th_flags&TH_##f) { printf("%s%s", cp, #f); cp = ","; } 
}
                        pf(SYN); pf(ACK); pf(FIN); pf(RST); pf(PUSH); pf(URG);
                        printf(">");
                }

Reply via email to