repo.or.cz
/
tomato.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Update and clean Tomato RAF files
[tomato.git]
/
release
/
src
/
router
/
nginx
/
src
/
core
/
ngx_murmurhash.c
blob
c31e0e03500bde18fc5acb695cc6061b2a681ab6
1
2
/*
3
* Copyright (C) Austin Appleby
4
*/
5
6
7
#include <ngx_config.h>
8
#include <ngx_core.h>
9
10
11
uint32_t
12
ngx_murmur_hash2
(
u_char
*
data
,
size_t
len
)
13
{
14
uint32_t
h
,
k
;
15
16
h
=
0
^
len
;
17
18
while
(
len
>=
4
) {
19
k
=
data
[
0
];
20
k
|=
data
[
1
] <<
8
;
21
k
|=
data
[
2
] <<
16
;
22
k
|=
data
[
3
] <<
24
;
23
24
k
*=
0x5bd1e995
;
25
k
^=
k
>>
24
;
26
k
*=
0x5bd1e995
;
27
28
h
*=
0x5bd1e995
;
29
h
^=
k
;
30
31
data
+=
4
;
32
len
-=
4
;
33
}
34
35
switch
(
len
) {
36
case
3
:
37
h
^=
data
[
2
] <<
16
;
38
case
2
:
39
h
^=
data
[
1
] <<
8
;
40
case
1
:
41
h
^=
data
[
0
];
42
h
*=
0x5bd1e995
;
43
}
44
45
h
^=
h
>>
13
;
46
h
*=
0x5bd1e995
;
47
h
^=
h
>>
15
;
48
49
return
h
;
50
}