X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnetwork.c;h=1b6cf1ea9713e1add30e345f8f26b0ec0f486553;hb=7a762196fa7a4024c19ceac9b0c6918a5d8f62d5;hp=97b965644e6673617de163e1235b590b05c3aa6c;hpb=4a66dbcdb3c68eec473626e969670717303ec5e4;p=collectd.git diff --git a/src/network.c b/src/network.c index 97b96564..1b6cf1ea 100644 --- a/src/network.c +++ b/src/network.c @@ -460,7 +460,7 @@ static int network_dispatch_values (value_list_t *vl, /* {{{ */ } } - plugin_dispatch_values_secure (vl); + plugin_dispatch_values (vl); stats_values_dispatched++; meta_data_destroy (vl->meta); @@ -501,8 +501,15 @@ static void network_init_gcrypt (void) /* {{{ */ if (gcry_control (GCRYCTL_ANY_INITIALIZATION_P)) return; - gcry_check_version (NULL); /* before calling any other functions */ + /* http://www.gnupg.org/documentation/manuals/gcrypt/Multi_002dThreading.html + * To ensure thread-safety, it's important to set GCRYCTL_SET_THREAD_CBS + * *before* initalizing Libgcrypt with gcry_check_version(), which itself must + * be called before any other gcry_* function. GCRYCTL_ANY_INITIALIZATION_P + * above doesn't count, as it doesn't implicitly initalize Libgcrypt. + * + * tl;dr: keep all these gry_* statements in this exact order please. */ gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); + gcry_check_version (NULL); gcry_control (GCRYCTL_INIT_SECMEM, 32768); gcry_control (GCRYCTL_INITIALIZATION_FINISHED); } /* }}} void network_init_gcrypt */ @@ -3336,13 +3343,13 @@ static int network_stats_read (void) /* {{{ */ vl.values[0].derive = (derive_t) copy_octets_rx; vl.values[1].derive = (derive_t) copy_octets_tx; sstrncpy (vl.type, "if_octets", sizeof (vl.type)); - plugin_dispatch_values_secure (&vl); + plugin_dispatch_values (&vl); /* Packets received / send */ vl.values[0].derive = (derive_t) copy_packets_rx; vl.values[1].derive = (derive_t) copy_packets_tx; sstrncpy (vl.type, "if_packets", sizeof (vl.type)); - plugin_dispatch_values_secure (&vl); + plugin_dispatch_values (&vl); /* Values (not) dispatched and (not) send */ sstrncpy (vl.type, "total_values", sizeof (vl.type)); @@ -3351,28 +3358,28 @@ static int network_stats_read (void) /* {{{ */ vl.values[0].derive = (derive_t) copy_values_dispatched; sstrncpy (vl.type_instance, "dispatch-accepted", sizeof (vl.type_instance)); - plugin_dispatch_values_secure (&vl); + plugin_dispatch_values (&vl); vl.values[0].derive = (derive_t) copy_values_not_dispatched; sstrncpy (vl.type_instance, "dispatch-rejected", sizeof (vl.type_instance)); - plugin_dispatch_values_secure (&vl); + plugin_dispatch_values (&vl); vl.values[0].derive = (derive_t) copy_values_sent; sstrncpy (vl.type_instance, "send-accepted", sizeof (vl.type_instance)); - plugin_dispatch_values_secure (&vl); + plugin_dispatch_values (&vl); vl.values[0].derive = (derive_t) copy_values_not_sent; sstrncpy (vl.type_instance, "send-rejected", sizeof (vl.type_instance)); - plugin_dispatch_values_secure (&vl); + plugin_dispatch_values (&vl); /* Receive queue length */ vl.values[0].gauge = (gauge_t) copy_receive_list_length; sstrncpy (vl.type, "queue_length", sizeof (vl.type)); vl.type_instance[0] = 0; - plugin_dispatch_values_secure (&vl); + plugin_dispatch_values (&vl); return (0); } /* }}} int network_stats_read */