This commit is contained in:
cathugger 2017-10-08 22:16:16 +00:00
parent e400912b2a
commit d1a31ae540

15
main.c
View file

@ -103,8 +103,7 @@ static inline int ifilter_conflict(struct intfilter *o,struct intfilter *n)
if ((o->f & n->m) != (n->f & o->m)) if ((o->f & n->m) != (n->f & o->m))
return 0; return 0;
// determine which filter contain less bits // determine which filter contain less bits
// this shit needs code independent of endianess, so not direct <= if (o->m <= n->m)
if (memcmp(&o->m,&n->m,sizeof(o->m)) <= 0)
return -1; return -1;
return 1; return 1;
} }
@ -193,8 +192,12 @@ static void filters_add(const char *filter)
// we eat old filter // we eat old filter
} }
} }
VEC_ADD(ifilters,ifltr); #ifdef BINSEARCH
ifilter_addflatten(&ifltr);
#else #else
VEC_ADD(ifilters,ifltr);
#endif // BINSEARCH
#else // INTFILTER
VEC_FOR(bfilters,i) { VEC_FOR(bfilters,i) {
int c = bfilter_conflict(&VEC_BUF(bfilters,i),&bf); int c = bfilter_conflict(&VEC_BUF(bfilters,i),&bf);
if (c < 0) if (c < 0)
@ -205,8 +208,12 @@ static void filters_add(const char *filter)
// we eat old filter // we eat old filter
} }
} }
#ifdef BINSEARCH
// TODO
#else
VEC_ADD(bfilters,bf); VEC_ADD(bfilters,bf);
#endif #endif // BINSEARCH
#endif // INTFILTER
} }
static void filters_clean() static void filters_clean()