yaoweibin / nginx_tcp_proxy_module

add the feature of tcp proxy with nginx, with health check and status monitor
http://yaoweibin.github.com/nginx_tcp_proxy_module
1.64k stars 365 forks source link

complie fail with nginx 1.11.2 #140

Closed taomaree closed 6 years ago

taomaree commented 8 years ago
wget -c http://nginx.org/download/nginx-1.11.2.tar.gz
tar zxfv nginx-1.11.2.tar.gz
cd nginx-1.11.2
patch -p1 < ../nginx_tcp_proxy_module-master/tcp_1_8.patch
./configure --prefix=/app/nginx --with-http_ssl_module --with-http_v2_module \
 --add-module=../nginx_tcp_proxy_module-master
make

outputs:

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + using system zlib library

  nginx path prefix: "/app/nginx"
  nginx binary file: "/app/nginx/sbin/nginx"
  nginx modules path: "/app/nginx/modules"
  nginx configuration prefix: "/app/nginx/conf"
  nginx configuration file: "/app/nginx/conf/nginx.conf"
  nginx pid file: "/app/nginx/logs/nginx.pid"
  nginx error log file: "/app/nginx/logs/error.log"
  nginx http access log file: "/app/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

...
...
...
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g   -I src/core -I src/event -I src/event/modules -I src/os/unix -I ../nginx_tcp_proxy_module-master/modules -I ../nginx_tcp_proxy_module-master/parsers -I ../nginx_tcp_proxy_module-master -I objs -I src/http -I src/http/modules -I src/http/v2 \
    -o objs/addon/nginx_tcp_proxy_module-master/ngx_tcp_core_module.o \
    ../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c
../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:33:40: error: ‘NGX_CONF_MULTI’ undeclared here (not in a function)
       NGX_TCP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_MULTI|NGX_CONF_NOARGS,
                                        ^
../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c: In function ‘ngx_tcp_core_listen’:
../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:484:9: error: cannot convert to a pointer type
         if (ngx_memcmp(ls[i].sockaddr + off, u.sockaddr + off, len) != 0) {
         ^
../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:504:5: error: incompatible type for argument 2 of ‘memcpy’
     ngx_memcpy(ls->sockaddr, u.sockaddr, u.socklen);
     ^
In file included from src/os/unix/ngx_linux_config.h:27:0,
                 from src/core/ngx_config.h:26,
                 from ../nginx_tcp_proxy_module-master/ngx_tcp_core_module.c:2:
/usr/include/string.h:42:14: note: expected ‘const void * __restrict__’ but argument is of type ‘ngx_sockaddr_t’
 extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
              ^
make[1]: *** [objs/addon/nginx_tcp_proxy_module-master/ngx_tcp_core_module.o] Error 1
make[1]: Leaving directory `/app/build/nginx-1.11.2'
make: *** [build] Error 2
taomaree commented 7 years ago

src/core/ngx_conf_file.h insert a line #define NGX_CONF_MULTI 0x00000000 /* compatibility */

before #define NGX_DIRECT_CONF 0x00010000

then fixed NGX_CONF_MULTI error.

and ngx_tcp_core_listen error still exists.

../nginx_tcp_proxy_module/ngx_tcp_core_module.c: In function ‘ngx_tcp_core_listen’:
../nginx_tcp_proxy_module/ngx_tcp_core_module.c:484:9: error: cannot convert to a pointer type                                                                                  if (ngx_memcmp(ls[i].sockaddr + off, u.sockaddr + off, len) != 0) {
         ^
In file included from src/core/ngx_core.h:51:0,
                 from ../nginx_tcp_proxy_module/ngx_tcp_core_module.c:3:
../nginx_tcp_proxy_module/ngx_tcp_core_module.c:504:30: error: incompatible type for argument 2 of ‘memcpy’
     ngx_memcpy(ls->sockaddr, u.sockaddr, u.socklen);
                              ^
src/core/ngx_string.h:102:54: note: in definition of macro ‘ngx_memcpy’
 #define ngx_memcpy(dst, src, n)   (void) memcpy(dst, src, n)
                                                      ^
In file included from /usr/include/features.h:367:0,
                 from /usr/include/x86_64-linux-gnu/sys/types.h:25,
                 from src/os/unix/ngx_linux_config.h:18,
                 from src/core/ngx_config.h:26,
                 from ../nginx_tcp_proxy_module/ngx_tcp_core_module.c:2:
/usr/include/x86_64-linux-gnu/bits/string3.h:50:1: note: expected ‘const void * restrict’ but argument is of type ‘ngx_sockaddr_t {aka union <anonymous>}’
 __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
 ^
objs/Makefile:1223: recipe for target 'objs/addon/nginx_tcp_proxy_module/ngx_tcp_core_module.o' failed
youyouStorm commented 6 years ago

nginx-1.10.3 no problems