diff -ur ocserv-0.2.1.orig/configure.ac ocserv-0.2.1/configure.ac --- ocserv-0.2.1.orig/configure.ac 2013-11-06 20:47:34.000000000 +0100 +++ ocserv-0.2.1/configure.ac 2013-11-11 13:48:45.536372275 +0100 @@ -94,6 +94,27 @@ AC_DEFINE([ANYCONNECT_CLIENT_COMPAT], [], [Enable Anyconnect compatibility]) fi +dnl Test for http_parser library +with_local_http_parser=yes +LIBS="$oldlibs -lhttp_parser" +AC_MSG_CHECKING([for http_parser library]) +AC_LINK_IFELSE([AC_LANG_PROGRAM([ + #include ],[ + http_parser_init(0, 0);])], + [AC_MSG_RESULT(yes) + AC_SUBST([HTTP_PARSER_LIBS], [-lhttp_parser]) + AC_SUBST([HTTP_PARSER_CFLAGS], []) + with_local_http_parser=no], + [AC_MSG_RESULT(no) + AC_MSG_WARN([[ +*** +*** libhttp-parser not found. +*** An included version of the library will be used. +*** ]])]) +LIBS="$oldlibs" +AM_CONDITIONAL(LOCAL_HTTP_PARSER, test "x$with_local_http_parser" != xno) + + dnl needed in the included PCL AC_C_VOLATILE AC_C_CONST diff -ur ocserv-0.2.1.orig/src/Makefile.am ocserv-0.2.1/src/Makefile.am --- ocserv-0.2.1.orig/src/Makefile.am 2013-11-05 19:59:45.000000000 +0100 +++ ocserv-0.2.1/src/Makefile.am 2013-11-11 13:48:45.536372275 +0100 @@ -3,10 +3,18 @@ AM_CPPFLAGS = -I$(srcdir)/../gl/ -I$(builddir)/../gl/ \ -I$(srcdir)/ -I$(builddir)/../ $(LIBOPTS_CFLAGS) +if LOCAL_HTTP_PARSER +AM_CPPFLAGS += -I$(srcdir)/http-parser/ +HTTP_PARSER_SOURCES = http-parser/http_parser.c http-parser/http_parser.h +NEEDED_HTTP_PARSER_LIBS = +else +NEEDED_HTTP_PARSER_LIBS = $(HTTP_PARSER_LIBS) +endif + if NEED_LIBOPTS -LIBOPTS = ../libopts/libopts.a +NEEDED_LIBOPTS = ../libopts/libopts.a else -LIBOPTS = $(LIBOPTS_LDADD) +NEEDED_LIBOPTS = $(LIBOPTS_LDADD) endif EXTRA_DIST = ccan/licenses/BSD-MIT version.inc.in \ @@ -24,21 +32,21 @@ ocserv_SOURCES = ocserv-args.def ocserv-args.c ocserv-args.h ocserv_SOURCES += main.c main-auth.c worker-vpn.c worker-auth.c tlslib.c \ - http-parser/http_parser.c ipc.h cookies.c worker-tun.c main-misc.c \ + ipc.h cookies.c worker-tun.c main-misc.c \ main-config.c ip-lease.c ip-lease.h \ - vpn.h cookies.h tlslib.h http-parser/http_parser.h log.c tun.c tun.h \ + vpn.h cookies.h tlslib.h log.c tun.c tun.h \ config.c pam.c pam.h worker-resume.c worker.h main-resume.c main.h \ worker-extras.c main-auth.h html.c html.h \ main-user.c worker-misc.c setproctitle.h route-add.c route-add.h \ setproctitle.c worker-privs.c plain.c plain.h common.h common.c \ sec-mod.c sec-mod.h script-list.h system.c system.h icmp-ping.c icmp-ping.h \ worker-bandwidth.c worker-bandwidth.h \ - str.c str.h gettime.h $(CCAN_SOURCES) + str.c str.h gettime.h $(CCAN_SOURCES) $(HTTP_PARSER_SOURCES) -ocserv_LDADD = ../gl/libgnu.a $(LIBOPTS) +ocserv_LDADD = ../gl/libgnu.a $(NEEDED_LIBOPTS) ocserv_LDADD += $(LIBGNUTLS_LIBS) $(PAM_LIBS) $(LIBUTIL) \ - $(LIBSECCOMP) $(LIBWRAP) $(LIBCRYPT) + $(LIBSECCOMP) $(LIBWRAP) $(LIBCRYPT) $(NEEDED_HTTP_PARSER_LIBS) if PCL ocserv_LDADD += $(PCL_LIBS) @@ -54,7 +62,7 @@ ocpasswd_SOURCES = ocpasswd-args.def ocpasswd-args.c ocpasswd-args.h \ ocpasswd.c -ocpasswd_LDADD = ../gl/libgnu.a $(LIBOPTS) +ocpasswd_LDADD = ../gl/libgnu.a $(NEEDED_LIBOPTS) ocpasswd_LDADD += $(LIBGNUTLS_LIBS) $(LIBCRYPT) ocpasswd-args.c ocpasswd-args.h: $(srcdir)/ocpasswd-args.def diff -ur ocserv-0.2.1.orig/src/vpn.h ocserv-0.2.1/src/vpn.h --- ocserv-0.2.1.orig/src/vpn.h 2013-11-05 19:34:54.000000000 +0100 +++ ocserv-0.2.1/src/vpn.h 2013-11-11 13:49:03.608470106 +0100 @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include #include diff -ur ocserv-0.2.1.orig/src/worker-auth.c ocserv-0.2.1/src/worker-auth.c --- ocserv-0.2.1.orig/src/worker-auth.c 2013-11-05 19:38:09.000000000 +0100 +++ ocserv-0.2.1/src/worker-auth.c 2013-11-11 13:48:45.537372280 +0100 @@ -41,7 +41,7 @@ #include #include -#include +#include #define SUCCESS_MSG_HEAD "\n" \ "\n" \ diff -ur ocserv-0.2.1.orig/src/worker-tun.c ocserv-0.2.1/src/worker-tun.c --- ocserv-0.2.1.orig/src/worker-tun.c 2013-11-05 19:38:22.000000000 +0100 +++ ocserv-0.2.1/src/worker-tun.c 2013-11-11 13:48:45.537372280 +0100 @@ -45,8 +45,6 @@ #include #include -#include - /* if local is non zero it returns the local, otherwise the remote */ static int get_ip(struct worker_st* ws, int fd, int family, unsigned int local, diff -ur ocserv-0.2.1.orig/src/worker-vpn.c ocserv-0.2.1/src/worker-vpn.c --- ocserv-0.2.1.orig/src/worker-vpn.c 2013-11-05 20:06:51.000000000 +0100 +++ ocserv-0.2.1/src/worker-vpn.c 2013-11-11 13:48:45.537372280 +0100 @@ -49,7 +49,7 @@ #include #include -#include +#include /* after that time (secs) of inactivity in the UDP part, connection switches to * TCP (if activity occurs there).