libevhtp: Update to 1.2.0
In the tree, libevhtp is used only for Seafile. This is the most recent version that Haiwen lists as working. Updated threads patch for OpenSSL 1.1. Removed Maintainer as he is inactive. Simplified Makefile a little bit and reorganized for consistency between packages. Fixed compilation with uClibc-ng. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
70c3ceba57
commit
9c77d6721f
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