@@ -18,6 +18,8 @@ local subsystem = ngx.config.subsystem
18
18
local ngx_lua_ffi_md5
19
19
local ngx_lua_ffi_md5_bin
20
20
local ngx_lua_ffi_sha1_bin
21
+ local ngx_lua_ffi_crc32_long
22
+ local ngx_lua_ffi_crc32_short
21
23
22
24
23
25
if subsystem == " http" then
@@ -30,11 +32,19 @@ if subsystem == "http" then
30
32
31
33
int ngx_http_lua_ffi_sha1_bin (const unsigned char * src , size_t len ,
32
34
unsigned char * dst );
35
+
36
+ unsigned int ngx_http_lua_ffi_crc32_long (const unsigned char * src ,
37
+ size_t len );
38
+
39
+ unsigned int ngx_http_lua_ffi_crc32_short (const unsigned char * src ,
40
+ size_t len );
33
41
]]
34
42
35
43
ngx_lua_ffi_md5 = C .ngx_http_lua_ffi_md5
36
44
ngx_lua_ffi_md5_bin = C .ngx_http_lua_ffi_md5_bin
37
45
ngx_lua_ffi_sha1_bin = C .ngx_http_lua_ffi_sha1_bin
46
+ ngx_lua_ffi_crc32_short = C .ngx_http_lua_ffi_crc32_short
47
+ ngx_lua_ffi_crc32_long = C .ngx_http_lua_ffi_crc32_long
38
48
39
49
elseif subsystem == " stream" then
40
50
ffi .cdef [[
@@ -46,11 +56,19 @@ elseif subsystem == "stream" then
46
56
47
57
int ngx_stream_lua_ffi_sha1_bin (const unsigned char * src , size_t len ,
48
58
unsigned char * dst );
59
+
60
+ unsigned int ngx_stream_lua_ffi_crc32_long (const unsigned char * src ,
61
+ size_t len );
62
+
63
+ unsigned int ngx_stream_lua_ffi_crc32_short (const unsigned char * src ,
64
+ size_t len );
49
65
]]
50
66
51
67
ngx_lua_ffi_md5 = C .ngx_stream_lua_ffi_md5
52
68
ngx_lua_ffi_md5_bin = C .ngx_stream_lua_ffi_md5_bin
53
69
ngx_lua_ffi_sha1_bin = C .ngx_stream_lua_ffi_sha1_bin
70
+ ngx_lua_ffi_crc32_short = C .ngx_stream_lua_ffi_crc32_short
71
+ ngx_lua_ffi_crc32_long = C .ngx_stream_lua_ffi_crc32_long
54
72
end
55
73
56
74
@@ -105,6 +123,32 @@ ngx.sha1_bin = function (s)
105
123
end
106
124
107
125
126
+ ngx .crc32_short = function (s )
127
+ if type (s ) ~= " string" then
128
+ if not s then
129
+ s = " "
130
+ else
131
+ s = tostring (s )
132
+ end
133
+ end
134
+
135
+ return ngx_lua_ffi_crc32_short (s , # s )
136
+ end
137
+
138
+
139
+ ngx .crc32_long = function (s )
140
+ if type (s ) ~= " string" then
141
+ if not s then
142
+ s = " "
143
+ else
144
+ s = tostring (s )
145
+ end
146
+ end
147
+
148
+ return ngx_lua_ffi_crc32_long (s , # s )
149
+ end
150
+
151
+
108
152
return {
109
153
version = base .version
110
154
}
0 commit comments