From: Florian Forster Date: Wed, 6 Jun 2007 12:30:12 +0000 (+0200) Subject: network plugin: Send and receive the interval of value lists. X-Git-Tag: collectd-4.1.0~63 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=e50e6ce0ed4481c10f43df90a2bb3f0527c1180f;p=collectd.git network plugin: Send and receive the interval of value lists. --- 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, diff --git a/src/network.h b/src/network.h index b20fc75f..6d8e966e 100644 --- a/src/network.h +++ b/src/network.h @@ -61,5 +61,6 @@ #define TYPE_TYPE 0x0004 #define TYPE_TYPE_INSTANCE 0x0005 #define TYPE_VALUES 0x0006 +#define TYPE_INTERVAL 0x0007 #endif /* NETWORK_H */