X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fnetwork.c;h=ad8d530e4780d4ff9ce8ab96d72b65455a243c42;hb=63cbff115ba03717e81087d1419fc07c24d205c2;hp=34385bf66d106be5ebda3cf92a3ae88ad9d2adb6;hpb=862dc7be0b86270609186224e1569ed6b922fa68;p=collectd.git diff --git a/src/network.c b/src/network.c index 34385bf6..ad8d530e 100644 --- a/src/network.c +++ b/src/network.c @@ -162,7 +162,7 @@ static int listen_loop = 0; static char send_buffer[BUFF_SIZE]; static char *send_buffer_ptr; static int send_buffer_fill; -static value_list_t send_buffer_vl = VALUE_LIST_INIT; +static value_list_t send_buffer_vl = VALUE_LIST_STATIC; static char send_buffer_type[DATA_MAX_NAME_LEN]; static pthread_mutex_t send_buffer_lock = PTHREAD_MUTEX_INITIALIZER; @@ -557,6 +557,13 @@ static int parse_packet (void *buffer, int buffer_len) if (status == 0) vl.time = (time_t) tmp; } + else if (ntohs (header->type) == TYPE_INTERVAL) + { + uint64_t tmp = 0; + status = parse_part_number (&buffer, &buffer_len, &tmp); + if (status == 0) + vl.interval = (int) tmp; + } else if (ntohs (header->type) == TYPE_HOST) { status = parse_part_string (&buffer, &buffer_len, @@ -1097,6 +1104,16 @@ static int add_to_buffer (char *buffer, int buffer_size, (unsigned int) vl->time); } + if (vl_def->interval != vl->interval) + { + if (write_part_number (&buffer, &buffer_size, TYPE_INTERVAL, + (uint64_t) vl->interval)) + return (-1); + vl_def->interval = vl->interval; + DEBUG ("network plugin: add_to_buffer: interval = %i", + (int) vl->interval); + } + if (strcmp (vl_def->plugin, vl->plugin) != 0) { if (write_part_string (&buffer, &buffer_size, TYPE_PLUGIN,