Reduce differences between the two pfctl_osfp.c files. The pfctl_show_fingerprints() function has changed, the new one from pfctl uses pfctl_print_title(), which is defined in a different file (pfctl.c), not available in tcpdump.
tcpdump doesn't use pfctl_show_fingerprints() anyway, so update the function to minimize the diff, and comment it out. Index: usr.sbin/tcpdump/pfctl_osfp.c =================================================================== RCS file: /cvs/src/usr.sbin/tcpdump/pfctl_osfp.c,v retrieving revision 1.12 diff -u -p -r1.12 pfctl_osfp.c --- usr.sbin/tcpdump/pfctl_osfp.c 28 May 2017 07:40:12 -0000 1.12 +++ usr.sbin/tcpdump/pfctl_osfp.c 28 May 2017 08:23:37 -0000 @@ -296,16 +296,29 @@ pfctl_load_fingerprints(int dev, int opt return (0); } +/* + * comment out pfctl_show_fingerprints() when syncing with + * pfctl/pfctl_osfp.c, as it's unused here and uses pfctl_print_title() + * which is not available in tcpdump +*/ +#if 0 /* List the fingerprints */ void pfctl_show_fingerprints(int opts) { - printf("Passive OS Fingerprints:\n"); - printf("\tClass\tVersion\tSubtype(subversion)\n"); - printf("\t-----\t-------\t-------------------\n"); - sort_name_list(opts, &classes); - print_name_list(opts, &classes, "\t"); + if (LIST_FIRST(&classes) != NULL) { + if (opts & PF_OPT_SHOWALL) { + pfctl_print_title("OS FINGERPRINTS:"); + printf("%u fingerprints loaded\n", fingerprint_count); + } else { + printf("Class\tVersion\tSubtype(subversion)\n"); + printf("-----\t-------\t-------------------\n"); + sort_name_list(opts, &classes); + print_name_list(opts, &classes, ""); + } + } } +#endif /* Lookup a fingerprint */ pf_osfp_t -- Michal Mazurek