FreeBSD/sys/netpfil/pf/pf_osfp.c
/* Find an exact fingerprint in the list */
Find an exact fingerprint in the list
Find an exact fingerprint in the list
static struct pf_os_fingerprint *
pf_osfp_find_exact(struct pf_osfp_list *list, struct pf_os_fingerprint *find)
{
	struct pf_os_fingerprint *f;
	SLIST_FOREACH(f, list, fp_next) {
		if (f->fp_tcpopts == find->fp_tcpopts &&
		    f->fp_wsize == find->fp_wsize &&
		    f->fp_psize == find->fp_psize &&
		    f->fp_mss == find->fp_mss &&
		    f->fp_flags == find->fp_flags &&
		    f->fp_optcnt == find->fp_optcnt &&
		    f->fp_wscale == find->fp_wscale &&
		    f->fp_ttl == find->fp_ttl)
			return (f);
	}
	return (NULL);
}
static struct pf_os_fingerprint * pf_osfp_find_exact ( struct pf_osfp_list * list , struct pf_os_fingerprint * find ) { struct pf_os_fingerprint * f ; SLIST_FOREACH ( f , list , fp_next ) { if ( f -> fp_tcpopts == find -> fp_tcpopts && f -> fp_wsize == find -> fp_wsize && f -> fp_psize == find -> fp_psize && f -> fp_mss == find -> fp_mss && f -> fp_flags == find -> fp_flags && f -> fp_optcnt == find -> fp_optcnt && f -> fp_wscale == find -> fp_wscale && f -> fp_ttl == find -> fp_ttl ) return ( f ) ; } return ( NULL ) ; }
Find an exact fingerprint in the list
Find an exact fingerprint in the list