1 2 /* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7 #include <nxt_main.h> 8 9 10 uint32_t nxt_djb_hash(const void * data,size_t len)11nxt_djb_hash(const void *data, size_t len) 12 { 13 uint32_t hash; 14 const u_char *p; 15 16 p = data; 17 hash = NXT_DJB_HASH_INIT; 18 19 while (len != 0) { 20 hash = nxt_djb_hash_add(hash, *p++); 21 len--; 22 } 23 24 return hash; 25 } 26 27 28 uint32_t nxt_djb_hash_lowcase(const void * data,size_t len)29nxt_djb_hash_lowcase(const void *data, size_t len) 30 { 31 u_char c; 32 uint32_t hash; 33 const u_char *p; 34 35 p = data; 36 hash = NXT_DJB_HASH_INIT; 37 38 while (len != 0) { 39 c = *p++; 40 hash = nxt_djb_hash_add(hash, nxt_lowcase(c)); 41 len--; 42 } 43 44 return hash; 45 } 46