freebsd-dev/contrib/ipfilter/lib/tcpflags.c
Cy Schubert bfc88dcbf7 Update ipfilter 4.1.28 --> 5.1.2.
Approved by:		glebius (mentor)
BSD Licensed by:	Darren Reed <darrenr@reed.wattle.id.au> (author)
2013-09-06 23:11:19 +00:00

46 lines
594 B
C

/* $FreeBSD$ */
/*
* Copyright (C) 2012 by Darren Reed.
*
* See the IPFILTER.LICENCE file for details on licencing.
*
* $Id$
*/
#include "ipf.h"
/*
* ECN is a new addition to TCP - RFC 2481
*/
#ifndef TH_ECN
# define TH_ECN 0x40
#endif
#ifndef TH_CWR
# define TH_CWR 0x80
#endif
extern char flagset[];
extern u_char flags[];
u_char tcpflags(flgs)
char *flgs;
{
u_char tcpf = 0;
char *s, *t;
for (s = flgs; *s; s++) {
if (*s == 'W')
tcpf |= TH_CWR;
else {
if (!(t = strchr(flagset, *s))) {
return 0;
}
tcpf |= flags[t - flagset];
}
}
return tcpf;
}