Bernd Kuhls | d849e6c | 2019-02-05 11:07:36 -0600 | [diff] [blame] | 1 | From 145b88d0c1a71ba6f4d216768388e0c5853d3990 Mon Sep 17 00:00:00 2001 |
| 2 | From: Matt Weber <matthew.weber@rockwellcollins.com> |
| 3 | Date: Tue, 5 Feb 2019 10:34:55 -0600 |
| 4 | Subject: [PATCH] Support for libressl coexisting with openssl 1.1.x |
| 5 | MIME-Version: 1.0 |
| 6 | Content-Type: text/plain; charset=UTF-8 |
| 7 | Content-Transfer-Encoding: 8bit |
| 8 | |
| 9 | libressl needs to not follow the 1.1.x path of APIs |
| 10 | |
| 11 | Resolves build failure like |
| 12 | In file included from svc.c:28:0: |
| 13 | pound.h:348:3: warning: data definition has no type or storage class |
| 14 | DEFINE_LHASH_OF(TABNODE); |
| 15 | ^~~~~~~~~~~~~~~ |
| 16 | pound.h:348:3: warning: type defaults to ‘int’ in declaration of ‘DEFINE_LHASH_OF’ [-Wimplicit-int] |
| 17 | svc.c: In function ‘t_add’: |
| 18 | svc.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 | |
| 23 | Upstream: Site was down when I tried (http://www.apsis.ch/pound) |
| 24 | |
| 25 | Signed-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 | |
| 31 | diff --git a/config.c b/config.c |
| 32 | index 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) |
| 44 | diff --git a/svc.c b/svc.c |
| 45 | index 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 | -- |
| 139 | 1.9.1 |
| 140 | |