X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Flibcollectdclient%2Fnetwork_buffer.c;h=61c7c22e2d7ab963a2d98977f8c0c3747ad18723;hb=3ed71d2774fcacdf0c88b3a6d81bd826a6893b32;hp=0b34e1f49c25e53ebd060227dcac15982140ef46;hpb=7bd436249b37b04807bbe7491998a9528056919f;p=collectd.git diff --git a/src/libcollectdclient/network_buffer.c b/src/libcollectdclient/network_buffer.c index 0b34e1f4..61c7c22e 100644 --- a/src/libcollectdclient/network_buffer.c +++ b/src/libcollectdclient/network_buffer.c @@ -54,7 +54,9 @@ /* Re enable deprecation warnings */ # pragma GCC diagnostic warning "-Wdeprecated-declarations" # endif +# if GCRYPT_VERSION_NUMBER < 0x010600 GCRY_THREAD_OPTION_PTHREAD_IMPL; +# endif #endif #include "collectd/network_buffer.h" @@ -106,9 +108,11 @@ struct lcc_network_buffer_s char *username; char *password; +#if HAVE_LIBGCRYPT gcry_cipher_hd_t encr_cypher; size_t encr_header_len; char encr_iv[16]; +#endif }; #define SSTRNCPY(dst,src,sz) do { \ @@ -128,7 +132,10 @@ static _Bool have_gcrypt (void) /* {{{ */ return (result); need_init = 0; +#if HAVE_LIBGCRYPT +# if GCRYPT_VERSION_NUMBER < 0x010600 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); +# endif if (!gcry_check_version (GCRYPT_VERSION)) return (0); @@ -138,8 +145,12 @@ static _Bool have_gcrypt (void) /* {{{ */ result = 1; return (1); +#else + return(0); +#endif } /* }}} _Bool have_gcrypt */ +#ifndef HAVE_HTONLL static uint64_t htonll (uint64_t val) /* {{{ */ { static int config = 0; @@ -169,6 +180,7 @@ static uint64_t htonll (uint64_t val) /* {{{ */ return ((((uint64_t) lo) << 32) | ((uint64_t) hi)); } /* }}} uint64_t htonll */ +#endif static double htond (double val) /* {{{ */ { @@ -494,6 +506,7 @@ static int nb_add_value_list (lcc_network_buffer_t *nb, /* {{{ */ return (0); } /* }}} int nb_add_value_list */ +#if HAVE_LIBGCRYPT static int nb_add_signature (lcc_network_buffer_t *nb) /* {{{ */ { char *buffer; @@ -620,6 +633,7 @@ static int nb_add_encryption (lcc_network_buffer_t *nb) /* {{{ */ return (0); } /* }}} int nb_add_encryption */ +#endif /* * Public functions @@ -720,6 +734,7 @@ int lcc_network_buffer_initialize (lcc_network_buffer_t *nb) /* {{{ */ nb->ptr = nb->buffer; nb->free = nb->size; +#if HAVE_LIBGCRYPT if (nb->seclevel == SIGN) { size_t username_len; @@ -765,6 +780,7 @@ int lcc_network_buffer_initialize (lcc_network_buffer_t *nb) /* {{{ */ ADD_GENERIC (nb, hash, sizeof (hash)); assert ((nb->encr_header_len + nb->free) == nb->size); } +#endif return (0); } /* }}} int lcc_network_buffer_initialize */ @@ -774,10 +790,12 @@ int lcc_network_buffer_finalize (lcc_network_buffer_t *nb) /* {{{ */ if (nb == NULL) return (EINVAL); +#if HAVE_LIBGCRYPT if (nb->seclevel == SIGN) nb_add_signature (nb); else if (nb->seclevel == ENCRYPT) nb_add_encryption (nb); +#endif return (0); } /* }}} int lcc_network_buffer_finalize */