[GH-ISSUE #38] 编译过程中提示ngx_http_waf_module_core.h: No such file or directory #158

Closed
opened 2026-03-13 16:38:47 +03:00 by kerem · 7 comments
Owner

Originally created by @stepwen on GitHub (May 7, 2021).
Original GitHub issue: https://github.com/ADD-SP/ngx_waf/issues/38

  • 如何触发错误。

  • ngx_waf -master 5.2.0

  • `nginx 1.9.9
    执行./configure --add-module=/usr/local/src/ngx_waf --with-cc-opt='-O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include'
    正常,后执行make报错,报错信息如下:

    -o objs/src/http/modules/ngx_http_upstream_ip_hash_module.o
    src/http/modules/ngx_http_upstream_ip_hash_module.c
    cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules
    -o objs/src/http/modules/ngx_http_upstream_least_conn_module.o
    src/http/modules/ngx_http_upstream_least_conn_module.c
    cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules
    -o objs/src/http/modules/ngx_http_upstream_keepalive_module.o
    src/http/modules/ngx_http_upstream_keepalive_module.c
    cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules
    -o objs/src/http/modules/ngx_http_upstream_zone_module.o
    src/http/modules/ngx_http_upstream_zone_module.c
    cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/mail -I src/stream
    -o objs/addon/src/ngx_http_waf_module_core.o
    /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c
    /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:38: fatal error: ngx_http_waf_module_core.h: No such file or directory
    #include <ngx_http_waf_module_core.h>
    ^
    compilation terminated.
    make[1]: *** [objs/addon/src/ngx_http_waf_module_core.o] Error 1
    make[1]: Leaving directory `/data/nginx-1.9.9'
    make: *** [build] Error 2

  • 操作系统:centos7

Originally created by @stepwen on GitHub (May 7, 2021). Original GitHub issue: https://github.com/ADD-SP/ngx_waf/issues/38 * 如何触发错误。 * ngx_waf -master 5.2.0 * `nginx 1.9.9 执行./configure --add-module=/usr/local/src/ngx_waf --with-cc-opt='-O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include' 正常,后执行make报错,报错信息如下: -o objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \ src/http/modules/ngx_http_upstream_ip_hash_module.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \ -o objs/src/http/modules/ngx_http_upstream_least_conn_module.o \ src/http/modules/ngx_http_upstream_least_conn_module.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \ -o objs/src/http/modules/ngx_http_upstream_keepalive_module.o \ src/http/modules/ngx_http_upstream_keepalive_module.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \ -o objs/src/http/modules/ngx_http_upstream_zone_module.o \ src/http/modules/ngx_http_upstream_zone_module.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -std=c99 -DNGX_LUA_ABORT_AT_PANIC -I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include -I/usr/local/openresty/openssl111/include -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/mail -I src/stream \ -o objs/addon/src/ngx_http_waf_module_core.o \ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:38: fatal error: ngx_http_waf_module_core.h: No such file or directory #include <ngx_http_waf_module_core.h> ^ compilation terminated. make[1]: *** [objs/addon/src/ngx_http_waf_module_core.o] Error 1 make[1]: Leaving directory `/data/nginx-1.9.9' make: *** [build] Error 2 * 操作系统:centos7
kerem 2026-03-13 16:38:47 +03:00
  • closed this issue
  • added the
    question
    label
Author
Owner

@ADD-SP commented on GitHub (May 7, 2021):

观察到您的 nginx 的版本为 1.9.9,本模块不向低于(不含本级) nginx-1.18.0 的版本提供支持,请尝试使用合适的版本编译。

<!-- gh-comment-id:834098118 --> @ADD-SP commented on GitHub (May 7, 2021): 观察到您的 nginx 的版本为 1.9.9,本模块不向低于(不含本级) nginx-1.18.0 的版本提供支持,请尝试使用合适的版本编译。
Author
Owner

@stepwen commented on GitHub (May 7, 2021):

切换成nginx1.19.10之后make仍然报错,报错信息如下:
src/core/ngx_resolver.h:73:5: error: unknown type name ‘u_short’
u_short weight;
^
src/core/ngx_resolver.h:74:5: error: unknown type name ‘u_short’
u_short port;
^
src/core/ngx_resolver.h:80:5: error: unknown type name ‘u_short’
u_short priority;
^
src/core/ngx_resolver.h:81:5: error: unknown type name ‘u_short’
u_short weight;
^
src/core/ngx_resolver.h:82:5: error: unknown type name ‘u_short’
u_short port;
^
src/core/ngx_resolver.h:97:5: error: unknown type name ‘u_char’
u_char name;
^
src/core/ngx_resolver.h:104:5: error: unknown type name ‘u_short’
u_short nlen;
^
src/core/ngx_resolver.h:105:5: error: unknown type name ‘u_short’
u_short qlen;
^
src/core/ngx_resolver.h:107:5: error: unknown type name ‘u_char’
u_char query;
^
src/core/ngx_resolver.h:109:5: error: unknown type name ‘u_char’
u_char query6;
^
src/core/ngx_resolver.h:115:9: error: unknown type name ‘u_char’
u_char cname;
^
src/core/ngx_resolver.h:119:5: error: unknown type name ‘u_char’
u_char code;
^
src/core/ngx_resolver.h:120:5: error: unknown type name ‘u_short’
u_short naddrs;
^
src/core/ngx_resolver.h:121:5: error: unknown type name ‘u_short’
u_short nsrvs;
^
src/core/ngx_resolver.h:122:5: error: unknown type name ‘u_short’
u_short cnlen;
^
src/core/ngx_resolver.h:130:5: error: unknown type name ‘u_short’
u_short naddrs6;
^
In file included from src/core/ngx_core.h:89:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/core/ngx_open_file_cache.h:60:5: error: unknown type name ‘u_char’
u_char name;
^
In file included from src/core/ngx_core.h:90:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/os/unix/ngx_os.h:19:53: error: unknown type name ‘u_char’
typedef ssize_t (ngx_recv_pt)(ngx_connection_t c, u_char buf, size_t size);
^
src/os/unix/ngx_os.h:22:53: error: unknown type name ‘u_char’
typedef ssize_t (ngx_send_pt)(ngx_connection_t c, u_char buf, size_t size);
^
src/os/unix/ngx_os.h:27:5: error: unknown type name ‘ngx_recv_pt’
ngx_recv_pt recv;
^
src/os/unix/ngx_os.h:29:5: error: unknown type name ‘ngx_recv_pt’
ngx_recv_pt udp_recv;
^
src/os/unix/ngx_os.h:30:5: error: unknown type name ‘ngx_send_pt’
ngx_send_pt send;
^
src/os/unix/ngx_os.h:31:5: error: unknown type name ‘ngx_send_pt’
ngx_send_pt udp_send;
^
src/os/unix/ngx_os.h:46:44: error: unknown type name ‘u_char’
ssize_t ngx_unix_recv(ngx_connection_t c, u_char buf, size_t size);
^
src/os/unix/ngx_os.h:48:48: error: unknown type name ‘u_char’
ssize_t ngx_udp_unix_recv(ngx_connection_t c, u_char buf, size_t size);
^
src/os/unix/ngx_os.h:49:44: error: unknown type name ‘u_char’
ssize_t ngx_unix_send(ngx_connection_t c, u_char buf, size_t size);
^
src/os/unix/ngx_os.h:52:48: error: unknown type name ‘u_char’
ssize_t ngx_udp_unix_send(ngx_connection_t c, u_char buf, size_t size);
^
In file included from src/core/ngx_core.h:91:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/core/ngx_connection.h:129:5: error: unknown type name ‘ngx_recv_pt’
ngx_recv_pt recv;
^
src/core/ngx_connection.h:130:5: error: unknown type name ‘ngx_send_pt’
ngx_send_pt send;
^
In file included from src/core/ngx_core.h:92:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/core/ngx_syslog.h:24:1: error: unknown type name ‘u_char’
u_char ngx_syslog_add_header(ngx_syslog_peer_t peer, u_char buf);
^
src/core/ngx_syslog.h:24:56: error: unknown type name ‘u_char’
u_char ngx_syslog_add_header(ngx_syslog_peer_t peer, u_char buf);
^
src/core/ngx_syslog.h:25:58: error: unknown type name ‘u_char’
void ngx_syslog_writer(ngx_log_t log, ngx_uint_t level, u_char buf,
^
src/core/ngx_syslog.h:27:50: error: unknown type name ‘u_char’
ssize_t ngx_syslog_send(ngx_syslog_peer_t peer, u_char buf, size_t len);
^
In file included from src/core/ngx_core.h:93:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/core/ngx_proxy_protocol.h:27:1: error: unknown type name ‘u_char’
u_char ngx_proxy_protocol_read(ngx_connection_t c, u_char buf,
^
src/core/ngx_proxy_protocol.h:27:54: error: unknown type name ‘u_char’
u_char ngx_proxy_protocol_read(ngx_connection_t c, u_char buf,
^
src/core/ngx_proxy_protocol.h:28:5: error: unknown type name ‘u_char’
u_char last);
^
src/core/ngx_proxy_protocol.h:29:1: error: unknown type name ‘u_char’
u_char ngx_proxy_protocol_write(ngx_connection_t c, u_char buf,
^
src/core/ngx_proxy_protocol.h:29:55: error: unknown type name ‘u_char’
u_char ngx_proxy_protocol_write(ngx_connection_t c, u_char buf,
^
src/core/ngx_proxy_protocol.h:30:5: error: unknown type name ‘u_char’
u_char last);
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12:0,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/ngx_http.h:26:1: error: unknown type name ‘u_char’
typedef u_char (ngx_http_log_handler_pt)(ngx_http_request_t r,
^
src/http/ngx_http.h:27:29: error: unknown type name ‘u_char’
ngx_http_request_t sr, u_char buf, size_t len);
^
In file included from src/http/ngx_http.h:32:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/ngx_http_request.h:279:5: error: unknown type name ‘u_char’
u_char content_type_lowcase;
^
src/http/ngx_http_request.h:433:5: error: unknown type name ‘u_char’
u_char captures_data;
^
src/http/ngx_http_request.h:449:5: error: unknown type name ‘ngx_http_log_handler_pt’
ngx_http_log_handler_pt log_handler;
^
src/http/ngx_http_request.h:571:5: error: unknown type name ‘u_char’
u_char lowcase_header[NGX_HTTP_LC_HEADER_LEN];
^
src/http/ngx_http_request.h:573:5: error: unknown type name ‘u_char’
u_char header_name_start;
^
src/http/ngx_http_request.h:574:5: error: unknown type name ‘u_char’
u_char header_name_end;
^
src/http/ngx_http_request.h:575:5: error: unknown type name ‘u_char’
u_char header_start;
^
src/http/ngx_http_request.h:576:5: error: unknown type name ‘u_char’
u_char header_end;
^
src/http/ngx_http_request.h:583:5: error: unknown type name ‘u_char’
u_char uri_start;
^
src/http/ngx_http_request.h:584:5: error: unknown type name ‘u_char’
u_char uri_end;
^
src/http/ngx_http_request.h:585:5: error: unknown type name ‘u_char’
u_char uri_ext;
^
src/http/ngx_http_request.h:586:5: error: unknown type name ‘u_char’
u_char args_start;
^
src/http/ngx_http_request.h:587:5: error: unknown type name ‘u_char’
u_char request_start;
^
src/http/ngx_http_request.h:588:5: error: unknown type name ‘u_char’
u_char request_end;
^
src/http/ngx_http_request.h:589:5: error: unknown type name ‘u_char’
u_char method_end;
^
src/http/ngx_http_request.h:590:5: error: unknown type name ‘u_char’
u_char schema_start;
^
src/http/ngx_http_request.h:591:5: error: unknown type name ‘u_char’
u_char schema_end;
^
src/http/ngx_http_request.h:592:5: error: unknown type name ‘u_char’
u_char host_start;
^
src/http/ngx_http_request.h:593:5: error: unknown type name ‘u_char’
u_char host_end;
^
src/http/ngx_http_request.h:594:5: error: unknown type name ‘u_char’
u_char port_start;
^
src/http/ngx_http_request.h:595:5: error: unknown type name ‘u_char’
u_char port_end;
^
In file included from src/http/ngx_http.h:33:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/ngx_http_script.h:18:5: error: unknown type name ‘u_char’
u_char ip;
^
src/http/ngx_http_script.h:19:5: error: unknown type name ‘u_char’
u_char pos;
^
src/http/ngx_http_script.h:26:5: error: unknown type name ‘u_char’
u_char args;
^
src/http/ngx_http_script.h:232:1: error: unknown type name ‘u_char’
u_char ngx_http_script_run(ngx_http_request_t r, ngx_str_t value,
^
In file included from src/http/ngx_http_upstream.h:14:0,
from src/http/ngx_http.h:34,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/event/ngx_event.h:442:5: error: unknown type name ‘u_char’
u_char name;
^
src/event/ngx_event.h:508:1: error: unknown type name ‘u_char’
u_char ngx_accept_log_error(ngx_log_t log, u_char buf, size_t len);
^
src/event/ngx_event.h:508:46: error: unknown type name ‘u_char’
u_char ngx_accept_log_error(ngx_log_t log, u_char buf, size_t len);
^
In file included from src/http/ngx_http.h:34:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/ngx_http_upstream.h:129:5: error: unknown type name ‘u_char’
u_char file_name;
^
In file included from src/http/ngx_http.h:36:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/ngx_http_core_module.h:186:5: error: unknown type name ‘u_char’
u_char file_name;
^
src/http/ngx_http_core_module.h:451:5: error: unknown type name ‘u_char’
u_char file_name;
^
src/http/ngx_http_core_module.h:465:5: error: unknown type name ‘u_char’
u_char auto_redirect;
^
src/http/ngx_http_core_module.h:466:5: error: unknown type name ‘u_char’
u_char len;
^
src/http/ngx_http_core_module.h:467:5: error: unknown type name ‘u_char’
u_char name[1];
^
src/http/ngx_http_core_module.h:495:1: error: unknown type name ‘u_char’
u_char ngx_http_map_uri_to_path(ngx_http_request_t r, ngx_str_t name,
^
In file included from src/http/ngx_http.h:42:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/ngx_http_cache.h:43:5: error: unknown type name ‘u_char’
u_char key[NGX_HTTP_CACHE_KEY_LEN
^
src/http/ngx_http_cache.h:69:5: error: unknown type name ‘u_char’
u_char key[NGX_HTTP_CACHE_KEY_LEN];
^
src/http/ngx_http_cache.h:70:5: error: unknown type name ‘u_char’
u_char main[NGX_HTTP_CACHE_KEY_LEN];
^
src/http/ngx_http_cache.h:81:5: error: unknown type name ‘u_char’
u_char variant[NGX_HTTP_CACHE_KEY_LEN];
^
src/http/ngx_http_cache.h:136:5: error: unknown type name ‘u_short’
u_short valid_msec;
^
src/http/ngx_http_cache.h:137:5: error: unknown type name ‘u_short’
u_short header_start;
^
src/http/ngx_http_cache.h:138:5: error: unknown type name ‘u_short’
u_short body_start;
^
src/http/ngx_http_cache.h:139:5: error: unknown type name ‘u_char’
u_char etag_len;
^
src/http/ngx_http_cache.h:140:5: error: unknown type name ‘u_char’
u_char etag[NGX_HTTP_CACHE_ETAG_LEN];
^
src/http/ngx_http_cache.h:141:5: error: unknown type name ‘u_char’
u_char vary_len;
^
src/http/ngx_http_cache.h:142:5: error: unknown type name ‘u_char’
u_char vary[NGX_HTTP_CACHE_VARY_LEN];
^
src/http/ngx_http_cache.h:143:5: error: unknown type name ‘u_char’
u_char variant[NGX_HTTP_CACHE_KEY_LEN];
^
src/http/ngx_http_cache.h:194:65: error: unknown type name ‘u_char’
ngx_int_t ngx_http_file_cache_set_header(ngx_http_request_t r, u_char buf);
^
In file included from src/http/ngx_http.h:45:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/modules/ngx_http_ssi_filter_module.h:42:5: error: unknown type name ‘u_char’
u_char pos;
^
src/http/modules/ngx_http_ssi_filter_module.h:43:5: error: unknown type name ‘u_char’
u_char copy_start;
^
src/http/modules/ngx_http_ssi_filter_module.h:44:5: error: unknown type name ‘u_char’
u_char copy_end;
^
src/http/modules/ngx_http_ssi_filter_module.h:71:5: error: unknown type name ‘u_char’
u_char captures_data;
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12:0,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
src/http/ngx_http.h:70:5: error: unknown type name ‘u_char’
u_char start;
^
src/http/ngx_http.h:71:5: error: unknown type name ‘u_char’
u_char end;
^
src/http/ngx_http.h:110:47: error: unknown type name ‘u_char’
ngx_int_t ngx_http_arg(ngx_http_request_t r, u_char name, size_t len,
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:16:0,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:97:5: error: unknown type name ‘u_char’
u_char key; /< 用于哈希的关键字 /
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:16:0,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:103:13: error: unknown type name ‘u_char’
u_char
rule_detail; /
< 被匹配到的规则细节 /
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:187:5: error: unknown type name ‘u_char’
u_char rule_type[128]; /< 触发的规则类型 */
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:188:5: error: unknown type name ‘u_char’
u_char rule_deatils[NGX_HTTP_WAF_RULE_MAX_LEN]; /
< 触发的规则内容 /
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:243:5: error: unknown type name ‘u_char’
u_char text[32]; /< 点分十进制表示法 */
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:257:5: error: unknown type name ‘u_char’
u_char text[64]; /
< 冒号十六进制表示法 /
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:15:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:17,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:47:29: error: unknown type name ‘u_char’
static ngx_int_t parse_time(u_char
str);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:55:29: error: unknown type name ‘u_char’
static ngx_int_t parse_size(u_char
str);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:67:48: error: unknown type name ‘u_char’
static ngx_int_t ngx_str_split(ngx_str_t
str, u_char sep, size_t max_len, UT_array
array);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:90:23: error: unknown type name ‘u_char’
static char
to_c_str(u_char
destination, ngx_str_t ngx_str);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: In function ‘parse_ipv4’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:115:5: error: unknown type name ‘u_char’
u_char
c = ipv4->text;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: In function ‘parse_ipv6’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:199:5: error: unknown type name ‘u_char’
u_char
c = ipv6->text;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: At top level:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:268:29: error: unknown type name ‘u_char’
static ngx_int_t parse_time(u_char
str) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:292:29: error: unknown type name ‘u_char’
static ngx_int_t parse_size(u_char
str) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:315:48: error: unknown type name ‘u_char’
static ngx_int_t ngx_str_split(ngx_str_t
str, u_char sep, size_t max_len, UT_array
array) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:401:23: error: unknown type name ‘u_char’
static char
to_c_str(u_char
destination, ngx_str_t ngx_str) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: In function ‘utarray_ngx_str_ctor’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:415:32: error: ‘u_char’ undeclared (first use in this function)
_dst->data = malloc(sizeof(u_char) * (_src->len + 1));
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:415:32: note: each undeclared identifier is reported only once for each function it appears in
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:17:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:17,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h: At top level:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:38:41: error: unknown type name ‘u_char’
u_char
key,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:41:41: error: unknown type name ‘u_char’
u_char
rule_detail);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:54:41: error: unknown type name ‘u_char’
u_char
key,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:57:41: error: unknown type name ‘u_char’
u_char
out_rule_detail);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:68:45: error: unknown type name ‘u_char’
u_char
key,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:116:41: error: unknown type name ‘u_char’
u_char
key,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:119:41: error: unknown type name ‘u_char’
u_char
rule_detail) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:179:41: error: unknown type name ‘u_char’
u_char
key,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:182:41: error: unknown type name ‘u_char’
u_char
out_rule_detail) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:206:45: error: unknown type name ‘u_char’
u_char
key,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h: In function ‘lru_cache_manager_eliminate’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:240:5: error: implicit declaration of function ‘lru_cache_manager_remove’ [-Werror=implicit-function-declaration]
ngx_int_t ret = lru_cache_manager_remove(manager, chain_tail->key, chain_tail->key_byte_length);
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:17:0,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: At top level:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:157:49: error: unknown type name ‘u_char’
const u_char
rule_type, lru_cache_manager_t
cache, int check_sql_injection);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_cc’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:404:59: error: ‘u_char’ undeclared (first use in this function)
header->key.data = ngx_palloc(r->pool, sizeof(u_char) * header_key_len);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:414:13: error: implicit declaration of function ‘ngx_sprintf’ [-Werror=implicit-function-declaration]
header->value.len = ngx_sprintf(header->value.data, "%d", duration) - header->value.data;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:414:81: error: invalid operands to binary - (have ‘int’ and ‘int ’)
header->value.len = ngx_sprintf(header->value.data, "%d", duration) - header->value.data;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_white_url’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:458:58: error: ‘u_char’ undeclared (first use in this function)
(u_char
)"WHITE-URL", cache, NGX_HTTP_WAF_FALSE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:458:65: error: expected expression before ‘)’ token
(u_char
)"WHITE-URL", cache, NGX_HTTP_WAF_FALSE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:458:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:455:30: error: unused variable ‘cache’ [-Werror=unused-variable]
lru_cache_manager_t
cache = &(srv_conf->white_url_inspection_cache);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_url’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:498:58: error: ‘u_char’ undeclared (first use in this function)
(u_char
)"BLACK-URL", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:498:65: error: expected expression before ‘)’ token
(u_char
)"BLACK-URL", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:498:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:495:30: error: unused variable ‘cache’ [-Werror=unused-variable]
lru_cache_manager_t
cache = &(srv_conf->black_url_inspection_cache);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_args’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:538:58: error: ‘u_char’ undeclared (first use in this function)
(u_char
)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:538:65: error: expected expression before ‘)’ token
(u_char
)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:538:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:542:13: error: implicit declaration of function ‘ngx_str_split’ [-Werror=implicit-function-declaration]
ngx_str_split(p_args, '&', p_args->len, &args);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:553:69: error: expected expression before ‘)’ token
(u_char
)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:553:69: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:559:69: error: expected expression before ‘)’ token
(u_char
)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:559:69: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:535:30: error: unused variable ‘cache’ [-Werror=unused-variable]
lru_cache_manager_t
cache = &(srv_conf->black_args_inspection_cache);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_user_agent’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:612:58: error: ‘u_char’ undeclared (first use in this function)
(u_char
)"BLACK-UA", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:612:65: error: expected expression before ‘)’ token
(u_char
)"BLACK-UA", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:612:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:609:30: error: unused variable ‘cache’ [-Werror=unused-variable]
lru_cache_manager_t
cache = &(srv_conf->black_ua_inspection_cache);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_white_referer’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:656:58: error: ‘u_char’ undeclared (first use in this function)
(u_char
)"WHITE-REFERER", cache, NGX_HTTP_WAF_FALSE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:656:65: error: expected expression before ‘)’ token
(u_char
)"WHITE-REFERER", cache, NGX_HTTP_WAF_FALSE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:656:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:653:30: error: unused variable ‘cache’ [-Werror=unused-variable]
lru_cache_manager_t
cache = &(srv_conf->white_referer_inspection_cache);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_referer’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:701:54: error: ‘u_char’ undeclared (first use in this function)
(u_char
)"BLACK-REFERER", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:701:61: error: expected expression before ‘)’ token
(u_char
)"BLACK-REFERER", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:701:61: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:698:30: error: unused variable ‘cache’ [-Werror=unused-variable]
lru_cache_manager_t
cache = &(srv_conf->black_referer_inspection_cache);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_cookie’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:742:26: error: ‘u_char’ undeclared (first use in this function)
temp.data = (u_char
)ngx_pcalloc(r->pool, sizeof(u_char
) * temp.len);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:742:33: error: expected expression before ‘)’ token
temp.data = (u_char
)ngx_pcalloc(r->pool, sizeof(u_char
) * temp.len);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:750:69: error: expected expression before ‘)’ token
(u_char
)"BLACK-COOKIE", cache, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:750:69: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:747:34: error: unused variable ‘cache’ [-Werror=unused-variable]
lru_cache_manager_t
cache = &(srv_conf->black_cookie_inspection_cache);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_post’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:780:5: error: implicit declaration of function ‘ngx_atoi’ [-Werror=implicit-function-declaration]
ngx_int_t content_length = ngx_atoi(r->headers_in.content_length->value.data, r->headers_in.content_length->value.len);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:798:40: error: ‘u_char’ undeclared (first use in this function)
ngx_int_t buf_len = sizeof(u_char) * (i->buf->last - i->buf->pos);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:805:89: error: expected expression before ‘)’ token
ngx_http_waf_regex_exec_arrray_and_sqli(r, &body_str, srv_conf->black_post, (u_char
)"BLACK-POST", NULL, NGX_HTTP_WAF_TRUE);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:805:89: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here
static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t
r, ngx_str_t
str, ngx_array_t
array,
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: At top level:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:839:49: error: unknown type name ‘u_char’
const u_char
rule_type, lru_cache_manager_t
cache, int check_sql_injection) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_regex_exec_arrray_and_sqli’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:846:5: error: unknown type name ‘u_char’
u_char
rule_detail = NULL;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:855:9: error: implicit declaration of function ‘lru_cache_manager_find’ [-Werror=implicit-function-declaration]
cache_hit = lru_cache_manager_find(cache, str->data, str->len * sizeof(u_char), &is_matched, &rule_detail);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:855:80: error: ‘u_char’ undeclared (first use in this function)
cache_hit = lru_cache_manager_find(cache, str->data, str->len * sizeof(u_char), &is_matched, &rule_detail);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:872:43: error: expected expression before ‘)’ token
rule_detail = (u_char
)s_no_memory;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:893:9: error: implicit declaration of function ‘lru_cache_manager_add’ [-Werror=implicit-function-declaration]
lru_cache_manager_add(cache, str->data, str->len * sizeof(u_char), is_matched, rule_detail);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:840:17: error: unused variable ‘s_no_memory’ [-Werror=unused-variable]
static char s_no_memory[] = "No Memory";
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:18:0,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_rule_path_conf’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:179:5: error: implicit declaration of function ‘to_c_str’ [-Werror=implicit-function-declaration]
char
end = to_c_str((u_char
)full_path, srv_conf->waf_rule_path);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:179:27: error: ‘u_char’ undeclared (first use in this function)
char
end = to_c_str((u_char
)full_path, srv_conf->waf_rule_path);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:179:34: error: expected expression before ‘)’ token
char
end = to_c_str((u_char
)full_path, srv_conf->waf_rule_path);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_mode_conf’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:205:9: error: implicit declaration of function ‘ngx_strncasecmp’ [-Werror=implicit-function-declaration]
if (ngx_strncasecmp(modes[i].data, (u_char
)"GET", ngx_min(modes[i].len, sizeof("GET") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:205:45: error: ‘u_char’ undeclared (first use in this function)
if (ngx_strncasecmp(modes[i].data, (u_char
)"GET", ngx_min(modes[i].len, sizeof("GET") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:205:52: error: expected expression before ‘)’ token
if (ngx_strncasecmp(modes[i].data, (u_char
)"GET", ngx_min(modes[i].len, sizeof("GET") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:209:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char
)"!GET", ngx_min(modes[i].len, sizeof("!GET") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:214:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"HEAD", ngx_min(modes[i].len, sizeof("HEAD") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:218:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!HEAD", ngx_min(modes[i].len, sizeof("!HEAD") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:223:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"POST", ngx_min(modes[i].len, sizeof("POST") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:227:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!POST", ngx_min(modes[i].len, sizeof("!POST") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:232:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"PUT", ngx_min(modes[i].len, sizeof("PUT") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:236:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PUT", ngx_min(modes[i].len, sizeof("!PUT") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:241:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"DELETE", ngx_min(modes[i].len, sizeof("DELETE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:245:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!DELETE", ngx_min(modes[i].len, sizeof("!DELETE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:250:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"MKCOL", ngx_min(modes[i].len, sizeof("MKCOL") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:254:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!MKCOL", ngx_min(modes[i].len, sizeof("!MKCOL") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:259:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"COPY", ngx_min(modes[i].len, sizeof("COPY") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:263:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!COPY", ngx_min(modes[i].len, sizeof("!COPY") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:268:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"MOVE", ngx_min(modes[i].len, sizeof("MOVE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:272:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!MOVE", ngx_min(modes[i].len, sizeof("!MOVE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:277:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"OPTIONS", ngx_min(modes[i].len, sizeof("OPTIONS") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:281:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!OPTIONS", ngx_min(modes[i].len, sizeof("!OPTIONS") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:286:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"PROPFIND", ngx_min(modes[i].len, sizeof("PROPFIND") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:290:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PROPFIND", ngx_min(modes[i].len, sizeof("!PROPFIND") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:295:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"PROPPATCH", ngx_min(modes[i].len, sizeof("PROPPATCH") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:299:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PROPPATCH", ngx_min(modes[i].len, sizeof("!PROPPATCH") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:304:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"LOCK", ngx_min(modes[i].len, sizeof("LOCK") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:308:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!LOCK", ngx_min(modes[i].len, sizeof("!LOCK") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:313:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"UNLOCK", ngx_min(modes[i].len, sizeof("UNLOCK") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:317:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!UNLOCK", ngx_min(modes[i].len, sizeof("!UNLOCK") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:322:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"PATCH", ngx_min(modes[i].len, sizeof("PATCH") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:326:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PATCH", ngx_min(modes[i].len, sizeof("!PATCH") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:331:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"TRACE", ngx_min(modes[i].len, sizeof("TRACE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:335:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!TRACE", ngx_min(modes[i].len, sizeof("!TRACE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:340:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"IP", ngx_min(modes[i].len, sizeof("IP") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:344:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!IP", ngx_min(modes[i].len, sizeof("!IP") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:349:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"URL", ngx_min(modes[i].len, sizeof("URL") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:353:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!URL", ngx_min(modes[i].len, sizeof("!URL") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:358:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"RBODY", ngx_min(modes[i].len, sizeof("RBODY") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:362:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!RBODY", ngx_min(modes[i].len, sizeof("!RBODY") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:367:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"ARGS", ngx_min(modes[i].len, sizeof("ARGS") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:371:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!ARGS", ngx_min(modes[i].len, sizeof("!ARGS") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:376:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"UA", ngx_min(modes[i].len, sizeof("UA") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:380:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!UA", ngx_min(modes[i].len, sizeof("!UA") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:385:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"COOKIE", ngx_min(modes[i].len, sizeof("COOKIE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:389:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!COOKIE", ngx_min(modes[i].len, sizeof("!COOKIE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:394:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"REFERER", ngx_min(modes[i].len, sizeof("REFERER") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:398:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!REFERER", ngx_min(modes[i].len, sizeof("!REFERER") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:403:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"CC", ngx_min(modes[i].len, sizeof("CC") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:407:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!CC", ngx_min(modes[i].len, sizeof("!CC") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:412:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"STD", ngx_min(modes[i].len, sizeof("STD") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:416:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!STD", ngx_min(modes[i].len, sizeof("!STD") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:421:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"STATIC", ngx_min(modes[i].len, sizeof("STATIC") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:425:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!STATIC", ngx_min(modes[i].len, sizeof("!STATIC") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:430:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"DYNAMIC", ngx_min(modes[i].len, sizeof("DYNAMIC") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:434:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!DYNAMIC", ngx_min(modes[i].len, sizeof("!DYNAMIC") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:439:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"FULL", ngx_min(modes[i].len, sizeof("FULL") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:443:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!FULL", ngx_min(modes[i].len, sizeof("!FULL") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:448:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"COMPAT", ngx_min(modes[i].len, sizeof("COMPAT") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:452:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!COMPAT", ngx_min(modes[i].len, sizeof("!COMPAT") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:457:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"STRICT", ngx_min(modes[i].len, sizeof("STRICT") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:461:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!STRICT", ngx_min(modes[i].len, sizeof("!STRICT") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:466:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"CACHE", ngx_min(modes[i].len, sizeof("CACHE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:470:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!CACHE", ngx_min(modes[i].len, sizeof("!CACHE") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:475:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"LIB-INJECTION", ngx_min(modes[i].len, sizeof("LIB-INJECTION") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:479:57: error: expected expression before ‘)’ token
else if (ngx_strncasecmp(modes[i].data, (u_char*)"!LIB-INJECTION", ngx_min(modes[i].len, sizeof("!LIB-INJECTION") - 1)) == 0
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_cc_deny_conf’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:549:13: error: implicit declaration of function ‘parse_time’ [-Werror=implicit-function-declaration]
srv_conf->waf_cc_deny_duration = parse_time(p->data);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:556:13: error: implicit declaration of function ‘parse_size’ [-Werror=implicit-function-declaration]
srv_conf->waf_cc_deny_shm_zone_size = parse_size(p->data);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:574:5: error: unknown type name ‘u_char’
u_char* str = ngx_pcalloc(srv_conf->ngx_pool, sizeof(u_char) * 1025);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:574:58: error: ‘u_char’ undeclared (first use in this function)
u_char* str = ngx_pcalloc(srv_conf->ngx_pool, sizeof(u_char) * 1025);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_priority_conf’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:744:9: error: implicit declaration of function ‘strcasecmp’ [-Werror=implicit-function-declaration]
if (strcasecmp("CC", (char*)(p->data)) == 0) {
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_log_get_handler’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:904:42: error: ‘u_char’ undeclared (first use in this function)
v->data = ngx_palloc(r->pool, sizeof(u_char) * 64);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_blocked_get_handler’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:926:42: error: ‘u_char’ undeclared (first use in this function)
v->data = ngx_palloc(r->pool, sizeof(u_char) * 64);
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_rule_type_get_handler’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:960:46: error: ‘u_char’ undeclared (first use in this function)
v->data = ngx_palloc(r->pool, sizeof(u_char) * ngx_max(v->len, 2));
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_rule_deatils_handler’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:981:46: error: ‘u_char’ undeclared (first use in this function)
v->data = ngx_palloc(r->pool, sizeof(u_char) * ngx_max(v->len, 2));
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_spend_handler’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1001:9: error: unknown type name ‘u_char’
u_char text[32] = { 0 };
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1004:46: error: ‘u_char’ undeclared (first use in this function)
v->data = ngx_palloc(r->pool, sizeof(u_char) * v->len);
^
In file included from src/core/ngx_core.h:52:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_init_after_load_config’:
src/core/ngx_string.h:40:49: error: ‘u_char’ undeclared (first use in this function)
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1026:30: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_log_name = ngx_string("waf_log");
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1026:30: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_log_name = ngx_string("waf_log");
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1026:30: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_log_name = ngx_string("waf_log");
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1031:34: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_blocked_name = ngx_string("waf_blocked");
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1031:34: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_blocked_name = ngx_string("waf_blocked");
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1036:36: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_rule_type_name = ngx_string("waf_rule_type");
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1036:36: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_rule_type_name = ngx_string("waf_rule_type");
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1041:39: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_rule_details_name = ngx_string("waf_rule_details");
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1041:39: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_rule_details_name = ngx_string("waf_rule_details");
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char ) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1046:32: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_spend_name = ngx_string("waf_spend");
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char ) str }
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1046:32: note: in expansion of macro ‘ngx_string’
ngx_str_t waf_spend_name = ngx_string("waf_spend");
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char data;
^
In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:18:0,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘load_into_container’:
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1097:9: error: unknown type name ‘u_char’
u_char errstr[NGX_MAX_CONF_ERRSTR];
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1104:22: error: ‘u_char’ undeclared (first use in this function)
line.data = (u_char
)str;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1104:29: error: expected expression before ‘)’ token
line.data = (u_char
)str;
^
/usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1144:34: error: expected expression before ‘)’ token
to_c_str((u_char
)temp, line);
^
In file included from src/core/ngx_core.h:52:0,
from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11,
from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1:
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c: At top level:
src/core/ngx_string.h:40:49: error: ‘u_char’ undeclared here (not in a function)
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:9:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_mult_mount"),
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:9:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_mult_mount"),
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:9:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_mult_mount"),
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:17:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf"),
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:17:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf"),
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:25:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_rule_path"),
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:25:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_rule_path"),
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:33:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_mode"),
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:33:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_mode"),
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:41:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_cc_deny"),
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:41:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_cc_deny"),
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:49:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_cache"),
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:49:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_cache"),
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:57:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_priority"),
^
src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers]
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
^
/usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:57:9: note: in expansion of macro ‘ngx_string’
ngx_string("waf_priority"),
^
src/core/ngx_string.h:18:17: note: ‘data’ declared here
u_char *data;
^
cc1: all warnings being treated as errors
make[1]: *** [objs/addon/src/ngx_http_waf_module_core.o] Error 1
make[1]: Leaving directory `/data/n

<!-- gh-comment-id:834106393 --> @stepwen commented on GitHub (May 7, 2021): 切换成nginx1.19.10之后make仍然报错,报错信息如下: src/core/ngx_resolver.h:73:5: error: unknown type name ‘u_short’ u_short weight; ^ src/core/ngx_resolver.h:74:5: error: unknown type name ‘u_short’ u_short port; ^ src/core/ngx_resolver.h:80:5: error: unknown type name ‘u_short’ u_short priority; ^ src/core/ngx_resolver.h:81:5: error: unknown type name ‘u_short’ u_short weight; ^ src/core/ngx_resolver.h:82:5: error: unknown type name ‘u_short’ u_short port; ^ src/core/ngx_resolver.h:97:5: error: unknown type name ‘u_char’ u_char *name; ^ src/core/ngx_resolver.h:104:5: error: unknown type name ‘u_short’ u_short nlen; ^ src/core/ngx_resolver.h:105:5: error: unknown type name ‘u_short’ u_short qlen; ^ src/core/ngx_resolver.h:107:5: error: unknown type name ‘u_char’ u_char *query; ^ src/core/ngx_resolver.h:109:5: error: unknown type name ‘u_char’ u_char *query6; ^ src/core/ngx_resolver.h:115:9: error: unknown type name ‘u_char’ u_char *cname; ^ src/core/ngx_resolver.h:119:5: error: unknown type name ‘u_char’ u_char code; ^ src/core/ngx_resolver.h:120:5: error: unknown type name ‘u_short’ u_short naddrs; ^ src/core/ngx_resolver.h:121:5: error: unknown type name ‘u_short’ u_short nsrvs; ^ src/core/ngx_resolver.h:122:5: error: unknown type name ‘u_short’ u_short cnlen; ^ src/core/ngx_resolver.h:130:5: error: unknown type name ‘u_short’ u_short naddrs6; ^ In file included from src/core/ngx_core.h:89:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/core/ngx_open_file_cache.h:60:5: error: unknown type name ‘u_char’ u_char *name; ^ In file included from src/core/ngx_core.h:90:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/os/unix/ngx_os.h:19:53: error: unknown type name ‘u_char’ typedef ssize_t (*ngx_recv_pt)(ngx_connection_t *c, u_char *buf, size_t size); ^ src/os/unix/ngx_os.h:22:53: error: unknown type name ‘u_char’ typedef ssize_t (*ngx_send_pt)(ngx_connection_t *c, u_char *buf, size_t size); ^ src/os/unix/ngx_os.h:27:5: error: unknown type name ‘ngx_recv_pt’ ngx_recv_pt recv; ^ src/os/unix/ngx_os.h:29:5: error: unknown type name ‘ngx_recv_pt’ ngx_recv_pt udp_recv; ^ src/os/unix/ngx_os.h:30:5: error: unknown type name ‘ngx_send_pt’ ngx_send_pt send; ^ src/os/unix/ngx_os.h:31:5: error: unknown type name ‘ngx_send_pt’ ngx_send_pt udp_send; ^ src/os/unix/ngx_os.h:46:44: error: unknown type name ‘u_char’ ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size); ^ src/os/unix/ngx_os.h:48:48: error: unknown type name ‘u_char’ ssize_t ngx_udp_unix_recv(ngx_connection_t *c, u_char *buf, size_t size); ^ src/os/unix/ngx_os.h:49:44: error: unknown type name ‘u_char’ ssize_t ngx_unix_send(ngx_connection_t *c, u_char *buf, size_t size); ^ src/os/unix/ngx_os.h:52:48: error: unknown type name ‘u_char’ ssize_t ngx_udp_unix_send(ngx_connection_t *c, u_char *buf, size_t size); ^ In file included from src/core/ngx_core.h:91:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/core/ngx_connection.h:129:5: error: unknown type name ‘ngx_recv_pt’ ngx_recv_pt recv; ^ src/core/ngx_connection.h:130:5: error: unknown type name ‘ngx_send_pt’ ngx_send_pt send; ^ In file included from src/core/ngx_core.h:92:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/core/ngx_syslog.h:24:1: error: unknown type name ‘u_char’ u_char *ngx_syslog_add_header(ngx_syslog_peer_t *peer, u_char *buf); ^ src/core/ngx_syslog.h:24:56: error: unknown type name ‘u_char’ u_char *ngx_syslog_add_header(ngx_syslog_peer_t *peer, u_char *buf); ^ src/core/ngx_syslog.h:25:58: error: unknown type name ‘u_char’ void ngx_syslog_writer(ngx_log_t *log, ngx_uint_t level, u_char *buf, ^ src/core/ngx_syslog.h:27:50: error: unknown type name ‘u_char’ ssize_t ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len); ^ In file included from src/core/ngx_core.h:93:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/core/ngx_proxy_protocol.h:27:1: error: unknown type name ‘u_char’ u_char *ngx_proxy_protocol_read(ngx_connection_t *c, u_char *buf, ^ src/core/ngx_proxy_protocol.h:27:54: error: unknown type name ‘u_char’ u_char *ngx_proxy_protocol_read(ngx_connection_t *c, u_char *buf, ^ src/core/ngx_proxy_protocol.h:28:5: error: unknown type name ‘u_char’ u_char *last); ^ src/core/ngx_proxy_protocol.h:29:1: error: unknown type name ‘u_char’ u_char *ngx_proxy_protocol_write(ngx_connection_t *c, u_char *buf, ^ src/core/ngx_proxy_protocol.h:29:55: error: unknown type name ‘u_char’ u_char *ngx_proxy_protocol_write(ngx_connection_t *c, u_char *buf, ^ src/core/ngx_proxy_protocol.h:30:5: error: unknown type name ‘u_char’ u_char *last); ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12:0, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/ngx_http.h:26:1: error: unknown type name ‘u_char’ typedef u_char *(*ngx_http_log_handler_pt)(ngx_http_request_t *r, ^ src/http/ngx_http.h:27:29: error: unknown type name ‘u_char’ ngx_http_request_t *sr, u_char *buf, size_t len); ^ In file included from src/http/ngx_http.h:32:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/ngx_http_request.h:279:5: error: unknown type name ‘u_char’ u_char *content_type_lowcase; ^ src/http/ngx_http_request.h:433:5: error: unknown type name ‘u_char’ u_char *captures_data; ^ src/http/ngx_http_request.h:449:5: error: unknown type name ‘ngx_http_log_handler_pt’ ngx_http_log_handler_pt log_handler; ^ src/http/ngx_http_request.h:571:5: error: unknown type name ‘u_char’ u_char lowcase_header[NGX_HTTP_LC_HEADER_LEN]; ^ src/http/ngx_http_request.h:573:5: error: unknown type name ‘u_char’ u_char *header_name_start; ^ src/http/ngx_http_request.h:574:5: error: unknown type name ‘u_char’ u_char *header_name_end; ^ src/http/ngx_http_request.h:575:5: error: unknown type name ‘u_char’ u_char *header_start; ^ src/http/ngx_http_request.h:576:5: error: unknown type name ‘u_char’ u_char *header_end; ^ src/http/ngx_http_request.h:583:5: error: unknown type name ‘u_char’ u_char *uri_start; ^ src/http/ngx_http_request.h:584:5: error: unknown type name ‘u_char’ u_char *uri_end; ^ src/http/ngx_http_request.h:585:5: error: unknown type name ‘u_char’ u_char *uri_ext; ^ src/http/ngx_http_request.h:586:5: error: unknown type name ‘u_char’ u_char *args_start; ^ src/http/ngx_http_request.h:587:5: error: unknown type name ‘u_char’ u_char *request_start; ^ src/http/ngx_http_request.h:588:5: error: unknown type name ‘u_char’ u_char *request_end; ^ src/http/ngx_http_request.h:589:5: error: unknown type name ‘u_char’ u_char *method_end; ^ src/http/ngx_http_request.h:590:5: error: unknown type name ‘u_char’ u_char *schema_start; ^ src/http/ngx_http_request.h:591:5: error: unknown type name ‘u_char’ u_char *schema_end; ^ src/http/ngx_http_request.h:592:5: error: unknown type name ‘u_char’ u_char *host_start; ^ src/http/ngx_http_request.h:593:5: error: unknown type name ‘u_char’ u_char *host_end; ^ src/http/ngx_http_request.h:594:5: error: unknown type name ‘u_char’ u_char *port_start; ^ src/http/ngx_http_request.h:595:5: error: unknown type name ‘u_char’ u_char *port_end; ^ In file included from src/http/ngx_http.h:33:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/ngx_http_script.h:18:5: error: unknown type name ‘u_char’ u_char *ip; ^ src/http/ngx_http_script.h:19:5: error: unknown type name ‘u_char’ u_char *pos; ^ src/http/ngx_http_script.h:26:5: error: unknown type name ‘u_char’ u_char *args; ^ src/http/ngx_http_script.h:232:1: error: unknown type name ‘u_char’ u_char *ngx_http_script_run(ngx_http_request_t *r, ngx_str_t *value, ^ In file included from src/http/ngx_http_upstream.h:14:0, from src/http/ngx_http.h:34, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/event/ngx_event.h:442:5: error: unknown type name ‘u_char’ u_char *name; ^ src/event/ngx_event.h:508:1: error: unknown type name ‘u_char’ u_char *ngx_accept_log_error(ngx_log_t *log, u_char *buf, size_t len); ^ src/event/ngx_event.h:508:46: error: unknown type name ‘u_char’ u_char *ngx_accept_log_error(ngx_log_t *log, u_char *buf, size_t len); ^ In file included from src/http/ngx_http.h:34:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/ngx_http_upstream.h:129:5: error: unknown type name ‘u_char’ u_char *file_name; ^ In file included from src/http/ngx_http.h:36:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/ngx_http_core_module.h:186:5: error: unknown type name ‘u_char’ u_char *file_name; ^ src/http/ngx_http_core_module.h:451:5: error: unknown type name ‘u_char’ u_char *file_name; ^ src/http/ngx_http_core_module.h:465:5: error: unknown type name ‘u_char’ u_char auto_redirect; ^ src/http/ngx_http_core_module.h:466:5: error: unknown type name ‘u_char’ u_char len; ^ src/http/ngx_http_core_module.h:467:5: error: unknown type name ‘u_char’ u_char name[1]; ^ src/http/ngx_http_core_module.h:495:1: error: unknown type name ‘u_char’ u_char *ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *name, ^ In file included from src/http/ngx_http.h:42:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/ngx_http_cache.h:43:5: error: unknown type name ‘u_char’ u_char key[NGX_HTTP_CACHE_KEY_LEN ^ src/http/ngx_http_cache.h:69:5: error: unknown type name ‘u_char’ u_char key[NGX_HTTP_CACHE_KEY_LEN]; ^ src/http/ngx_http_cache.h:70:5: error: unknown type name ‘u_char’ u_char main[NGX_HTTP_CACHE_KEY_LEN]; ^ src/http/ngx_http_cache.h:81:5: error: unknown type name ‘u_char’ u_char variant[NGX_HTTP_CACHE_KEY_LEN]; ^ src/http/ngx_http_cache.h:136:5: error: unknown type name ‘u_short’ u_short valid_msec; ^ src/http/ngx_http_cache.h:137:5: error: unknown type name ‘u_short’ u_short header_start; ^ src/http/ngx_http_cache.h:138:5: error: unknown type name ‘u_short’ u_short body_start; ^ src/http/ngx_http_cache.h:139:5: error: unknown type name ‘u_char’ u_char etag_len; ^ src/http/ngx_http_cache.h:140:5: error: unknown type name ‘u_char’ u_char etag[NGX_HTTP_CACHE_ETAG_LEN]; ^ src/http/ngx_http_cache.h:141:5: error: unknown type name ‘u_char’ u_char vary_len; ^ src/http/ngx_http_cache.h:142:5: error: unknown type name ‘u_char’ u_char vary[NGX_HTTP_CACHE_VARY_LEN]; ^ src/http/ngx_http_cache.h:143:5: error: unknown type name ‘u_char’ u_char variant[NGX_HTTP_CACHE_KEY_LEN]; ^ src/http/ngx_http_cache.h:194:65: error: unknown type name ‘u_char’ ngx_int_t ngx_http_file_cache_set_header(ngx_http_request_t *r, u_char *buf); ^ In file included from src/http/ngx_http.h:45:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/modules/ngx_http_ssi_filter_module.h:42:5: error: unknown type name ‘u_char’ u_char *pos; ^ src/http/modules/ngx_http_ssi_filter_module.h:43:5: error: unknown type name ‘u_char’ u_char *copy_start; ^ src/http/modules/ngx_http_ssi_filter_module.h:44:5: error: unknown type name ‘u_char’ u_char *copy_end; ^ src/http/modules/ngx_http_ssi_filter_module.h:71:5: error: unknown type name ‘u_char’ u_char *captures_data; ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:12:0, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: src/http/ngx_http.h:70:5: error: unknown type name ‘u_char’ u_char *start; ^ src/http/ngx_http.h:71:5: error: unknown type name ‘u_char’ u_char *end; ^ src/http/ngx_http.h:110:47: error: unknown type name ‘u_char’ ngx_int_t ngx_http_arg(ngx_http_request_t *r, u_char *name, size_t len, ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:16:0, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:97:5: error: unknown type name ‘u_char’ u_char *key; /**< 用于哈希的关键字 */ ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:16:0, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:103:13: error: unknown type name ‘u_char’ u_char* rule_detail; /**< 被匹配到的规则细节 */ ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:187:5: error: unknown type name ‘u_char’ u_char rule_type[128]; /**< 触发的规则类型 */ ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:188:5: error: unknown type name ‘u_char’ u_char rule_deatils[NGX_HTTP_WAF_RULE_MAX_LEN]; /**< 触发的规则内容 */ ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:243:5: error: unknown type name ‘u_char’ u_char text[32]; /**< 点分十进制表示法 */ ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_type.h:257:5: error: unknown type name ‘u_char’ u_char text[64]; /**< 冒号十六进制表示法 */ ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:15:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:17, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:47:29: error: unknown type name ‘u_char’ static ngx_int_t parse_time(u_char* str); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:55:29: error: unknown type name ‘u_char’ static ngx_int_t parse_size(u_char* str); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:67:48: error: unknown type name ‘u_char’ static ngx_int_t ngx_str_split(ngx_str_t* str, u_char sep, size_t max_len, UT_array** array); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:90:23: error: unknown type name ‘u_char’ static char* to_c_str(u_char* destination, ngx_str_t ngx_str); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: In function ‘parse_ipv4’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:115:5: error: unknown type name ‘u_char’ u_char* c = ipv4->text; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: In function ‘parse_ipv6’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:199:5: error: unknown type name ‘u_char’ u_char* c = ipv6->text; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: At top level: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:268:29: error: unknown type name ‘u_char’ static ngx_int_t parse_time(u_char* str) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:292:29: error: unknown type name ‘u_char’ static ngx_int_t parse_size(u_char* str) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:315:48: error: unknown type name ‘u_char’ static ngx_int_t ngx_str_split(ngx_str_t* str, u_char sep, size_t max_len, UT_array** array) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:401:23: error: unknown type name ‘u_char’ static char* to_c_str(u_char* destination, ngx_str_t ngx_str) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h: In function ‘utarray_ngx_str_ctor’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:415:32: error: ‘u_char’ undeclared (first use in this function) _dst->data = malloc(sizeof(u_char) * (_src->len + 1)); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_util.h:415:32: note: each undeclared identifier is reported only once for each function it appears in In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:17:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:17, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h: At top level: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:38:41: error: unknown type name ‘u_char’ u_char* key, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:41:41: error: unknown type name ‘u_char’ u_char* rule_detail); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:54:41: error: unknown type name ‘u_char’ u_char* key, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:57:41: error: unknown type name ‘u_char’ u_char** out_rule_detail); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:68:45: error: unknown type name ‘u_char’ u_char* key, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:116:41: error: unknown type name ‘u_char’ u_char* key, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:119:41: error: unknown type name ‘u_char’ u_char* rule_detail) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:179:41: error: unknown type name ‘u_char’ u_char* key, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:182:41: error: unknown type name ‘u_char’ u_char** out_rule_detail) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:206:45: error: unknown type name ‘u_char’ u_char* key, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h: In function ‘lru_cache_manager_eliminate’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_lru_cache.h:240:5: error: implicit declaration of function ‘lru_cache_manager_remove’ [-Werror=implicit-function-declaration] ngx_int_t ret = lru_cache_manager_remove(manager, chain_tail->key, chain_tail->key_byte_length); ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:17:0, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: At top level: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:157:49: error: unknown type name ‘u_char’ const u_char* rule_type, lru_cache_manager_t* cache, int check_sql_injection); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_cc’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:404:59: error: ‘u_char’ undeclared (first use in this function) header->key.data = ngx_palloc(r->pool, sizeof(u_char) * header_key_len); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:414:13: error: implicit declaration of function ‘ngx_sprintf’ [-Werror=implicit-function-declaration] header->value.len = ngx_sprintf(header->value.data, "%d", duration) - header->value.data; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:414:81: error: invalid operands to binary - (have ‘int’ and ‘int *’) header->value.len = ngx_sprintf(header->value.data, "%d", duration) - header->value.data; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_white_url’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:458:58: error: ‘u_char’ undeclared (first use in this function) (u_char*)"WHITE-URL", cache, NGX_HTTP_WAF_FALSE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:458:65: error: expected expression before ‘)’ token (u_char*)"WHITE-URL", cache, NGX_HTTP_WAF_FALSE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:458:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:455:30: error: unused variable ‘cache’ [-Werror=unused-variable] lru_cache_manager_t* cache = &(srv_conf->white_url_inspection_cache); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_url’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:498:58: error: ‘u_char’ undeclared (first use in this function) (u_char*)"BLACK-URL", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:498:65: error: expected expression before ‘)’ token (u_char*)"BLACK-URL", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:498:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:495:30: error: unused variable ‘cache’ [-Werror=unused-variable] lru_cache_manager_t* cache = &(srv_conf->black_url_inspection_cache); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_args’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:538:58: error: ‘u_char’ undeclared (first use in this function) (u_char*)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:538:65: error: expected expression before ‘)’ token (u_char*)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:538:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:542:13: error: implicit declaration of function ‘ngx_str_split’ [-Werror=implicit-function-declaration] ngx_str_split(p_args, '&', p_args->len, &args); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:553:69: error: expected expression before ‘)’ token (u_char*)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:553:69: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:559:69: error: expected expression before ‘)’ token (u_char*)"BLACK-ARGS", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:559:69: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:535:30: error: unused variable ‘cache’ [-Werror=unused-variable] lru_cache_manager_t* cache = &(srv_conf->black_args_inspection_cache); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_user_agent’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:612:58: error: ‘u_char’ undeclared (first use in this function) (u_char*)"BLACK-UA", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:612:65: error: expected expression before ‘)’ token (u_char*)"BLACK-UA", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:612:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:609:30: error: unused variable ‘cache’ [-Werror=unused-variable] lru_cache_manager_t* cache = &(srv_conf->black_ua_inspection_cache); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_white_referer’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:656:58: error: ‘u_char’ undeclared (first use in this function) (u_char*)"WHITE-REFERER", cache, NGX_HTTP_WAF_FALSE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:656:65: error: expected expression before ‘)’ token (u_char*)"WHITE-REFERER", cache, NGX_HTTP_WAF_FALSE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:656:65: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:653:30: error: unused variable ‘cache’ [-Werror=unused-variable] lru_cache_manager_t* cache = &(srv_conf->white_referer_inspection_cache); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_referer’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:701:54: error: ‘u_char’ undeclared (first use in this function) (u_char*)"BLACK-REFERER", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:701:61: error: expected expression before ‘)’ token (u_char*)"BLACK-REFERER", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:701:61: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:698:30: error: unused variable ‘cache’ [-Werror=unused-variable] lru_cache_manager_t* cache = &(srv_conf->black_referer_inspection_cache); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_cookie’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:742:26: error: ‘u_char’ undeclared (first use in this function) temp.data = (u_char*)ngx_pcalloc(r->pool, sizeof(u_char*) * temp.len); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:742:33: error: expected expression before ‘)’ token temp.data = (u_char*)ngx_pcalloc(r->pool, sizeof(u_char*) * temp.len); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:750:69: error: expected expression before ‘)’ token (u_char*)"BLACK-COOKIE", cache, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:750:69: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:747:34: error: unused variable ‘cache’ [-Werror=unused-variable] lru_cache_manager_t* cache = &(srv_conf->black_cookie_inspection_cache); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_handler_check_black_post’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:780:5: error: implicit declaration of function ‘ngx_atoi’ [-Werror=implicit-function-declaration] ngx_int_t content_length = ngx_atoi(r->headers_in.content_length->value.data, r->headers_in.content_length->value.len); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:798:40: error: ‘u_char’ undeclared (first use in this function) ngx_int_t buf_len = sizeof(u_char) * (i->buf->last - i->buf->pos); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:805:89: error: expected expression before ‘)’ token ngx_http_waf_regex_exec_arrray_and_sqli(r, &body_str, srv_conf->black_post, (u_char*)"BLACK-POST", NULL, NGX_HTTP_WAF_TRUE); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:805:89: error: too few arguments to function ‘ngx_http_waf_regex_exec_arrray_and_sqli’ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:156:18: note: declared here static ngx_int_t ngx_http_waf_regex_exec_arrray_and_sqli(ngx_http_request_t* r, ngx_str_t* str, ngx_array_t* array, ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: At top level: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:839:49: error: unknown type name ‘u_char’ const u_char* rule_type, lru_cache_manager_t* cache, int check_sql_injection) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h: In function ‘ngx_http_waf_regex_exec_arrray_and_sqli’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:846:5: error: unknown type name ‘u_char’ u_char* rule_detail = NULL; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:855:9: error: implicit declaration of function ‘lru_cache_manager_find’ [-Werror=implicit-function-declaration] cache_hit = lru_cache_manager_find(cache, str->data, str->len * sizeof(u_char), &is_matched, &rule_detail); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:855:80: error: ‘u_char’ undeclared (first use in this function) cache_hit = lru_cache_manager_find(cache, str->data, str->len * sizeof(u_char), &is_matched, &rule_detail); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:872:43: error: expected expression before ‘)’ token rule_detail = (u_char*)s_no_memory; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:893:9: error: implicit declaration of function ‘lru_cache_manager_add’ [-Werror=implicit-function-declaration] lru_cache_manager_add(cache, str->data, str->len * sizeof(u_char), is_matched, rule_detail); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_check.h:840:17: error: unused variable ‘s_no_memory’ [-Werror=unused-variable] static char s_no_memory[] = "No Memory"; ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:18:0, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_rule_path_conf’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:179:5: error: implicit declaration of function ‘to_c_str’ [-Werror=implicit-function-declaration] char* end = to_c_str((u_char*)full_path, srv_conf->waf_rule_path); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:179:27: error: ‘u_char’ undeclared (first use in this function) char* end = to_c_str((u_char*)full_path, srv_conf->waf_rule_path); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:179:34: error: expected expression before ‘)’ token char* end = to_c_str((u_char*)full_path, srv_conf->waf_rule_path); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_mode_conf’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:205:9: error: implicit declaration of function ‘ngx_strncasecmp’ [-Werror=implicit-function-declaration] if (ngx_strncasecmp(modes[i].data, (u_char*)"GET", ngx_min(modes[i].len, sizeof("GET") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:205:45: error: ‘u_char’ undeclared (first use in this function) if (ngx_strncasecmp(modes[i].data, (u_char*)"GET", ngx_min(modes[i].len, sizeof("GET") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:205:52: error: expected expression before ‘)’ token if (ngx_strncasecmp(modes[i].data, (u_char*)"GET", ngx_min(modes[i].len, sizeof("GET") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:209:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!GET", ngx_min(modes[i].len, sizeof("!GET") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:214:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"HEAD", ngx_min(modes[i].len, sizeof("HEAD") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:218:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!HEAD", ngx_min(modes[i].len, sizeof("!HEAD") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:223:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"POST", ngx_min(modes[i].len, sizeof("POST") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:227:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!POST", ngx_min(modes[i].len, sizeof("!POST") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:232:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"PUT", ngx_min(modes[i].len, sizeof("PUT") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:236:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PUT", ngx_min(modes[i].len, sizeof("!PUT") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:241:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"DELETE", ngx_min(modes[i].len, sizeof("DELETE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:245:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!DELETE", ngx_min(modes[i].len, sizeof("!DELETE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:250:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"MKCOL", ngx_min(modes[i].len, sizeof("MKCOL") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:254:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!MKCOL", ngx_min(modes[i].len, sizeof("!MKCOL") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:259:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"COPY", ngx_min(modes[i].len, sizeof("COPY") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:263:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!COPY", ngx_min(modes[i].len, sizeof("!COPY") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:268:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"MOVE", ngx_min(modes[i].len, sizeof("MOVE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:272:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!MOVE", ngx_min(modes[i].len, sizeof("!MOVE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:277:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"OPTIONS", ngx_min(modes[i].len, sizeof("OPTIONS") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:281:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!OPTIONS", ngx_min(modes[i].len, sizeof("!OPTIONS") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:286:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"PROPFIND", ngx_min(modes[i].len, sizeof("PROPFIND") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:290:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PROPFIND", ngx_min(modes[i].len, sizeof("!PROPFIND") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:295:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"PROPPATCH", ngx_min(modes[i].len, sizeof("PROPPATCH") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:299:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PROPPATCH", ngx_min(modes[i].len, sizeof("!PROPPATCH") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:304:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"LOCK", ngx_min(modes[i].len, sizeof("LOCK") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:308:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!LOCK", ngx_min(modes[i].len, sizeof("!LOCK") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:313:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"UNLOCK", ngx_min(modes[i].len, sizeof("UNLOCK") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:317:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!UNLOCK", ngx_min(modes[i].len, sizeof("!UNLOCK") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:322:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"PATCH", ngx_min(modes[i].len, sizeof("PATCH") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:326:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!PATCH", ngx_min(modes[i].len, sizeof("!PATCH") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:331:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"TRACE", ngx_min(modes[i].len, sizeof("TRACE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:335:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!TRACE", ngx_min(modes[i].len, sizeof("!TRACE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:340:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"IP", ngx_min(modes[i].len, sizeof("IP") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:344:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!IP", ngx_min(modes[i].len, sizeof("!IP") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:349:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"URL", ngx_min(modes[i].len, sizeof("URL") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:353:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!URL", ngx_min(modes[i].len, sizeof("!URL") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:358:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"RBODY", ngx_min(modes[i].len, sizeof("RBODY") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:362:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!RBODY", ngx_min(modes[i].len, sizeof("!RBODY") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:367:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"ARGS", ngx_min(modes[i].len, sizeof("ARGS") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:371:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!ARGS", ngx_min(modes[i].len, sizeof("!ARGS") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:376:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"UA", ngx_min(modes[i].len, sizeof("UA") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:380:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!UA", ngx_min(modes[i].len, sizeof("!UA") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:385:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"COOKIE", ngx_min(modes[i].len, sizeof("COOKIE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:389:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!COOKIE", ngx_min(modes[i].len, sizeof("!COOKIE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:394:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"REFERER", ngx_min(modes[i].len, sizeof("REFERER") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:398:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!REFERER", ngx_min(modes[i].len, sizeof("!REFERER") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:403:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"CC", ngx_min(modes[i].len, sizeof("CC") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:407:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!CC", ngx_min(modes[i].len, sizeof("!CC") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:412:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"STD", ngx_min(modes[i].len, sizeof("STD") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:416:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!STD", ngx_min(modes[i].len, sizeof("!STD") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:421:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"STATIC", ngx_min(modes[i].len, sizeof("STATIC") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:425:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!STATIC", ngx_min(modes[i].len, sizeof("!STATIC") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:430:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"DYNAMIC", ngx_min(modes[i].len, sizeof("DYNAMIC") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:434:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!DYNAMIC", ngx_min(modes[i].len, sizeof("!DYNAMIC") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:439:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"FULL", ngx_min(modes[i].len, sizeof("FULL") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:443:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!FULL", ngx_min(modes[i].len, sizeof("!FULL") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:448:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"COMPAT", ngx_min(modes[i].len, sizeof("COMPAT") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:452:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!COMPAT", ngx_min(modes[i].len, sizeof("!COMPAT") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:457:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"STRICT", ngx_min(modes[i].len, sizeof("STRICT") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:461:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!STRICT", ngx_min(modes[i].len, sizeof("!STRICT") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:466:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"CACHE", ngx_min(modes[i].len, sizeof("CACHE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:470:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!CACHE", ngx_min(modes[i].len, sizeof("!CACHE") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:475:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"LIB-INJECTION", ngx_min(modes[i].len, sizeof("LIB-INJECTION") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:479:57: error: expected expression before ‘)’ token else if (ngx_strncasecmp(modes[i].data, (u_char*)"!LIB-INJECTION", ngx_min(modes[i].len, sizeof("!LIB-INJECTION") - 1)) == 0 ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_cc_deny_conf’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:549:13: error: implicit declaration of function ‘parse_time’ [-Werror=implicit-function-declaration] srv_conf->waf_cc_deny_duration = parse_time(p->data); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:556:13: error: implicit declaration of function ‘parse_size’ [-Werror=implicit-function-declaration] srv_conf->waf_cc_deny_shm_zone_size = parse_size(p->data); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:574:5: error: unknown type name ‘u_char’ u_char* str = ngx_pcalloc(srv_conf->ngx_pool, sizeof(u_char) * 1025); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:574:58: error: ‘u_char’ undeclared (first use in this function) u_char* str = ngx_pcalloc(srv_conf->ngx_pool, sizeof(u_char) * 1025); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_priority_conf’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:744:9: error: implicit declaration of function ‘strcasecmp’ [-Werror=implicit-function-declaration] if (strcasecmp("CC", (char*)(p->data)) == 0) { ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_log_get_handler’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:904:42: error: ‘u_char’ undeclared (first use in this function) v->data = ngx_palloc(r->pool, sizeof(u_char) * 64); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_blocked_get_handler’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:926:42: error: ‘u_char’ undeclared (first use in this function) v->data = ngx_palloc(r->pool, sizeof(u_char) * 64); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_rule_type_get_handler’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:960:46: error: ‘u_char’ undeclared (first use in this function) v->data = ngx_palloc(r->pool, sizeof(u_char) * ngx_max(v->len, 2)); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_rule_deatils_handler’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:981:46: error: ‘u_char’ undeclared (first use in this function) v->data = ngx_palloc(r->pool, sizeof(u_char) * ngx_max(v->len, 2)); ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_spend_handler’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1001:9: error: unknown type name ‘u_char’ u_char text[32] = { 0 }; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1004:46: error: ‘u_char’ undeclared (first use in this function) v->data = ngx_palloc(r->pool, sizeof(u_char) * v->len); ^ In file included from src/core/ngx_core.h:52:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘ngx_http_waf_init_after_load_config’: src/core/ngx_string.h:40:49: error: ‘u_char’ undeclared (first use in this function) #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1026:30: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_log_name = ngx_string("waf_log"); ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1026:30: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_log_name = ngx_string("waf_log"); ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1026:30: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_log_name = ngx_string("waf_log"); ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1031:34: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_blocked_name = ngx_string("waf_blocked"); ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1031:34: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_blocked_name = ngx_string("waf_blocked"); ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1036:36: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_rule_type_name = ngx_string("waf_rule_type"); ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1036:36: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_rule_type_name = ngx_string("waf_rule_type"); ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1041:39: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_rule_details_name = ngx_string("waf_rule_details"); ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1041:39: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_rule_details_name = ngx_string("waf_rule_details"); ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1046:32: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_spend_name = ngx_string("waf_spend"); ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1046:32: note: in expansion of macro ‘ngx_string’ ngx_str_t waf_spend_name = ngx_string("waf_spend"); ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ In file included from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:18:0, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h: In function ‘load_into_container’: /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1097:9: error: unknown type name ‘u_char’ u_char errstr[NGX_MAX_CONF_ERRSTR]; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1104:22: error: ‘u_char’ undeclared (first use in this function) line.data = (u_char*)str; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1104:29: error: expected expression before ‘)’ token line.data = (u_char*)str; ^ /usr/local/src/ngx_waf/inc/ngx_http_waf_module_config.h:1144:34: error: expected expression before ‘)’ token to_c_str((u_char*)temp, line); ^ In file included from src/core/ngx_core.h:52:0, from /usr/local/src/ngx_waf/inc/ngx_http_waf_module_core.h:11, from /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:1: /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c: At top level: src/core/ngx_string.h:40:49: error: ‘u_char’ undeclared here (not in a function) #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:9:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_mult_mount"), ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:9:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_mult_mount"), ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:9:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_mult_mount"), ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:17:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf"), ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:17:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf"), ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:25:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_rule_path"), ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:25:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_rule_path"), ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:33:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_mode"), ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:33:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_mode"), ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:41:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_cc_deny"), ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:41:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_cc_deny"), ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:49:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_cache"), ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:49:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_cache"), ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ src/core/ngx_string.h:40:57: error: expected expression before ‘)’ token #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:57:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_priority"), ^ src/core/ngx_string.h:40:57: error: missing initializer for field ‘data’ of ‘ngx_str_t’ [-Werror=missing-field-initializers] #define ngx_string(str) { sizeof(str) - 1, (u_char *) str } ^ /usr/local/src/ngx_waf/src/ngx_http_waf_module_core.c:57:9: note: in expansion of macro ‘ngx_string’ ngx_string("waf_priority"), ^ src/core/ngx_string.h:18:17: note: ‘data’ declared here u_char *data; ^ cc1: all warnings being treated as errors make[1]: *** [objs/addon/src/ngx_http_waf_module_core.o] Error 1 make[1]: Leaving directory `/data/n
Author
Owner

@ADD-SP commented on GitHub (May 8, 2021):

没见过这类错误,猜测可能是 gcc 版本太低,可以尝试使用更新的 gcc 编译。

<!-- gh-comment-id:835375778 --> @ADD-SP commented on GitHub (May 8, 2021): 没见过这类错误,猜测可能是 gcc 版本太低,可以尝试使用更新的 gcc 编译。
Author
Owner

@stepwen commented on GitHub (May 9, 2021):

在安装前已经用yum升级了gcc 目前gcc版本如下:
[root@VM_0_4_centos ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

<!-- gh-comment-id:835717000 --> @stepwen commented on GitHub (May 9, 2021): 在安装前已经用yum升级了gcc 目前gcc版本如下: [root@VM_0_4_centos ~]# gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux Thread model: posix gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
Author
Owner

@ADD-SP commented on GitHub (May 9, 2021):

gcc 4.8.5 是 2015 年的版本了。试着安装比较新的 gcc 吧。

<!-- gh-comment-id:835735241 --> @ADD-SP commented on GitHub (May 9, 2021): gcc 4.8.5 是 2015 年的版本了。试着安装比较新的 gcc 吧。
Author
Owner

@ADD-SP commented on GitHub (May 9, 2021):

@stepwen

尝试将 --with-cc-opt 中的 -std=c99 改为 -std=gnu99 试试。

<!-- gh-comment-id:835786604 --> @ADD-SP commented on GitHub (May 9, 2021): @stepwen 尝试将 `--with-cc-opt` 中的 `-std=c99` 改为 `-std=gnu99` 试试。
Author
Owner

@stepwen commented on GitHub (May 10, 2021):

改为 -std=gnu99 可正常编译,已测试访问www.bak返回403 感谢

<!-- gh-comment-id:836007976 --> @stepwen commented on GitHub (May 10, 2021): 改为 -std=gnu99 可正常编译,已测试访问www.bak返回403 感谢
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ngx_waf#158
No description provided.