buildroot/package/pound/0003-Support-for-libressl-coexisting-with-openssl-1.1.x.patch
Bernd Kuhls d849e6cc7a package/pound: Fix build with OpenSSL 1.1.x
The patches enable two new API configurations, one for OpenSSL 1.1.x
and the other LibreSSL.

A dependency is added to use the Buildroot host tool openssl to
create headers (dh512.h).  This resolves a host OS mismatch with
openssl versions. (The Makefile does this generation as part of
the initial build)

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Patrick Havelange <patrick.havelange@essensium.com>
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-02-05 19:09:06 +01:00

141 lines
5.9 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 145b88d0c1a71ba6f4d216768388e0c5853d3990 Mon Sep 17 00:00:00 2001
From: Matt Weber <matthew.weber@rockwellcollins.com>
Date: Tue, 5 Feb 2019 10:34:55 -0600
Subject: [PATCH] Support for libressl coexisting with openssl 1.1.x
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
libressl needs to not follow the 1.1.x path of APIs
Resolves build failure like
In file included from svc.c:28:0:
pound.h:348:3: warning: data definition has no type or storage class
DEFINE_LHASH_OF(TABNODE);
^~~~~~~~~~~~~~~
pound.h:348:3: warning: type defaults to int in declaration of DEFINE_LHASH_OF [-Wimplicit-int]
svc.c: In function t_add:
svc.c:69:15: warning: implicit declaration of function lh_TABNODE_insert; did you mean lh_OBJ_NAME_insert? [-Wimplicit-function-declaration]
if((old = lh_TABNODE_insert(tab, t)) != NULL) {
^~~~~~~~~~~~~~~~~
lh_OBJ_NAME_insert
Upstream: Site was down when I tried (http://www.apsis.ch/pound)
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
---
config.c | 2 +-
svc.c | 20 ++++++++++----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/config.c b/config.c
index 58b928e..3ad7fbb 100644
--- a/config.c
+++ b/config.c
@@ -574,7 +574,7 @@ parse_service(const char *svc_name)
pthread_mutex_init(&res->mut, NULL);
if(svc_name)
strncpy(res->name, svc_name, KEY_SIZE);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
if((res->sessions = lh_TABNODE_new(t_hash, t_cmp)) == NULL)
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL)
diff --git a/svc.c b/svc.c
index f125be4..8a2f62c 100644
--- a/svc.c
+++ b/svc.c
@@ -27,7 +27,7 @@
#include "pound.h"
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
# define TABNODE_GET_DOWN_LOAD(t) lh_TABNODE_get_down_load(t)
# define TABNODE_SET_DOWN_LOAD(t,n) lh_TABNODE_set_down_load(t,n)
#else
@@ -65,7 +65,7 @@ t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const
}
memcpy(t->content, content, cont_len);
t->last_acc = time(NULL);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
if((old = lh_TABNODE_insert(tab, t)) != NULL) {
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) {
@@ -91,7 +91,7 @@ t_find(LHASH_OF(TABNODE) *const tab, char *const key)
TABNODE t, *res;
t.key = key;
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
if((res = lh_TABNODE_retrieve(tab, &t)) != NULL) {
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
if((res = (TABNODE *)LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) {
@@ -113,7 +113,7 @@ t_remove(LHASH_OF(TABNODE) *const tab, char *const key)
TABNODE t, *res;
t.key = key;
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
if((res = lh_TABNODE_delete(tab, &t)) != NULL) {
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) {
@@ -140,7 +140,7 @@ t_old_doall_arg(TABNODE *t, ALL_ARG *a)
TABNODE *res;
if(t->last_acc < a->lim)
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
if((res = lh_TABNODE_delete(a->tab, t)) != NULL) {
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
if((res = LHM_lh_delete(TABNODE, a->tab, t)) != NULL) {
@@ -160,7 +160,7 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG)
IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *)
#endif
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
IMPLEMENT_LHASH_DOALL_ARG(TABNODE,ALL_ARG);
#endif
@@ -177,7 +177,7 @@ t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim)
a.lim = lim;
down_load = TABNODE_GET_DOWN_LOAD(tab);
TABNODE_SET_DOWN_LOAD(tab, 0);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
lh_TABNODE_doall_ALL_ARG(tab, t_old_doall_arg, &a);
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a);
@@ -194,7 +194,7 @@ t_cont_doall_arg(TABNODE *t, ALL_ARG *arg)
TABNODE *res;
if(memcmp(t->content, arg->content, arg->cont_len) == 0)
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
if((res = lh_TABNODE_delete(arg->tab, t)) != NULL) {
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
if((res = LHM_lh_delete(TABNODE, arg->tab, t)) != NULL) {
@@ -228,7 +228,7 @@ t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len
a.cont_len = cont_len;
down_load = TABNODE_GET_DOWN_LOAD(tab);
TABNODE_SET_DOWN_LOAD(tab, 0);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
lh_TABNODE_doall_ALL_ARG(tab, t_cont_doall_arg, &a);
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a);
@@ -1514,7 +1514,7 @@ dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const
a.control_sock = control_sock;
a.backends = backends;
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER
lh_TABNODE_doall_DUMP_ARG(sess, t_dump_doall_arg, &a);
#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a);
--
1.9.1