commit
148e921279
4 changed files with 55 additions and 29 deletions
|
@ -11,25 +11,28 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=libevhtp
|
PKG_NAME:=libevhtp
|
||||||
PKG_VERSION:=1.1.6
|
PKG_VERSION:=1.2.0
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
PKG_LICENSE:=BSD-3-Clause
|
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/criticalstack/libevhtp/tar.gz/$(PKG_VERSION)?
|
PKG_SOURCE_URL:=https://codeload.github.com/criticalstack/libevhtp/tar.gz/$(PKG_VERSION)?
|
||||||
PKG_HASH:=725dd0a32237b2a097cdc2003d09278a082ccce310aaba7441a5fd8fa8f26635
|
PKG_HASH:=d8d98072693f5f68ccd74d327dedfa2f6add4446ac2799689c2f58dd480aa301
|
||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_MAINTAINER:=
|
||||||
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
CMAKE_INSTALL:=1
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
define Package/libevhtp
|
define Package/libevhtp
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
TITLE:=A more flexible replacement for libevent's httpd API
|
TITLE:=A more flexible replacement for libevent's httpd API
|
||||||
MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
|
URL:=https://github.com/criticalstack/libevhtp
|
||||||
URL:=https://github.com/ellzey/libevhtp
|
DEPENDS:=+libevent2 +libevent2-openssl +libevent2-pthreads
|
||||||
DEPENDS:=+libevent2 +libevent2-openssl +libevent2-pthreads +libopenssl +libpthread
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libevhtp/description
|
define Package/libevhtp/description
|
||||||
|
@ -38,12 +41,4 @@ define Package/libevhtp/description
|
||||||
meaning the developer never thought of it being used for creating a full-fledged HTTP service.
|
meaning the developer never thought of it being used for creating a full-fledged HTTP service.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/cmake.mk
|
|
||||||
|
|
||||||
define Build/InstallDev
|
|
||||||
$(INSTALL_DIR) $(1)/usr/{include,lib}
|
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
|
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage,libevhtp))
|
$(eval $(call BuildPackage,libevhtp))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/evhtp.c
|
--- a/evhtp.c
|
||||||
+++ b/evhtp.c
|
+++ b/evhtp.c
|
||||||
@@ -1686,16 +1686,15 @@ _evhtp_ssl_thread_lock(int mode, int typ
|
@@ -1817,16 +1817,15 @@ _evhtp_ssl_thread_lock(int mode, int typ
|
||||||
#endif
|
#endif
|
||||||
static void
|
static void
|
||||||
_evhtp_ssl_delete_scache_ent(evhtp_ssl_ctx_t * ctx, evhtp_ssl_sess_t * sess) {
|
_evhtp_ssl_delete_scache_ent(evhtp_ssl_ctx_t * ctx, evhtp_ssl_sess_t * sess) {
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
if (cfg->scache_del) {
|
if (cfg->scache_del) {
|
||||||
(cfg->scache_del)(htp, sid, slen);
|
(cfg->scache_del)(htp, sid, slen);
|
||||||
@@ -1706,14 +1705,17 @@ static int
|
@@ -1837,14 +1836,17 @@ static int
|
||||||
_evhtp_ssl_add_scache_ent(evhtp_ssl_t * ssl, evhtp_ssl_sess_t * sess) {
|
_evhtp_ssl_add_scache_ent(evhtp_ssl_t * ssl, evhtp_ssl_sess_t * sess) {
|
||||||
evhtp_connection_t * connection;
|
evhtp_connection_t * connection;
|
||||||
evhtp_ssl_cfg_t * cfg;
|
evhtp_ssl_cfg_t * cfg;
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
SSL_set_timeout(sess, cfg->scache_timeout);
|
SSL_set_timeout(sess, cfg->scache_timeout);
|
||||||
|
|
||||||
@@ -1725,7 +1727,7 @@ _evhtp_ssl_add_scache_ent(evhtp_ssl_t *
|
@@ -1856,7 +1858,7 @@ _evhtp_ssl_add_scache_ent(evhtp_ssl_t *
|
||||||
}
|
}
|
||||||
|
|
||||||
static evhtp_ssl_sess_t *
|
static evhtp_ssl_sess_t *
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
evhtp_connection_t * connection;
|
evhtp_connection_t * connection;
|
||||||
evhtp_ssl_cfg_t * cfg;
|
evhtp_ssl_cfg_t * cfg;
|
||||||
evhtp_ssl_sess_t * sess;
|
evhtp_ssl_sess_t * sess;
|
||||||
@@ -1767,12 +1769,12 @@ _evhtp_ssl_servername(evhtp_ssl_t * ssl,
|
@@ -1898,12 +1900,12 @@ _evhtp_ssl_servername(evhtp_ssl_t * ssl,
|
||||||
connection->vhost_via_sni = 1;
|
connection->vhost_via_sni = 1;
|
||||||
|
|
||||||
SSL_set_SSL_CTX(ssl, evhtp_vhost->ssl_ctx);
|
SSL_set_SSL_CTX(ssl, evhtp_vhost->ssl_ctx);
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
return SSL_TLSEXT_ERR_OK;
|
return SSL_TLSEXT_ERR_OK;
|
||||||
@@ -3017,15 +3019,21 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
|
@@ -3197,15 +3199,21 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
|
|
||||||
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
|
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
|
||||||
SSL_CTX_set_options(htp->ssl_ctx, SSL_MODE_RELEASE_BUFFERS);
|
SSL_CTX_set_options(htp->ssl_ctx, SSL_MODE_RELEASE_BUFFERS);
|
||||||
@@ -3062,7 +3070,11 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
|
@@ -3242,7 +3250,11 @@ evhtp_ssl_init(evhtp_t * htp, evhtp_ssl_
|
||||||
SSL_CTX_set_verify(htp->ssl_ctx, cfg->verify_peer, cfg->x509_verify_cb);
|
SSL_CTX_set_verify(htp->ssl_ctx, cfg->verify_peer, cfg->x509_verify_cb);
|
||||||
|
|
||||||
if (cfg->x509_chk_issued_cb != NULL) {
|
if (cfg->x509_chk_issued_cb != NULL) {
|
||||||
|
@ -117,7 +117,7 @@
|
||||||
#else
|
#else
|
||||||
typedef void evhtp_ssl_sess_t;
|
typedef void evhtp_ssl_sess_t;
|
||||||
typedef void evhtp_ssl_t;
|
typedef void evhtp_ssl_t;
|
||||||
@@ -154,9 +159,9 @@ typedef int (*evhtp_headers_iterator)(ev
|
@@ -157,9 +162,9 @@ typedef int (*evhtp_headers_iterator)(ev
|
||||||
typedef int (*evhtp_ssl_verify_cb)(int pre_verify, evhtp_x509_store_ctx_t * ctx);
|
typedef int (*evhtp_ssl_verify_cb)(int pre_verify, evhtp_x509_store_ctx_t * ctx);
|
||||||
typedef int (*evhtp_ssl_chk_issued_cb)(evhtp_x509_store_ctx_t * ctx, evhtp_x509_t * x, evhtp_x509_t * issuer);
|
typedef int (*evhtp_ssl_chk_issued_cb)(evhtp_x509_store_ctx_t * ctx, evhtp_x509_t * x, evhtp_x509_t * issuer);
|
||||||
|
|
||||||
|
@ -129,4 +129,4 @@
|
||||||
+typedef evhtp_ssl_sess_t * (*evhtp_ssl_scache_get)(evhtp_connection_t * connection, evhtp_ssl_data_t * sid, int sid_len);
|
+typedef evhtp_ssl_sess_t * (*evhtp_ssl_scache_get)(evhtp_connection_t * connection, evhtp_ssl_data_t * sid, int sid_len);
|
||||||
typedef void * (*evhtp_ssl_scache_init)(evhtp_t *);
|
typedef void * (*evhtp_ssl_scache_init)(evhtp_t *);
|
||||||
|
|
||||||
#define EVHTP_VERSION "1.1.6"
|
#define EVHTP_VERSION "1.2.0"
|
||||||
|
|
|
@ -1,21 +1,40 @@
|
||||||
diff --git a/evhtp.c b/evhtp.c
|
|
||||||
index 24687be..b646925 100644
|
|
||||||
--- a/evhtp.c
|
--- a/evhtp.c
|
||||||
+++ b/evhtp.c
|
+++ b/evhtp.c
|
||||||
@@ -1667,9 +1667,9 @@ _evhtp_accept_cb(evserv_t * serv, int fd, struct sockaddr * s, int sl, void * ar
|
@@ -1797,10 +1797,10 @@ _evhtp_accept_cb(evserv_t * serv, int fd, struct sockaddr * s, int sl, void * ar
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef EVHTP_DISABLE_SSL
|
#ifndef EVHTP_DISABLE_SSL
|
||||||
#ifndef EVHTP_DISABLE_EVTHR
|
-#ifndef EVHTP_DISABLE_EVTHR
|
||||||
-static unsigned long
|
-static unsigned long
|
||||||
-_evhtp_ssl_get_thread_id(void) {
|
-_evhtp_ssl_get_thread_id(void) {
|
||||||
- return (unsigned long)pthread_self();
|
- return (unsigned long)pthread_self();
|
||||||
|
+#if !defined(EVHTP_DISABLE_EVTHR) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
|
||||||
+static void
|
+static void
|
||||||
+_evhtp_ssl_get_thread_id(CRYPTO_THREADID *id) {
|
+_evhtp_ssl_get_thread_id(CRYPTO_THREADID *id) {
|
||||||
+ CRYPTO_THREADID_set_numeric(id, (unsigned long)pthread_self());
|
+ CRYPTO_THREADID_set_numeric(id, (unsigned long)pthread_self());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -2999,7 +2999,7 @@ evhtp_ssl_use_threads(void) {
|
@@ -3050,7 +3050,9 @@ evhtp_use_threads(evhtp_t * htp, evhtp_thread_init_cb init_cb, int nthreads, voi
|
||||||
|
htp->thread_init_cbarg = arg;
|
||||||
|
|
||||||
|
#ifndef EVHTP_DISABLE_SSL
|
||||||
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
|
evhtp_ssl_use_threads();
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!(htp->thr_pool = evthr_pool_new(nthreads, _evhtp_thread_init, htp))) {
|
||||||
|
@@ -3161,7 +3163,7 @@ evhtp_set_post_accept_cb(evhtp_t * htp, evhtp_post_accept_cb cb, void * arg) {
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef EVHTP_DISABLE_SSL
|
||||||
|
-#ifndef EVHTP_DISABLE_EVTHR
|
||||||
|
+#if !defined(EVHTP_DISABLE_EVTHR) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
|
||||||
|
int
|
||||||
|
evhtp_ssl_use_threads(void) {
|
||||||
|
int i;
|
||||||
|
@@ -3179,7 +3181,7 @@ evhtp_ssl_use_threads(void) {
|
||||||
pthread_mutex_init(&(ssl_locks[i]), NULL);
|
pthread_mutex_init(&(ssl_locks[i]), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
libs/libevhtp/patches/030-uclibc.patch
Normal file
12
libs/libevhtp/patches/030-uclibc.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/test_proxy.c
|
||||||
|
+++ b/test_proxy.c
|
||||||
|
@@ -5,6 +5,9 @@
|
||||||
|
#include <errno.h>
|
||||||
|
#include <evhtp.h>
|
||||||
|
|
||||||
|
+#ifndef SIGTERM
|
||||||
|
+#define SIGTERM 15
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
make_request(evbase_t * evbase,
|
Loading…
Reference in a new issue