X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fnetwork.c;fp=src%2Fnetwork.c;h=1f8fe0ada0635f1d21a63c83991f8248569af35d;hp=3cf222744262796d4ce964cf3c76d4c690202d49;hb=9e7b3a035836474cb4af253b248de30d5eb97f4d;hpb=400596160704146845940d7d9c4f794c0d2ddc03 diff --git a/src/network.c b/src/network.c index 3cf22274..1f8fe0ad 100644 --- a/src/network.c +++ b/src/network.c @@ -3366,9 +3366,17 @@ static int network_init (void) have_init = 1; #if HAVE_LIBGCRYPT - gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); - gcry_control (GCRYCTL_INIT_SECMEM, 32768, 0); - gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); + /* http://lists.gnupg.org/pipermail/gcrypt-devel/2003-August/000458.html + * Because you can't know in a library whether another library has + * already initialized the library + */ + if (!gcry_control (GCRYCTL_ANY_INITIALIZATION_P)) + { + gcry_check_version(NULL); /* before calling any other functions */ + gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); + gcry_control (GCRYCTL_INIT_SECMEM, 32768, 0); + gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); + } #endif if (network_config_stats != 0)