Browse Source

optmize header search

master
Georg Hopp 14 years ago
parent
commit
e4975a92c0
  1. 14
      src/http/header/get.c

14
src/http/header/get.c

@ -33,21 +33,17 @@ inline
int
comp(const void * _a, const void * _b)
{
HttpHeader a = (HttpHeader)_a;
HttpHeader b = (HttpHeader)_b;
return (a->hash < b->hash)? -1 : (a->hash > b->hash)? 1 : 0;
const unsigned long * a = _a;
HttpHeader b = (HttpHeader)_b;
return (*a < b->hash)? -1 : (*a > b->hash)? 1 : 0;
}
HttpHeader
httpHeaderGet(const HttpHeader * root, const char * name, size_t nname)
{
struct c_HttpHeader search = {
sdbm((const unsigned char*)name, nname),
NULL,
{},
0};
unsigned long hash = sdbm((const unsigned char*)name, nname);
HttpHeader * found = tfind(&search, (void**)root, comp);
HttpHeader * found = tfind(&hash, (void**)root, comp);
return (NULL != found)? *found : NULL;
}

Loading…
Cancel
Save