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