1From 145b88d0c1a71ba6f4d216768388e0c5853d3990 Mon Sep 17 00:00:00 2001 2From: Matt Weber <matthew.weber@rockwellcollins.com> 3Date: Tue, 5 Feb 2019 10:34:55 -0600 4Subject: [PATCH] Support for libressl coexisting with openssl 1.1.x 5MIME-Version: 1.0 6Content-Type: text/plain; charset=UTF-8 7Content-Transfer-Encoding: 8bit 8 9libressl needs to not follow the 1.1.x path of APIs 10 11Resolves build failure like 12In file included from svc.c:28:0: 13pound.h:348:3: warning: data definition has no type or storage class 14 DEFINE_LHASH_OF(TABNODE); 15 ^~~~~~~~~~~~~~~ 16pound.h:348:3: warning: type defaults to ‘int’ in declaration of ‘DEFINE_LHASH_OF’ [-Wimplicit-int] 17svc.c: In function ‘t_add’: 18svc.c:69:15: warning: implicit declaration of function ‘lh_TABNODE_insert’; did you mean ‘lh_OBJ_NAME_insert’? [-Wimplicit-function-declaration] 19 if((old = lh_TABNODE_insert(tab, t)) != NULL) { 20 ^~~~~~~~~~~~~~~~~ 21 lh_OBJ_NAME_insert 22 23Upstream: Site was down when I tried (http://www.apsis.ch/pound) 24 25Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> 26--- 27 config.c | 2 +- 28 svc.c | 20 ++++++++++---------- 29 2 files changed, 11 insertions(+), 11 deletions(-) 30 31diff --git a/config.c b/config.c 32index 58b928e..3ad7fbb 100644 33--- a/config.c 34+++ b/config.c 35@@ -574,7 +574,7 @@ parse_service(const char *svc_name) 36 pthread_mutex_init(&res->mut, NULL); 37 if(svc_name) 38 strncpy(res->name, svc_name, KEY_SIZE); 39-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 40+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 41 if((res->sessions = lh_TABNODE_new(t_hash, t_cmp)) == NULL) 42 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 43 if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL) 44diff --git a/svc.c b/svc.c 45index f125be4..8a2f62c 100644 46--- a/svc.c 47+++ b/svc.c 48@@ -27,7 +27,7 @@ 49 50 #include "pound.h" 51 52-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 53+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 54 # define TABNODE_GET_DOWN_LOAD(t) lh_TABNODE_get_down_load(t) 55 # define TABNODE_SET_DOWN_LOAD(t,n) lh_TABNODE_set_down_load(t,n) 56 #else 57@@ -65,7 +65,7 @@ t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const 58 } 59 memcpy(t->content, content, cont_len); 60 t->last_acc = time(NULL); 61-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 62+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 63 if((old = lh_TABNODE_insert(tab, t)) != NULL) { 64 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 65 if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) { 66@@ -91,7 +91,7 @@ t_find(LHASH_OF(TABNODE) *const tab, char *const key) 67 TABNODE t, *res; 68 69 t.key = key; 70-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 71+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 72 if((res = lh_TABNODE_retrieve(tab, &t)) != NULL) { 73 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 74 if((res = (TABNODE *)LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) { 75@@ -113,7 +113,7 @@ t_remove(LHASH_OF(TABNODE) *const tab, char *const key) 76 TABNODE t, *res; 77 78 t.key = key; 79-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 80+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 81 if((res = lh_TABNODE_delete(tab, &t)) != NULL) { 82 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 83 if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) { 84@@ -140,7 +140,7 @@ t_old_doall_arg(TABNODE *t, ALL_ARG *a) 85 TABNODE *res; 86 87 if(t->last_acc < a->lim) 88-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 89+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 90 if((res = lh_TABNODE_delete(a->tab, t)) != NULL) { 91 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 92 if((res = LHM_lh_delete(TABNODE, a->tab, t)) != NULL) { 93@@ -160,7 +160,7 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG) 94 IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *) 95 #endif 96 97-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 98+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 99 IMPLEMENT_LHASH_DOALL_ARG(TABNODE,ALL_ARG); 100 #endif 101 102@@ -177,7 +177,7 @@ t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim) 103 a.lim = lim; 104 down_load = TABNODE_GET_DOWN_LOAD(tab); 105 TABNODE_SET_DOWN_LOAD(tab, 0); 106-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 107+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 108 lh_TABNODE_doall_ALL_ARG(tab, t_old_doall_arg, &a); 109 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 110 LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a); 111@@ -194,7 +194,7 @@ t_cont_doall_arg(TABNODE *t, ALL_ARG *arg) 112 TABNODE *res; 113 114 if(memcmp(t->content, arg->content, arg->cont_len) == 0) 115-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 116+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 117 if((res = lh_TABNODE_delete(arg->tab, t)) != NULL) { 118 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 119 if((res = LHM_lh_delete(TABNODE, arg->tab, t)) != NULL) { 120@@ -228,7 +228,7 @@ t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len 121 a.cont_len = cont_len; 122 down_load = TABNODE_GET_DOWN_LOAD(tab); 123 TABNODE_SET_DOWN_LOAD(tab, 0); 124-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 125+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 126 lh_TABNODE_doall_ALL_ARG(tab, t_cont_doall_arg, &a); 127 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 128 LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a); 129@@ -1514,7 +1514,7 @@ dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const 130 131 a.control_sock = control_sock; 132 a.backends = backends; 133-#if OPENSSL_VERSION_NUMBER >= 0x10100000L 134+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined LIBRESSL_VERSION_NUMBER 135 lh_TABNODE_doall_DUMP_ARG(sess, t_dump_doall_arg, &a); 136 #elif OPENSSL_VERSION_NUMBER >= 0x10000000L 137 LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a); 138-- 1391.9.1 140 141