On Fri, Aug 06, 2010 at 04:00:49PM +0200, Patrick McHardy wrote: > Am 05.08.2010 13:47, schrieb Simon Horman: > > diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c > > index 2fd1ea2..715ce54 100644 > > --- a/net/netfilter/nf_conntrack_sip.c > > +++ b/net/netfilter/nf_conntrack_sip.c > > @@ -130,6 +130,44 @@ static int digits_len(const struct nf_conn *ct, const char *dptr, > > return len; > > } > > > > +static int iswordc(const char c) > > +{ > > + if (isalnum(c) || c == '!' || c == '"' || c == '%' || > > + (c >= '(' && c <= '/') || c == ':' || c == '<' || c == '>' || > > + c == '?' || (c >= '[' && c <= ']') || c == '_' || c == '`' || > > + c == '{' || c == '}' || c == '~') > > + return 1; > > + return 0; > > +} > > + > > +static int word_len(const char *dptr, const char *limit) > > +{ > > + int len = 0; > > + while (dptr < limit && iswordc(*dptr)) { > > + dptr++; > > + len++; > > + } > > + return len; > > +} > > Since the Call-ID can't contain whitespace, couldn't we simply > determine the length by looking for the next newline or whitespace > character? Well, there are other characters (e.g. '#') it can't contain - unless I read the RFC incorrectly. Are you concerned about speed, code complexity, or something else? -- To unsubscribe from this list: send the line "unsubscribe netfilter" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html