--- Makefile (revision 366553) +++ Makefile (working copy) @@ -24,17 +24,39 @@ -DCMAKE_LIBRARY_PATH:PATH=lib/event2 CMAKE_BUILD_TYPE= Release +OPTIONS_DEFINE= EVHTP_DISABLE_SSL EVHTP_DISABLE_EVTHR EVHTP_DISABLE_REGEX \ + EVHTP_BUILD_SHARED EVHTP_USE_DEFER_ACCEPT +EVHTP_DISABLE_SSL_DESC= Disable ssl support + +EVHTP_DISABLE_SSL_CMAKE_ON= -DEVHTP_DISABLE_SSL:STRING=ON +EVHTP_DISABLE_SSL_CMAKE_OFF= -DEVHTP_DISABLE_SSL:STRING=OFF +EVHTP_DISABLE_EVTHR_DESC= Disable evthread support +EVHTP_DISABLE_EVTHR_CMAKE_ON= -DEVHTP_DISABLE_EVTHR:STRING=ON +EVHTP_DISABLE_EVTHR_CMAKE_OFF= -DEVHTP_DISABLE_EVTHR:STRING=OFF +EVHTP_DISABLE_REGEX_DESC= Disable regex support +EVHTP_DISABLE_REGEX_CMAKE_ON= -DEVHTP_DISABLE_REGEX:STRING=ON +EVHTP_DISABLE_REGEX_CMAKE_OFF= -DEVHTP_DISABLE_REGEX:STRING=OFF +EVHTP_BUILD_SHARED_DESC= Build shared library too +EVHTP_BUILD_SHARED_CMAKE_ON= -DEVHTP_BUILD_SHARED:STRING=ON +EVHTP_BUILD_SHARED_CMAKE_OFF= -DEVHTP_BUILD_SHARED:STRING=OFF +EVHTP_USE_DEFER_ACCEPT_DESC= Enable TCP_DEFER_ACCEPT +EVHTP_USE_DEFER_ACCEPT_CMAKE_ON= -DEVHTP_USE_DEFER_ACCEPT:STRING=ON +EVHTP_USE_DEFER_ACCEPT_CMAKE_OFF= -DEVHTP_USE_DEFER_ACCEPT:STRING=OFF + +OPTIONS_DEFAULT= EVHTP_BUILD_SHARED + +.include + PLIST_FILES= include/evhtp.h\ include/evhtp-config.h \ include/evthr.h \ include/htparse.h \ - include/onigposix.h \ - lib/libevhtp.a + include/onigposix.h -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 900000 -BROKEN= Does not build on FreeBSD 8.x +.if ${PORT_OPTIONS:MEVHTP_BUILD_SHARED} +PLIST_FILES+= lib/libevhtp.so +.else +PLIST_FILES+= lib/libevhtp.a .endif -.include +.include --- files/patch-evhtp.c (revision 0) +++ files/patch-evhtp.c (working copy) @@ -0,0 +1,28 @@ +--- evhtp.c.orig 2014-03-23 07:50:50.000000000 -0400 ++++ evhtp.c 2014-08-28 09:08:40.970619326 -0400 +@@ -6,6 +6,10 @@ + #include + #include + #include ++#ifdef SO_ACCEPTFILTER ++#include ++#include ++#endif + #ifndef WIN32 + #include + #include +@@ -2740,7 +2744,14 @@ + + sock = evconnlistener_get_fd(htp->server); + ++#ifdef TCP_DEFER_ACCEPT + setsockopt(sock, IPPROTO_TCP, TCP_DEFER_ACCEPT, &one, (ev_socklen_t)sizeof(one)); ++#elif SO_ACCEPTFILTER ++ struct accept_filter_arg afa; ++ bzero(&afa, sizeof(afa)); ++ strcpy(afa.af_name, "httpready"); ++ setsockopt(sock, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa)); ++#endif + setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &one, (ev_socklen_t)sizeof(one)); + } + #endif