Merge branch 'collectd-5.8' into master
authorPavel Rochnyack <pavel2000@ngs.ru>
Sun, 8 Jul 2018 13:11:28 +0000 (20:11 +0700)
committerPavel Rochnyack <pavel2000@ngs.ru>
Sun, 8 Jul 2018 13:11:28 +0000 (20:11 +0700)
1  2 
src/write_prometheus.c

diff --combined src/write_prometheus.c
@@@ -59,7 -59,7 +59,7 @@@ static struct MHD_Daemon *httpd
  
  static cdtime_t staleness_delta = PROMETHEUS_DEFAULT_STALENESS_DELTA;
  
 -/* Unfortunately, protoc-c doesn't export it's implementation of varint, so we
 +/* Unfortunately, protoc-c doesn't export its implementation of varint, so we
   * need to implement our own. */
  static size_t varint(uint8_t buffer[static VARINT_UINT32_BYTES],
                       uint32_t value) {
@@@ -244,8 -244,9 +244,8 @@@ static int http_handler(void *cls, stru
  
    char const *accept = MHD_lookup_connection_value(connection, MHD_HEADER_KIND,
                                                     MHD_HTTP_HEADER_ACCEPT);
 -  _Bool want_proto =
 -      (accept != NULL) &&
 -      (strstr(accept, "application/vnd.google.protobuf") != NULL);
 +  bool want_proto = (accept != NULL) &&
 +                    (strstr(accept, "application/vnd.google.protobuf") != NULL);
  
    uint8_t scratch[4096] = {0};
    ProtobufCBufferSimple simple = PROTOBUF_C_BUFFER_SIMPLE_INIT(scratch);
@@@ -688,7 -689,7 +688,7 @@@ static char *metric_family_name(data_se
   * necessary. */
  static Io__Prometheus__Client__MetricFamily *
  metric_family_get(data_set_t const *ds, value_list_t const *vl, size_t ds_index,
 -                  _Bool allocate) {
 +                  bool allocate) {
    char *name = metric_family_name(ds, vl, ds_index);
    if (name == NULL) {
      ERROR("write_prometheus plugin: Allocating metric family name failed.");
@@@ -765,8 -766,9 +765,8 @@@ static int prom_open_socket(int addrfam
  
      int tmp = 1;
      if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &tmp, sizeof(tmp)) != 0) {
 -      char errbuf[1024];
        WARNING("write_prometheus: setsockopt(SO_REUSEADDR) failed: %s",
 -              sstrerror(errno, errbuf, sizeof(errbuf)));
 +              STRERRNO);
        close(fd);
        fd = -1;
        continue;
@@@ -802,8 -804,13 +802,13 @@@ static struct MHD_Daemon *prom_start_da
      return NULL;
    }
  
+   unsigned int flags = MHD_USE_THREAD_PER_CONNECTION | MHD_USE_DEBUG;
+ #if MHD_VERSION >= 0x00095300
+   flags |= MHD_USE_INTERNAL_POLLING_THREAD;
+ #endif
    struct MHD_Daemon *d = MHD_start_daemon(
-       MHD_USE_THREAD_PER_CONNECTION | MHD_USE_DEBUG, httpd_port,
+       flags, httpd_port,
        /* MHD_AcceptPolicyCallback = */ NULL,
        /* MHD_AcceptPolicyCallback arg = */ NULL, http_handler, NULL,
        MHD_OPTION_LISTEN_SOCKET, fd, MHD_OPTION_EXTERNAL_LOGGER, prom_logger,
@@@ -884,7 -891,7 +889,7 @@@ static int prom_write(data_set_t const 
  
    for (size_t i = 0; i < ds->ds_num; i++) {
      Io__Prometheus__Client__MetricFamily *fam =
 -        metric_family_get(ds, vl, i, /* allocate = */ 1);
 +        metric_family_get(ds, vl, i, /* allocate = */ true);
      if (fam == NULL)
        continue;
  
@@@ -911,7 -918,7 +916,7 @@@ static int prom_missing(value_list_t co
  
    for (size_t i = 0; i < ds->ds_num; i++) {
      Io__Prometheus__Client__MetricFamily *fam =
 -        metric_family_get(ds, vl, i, /* allocate = */ 0);
 +        metric_family_get(ds, vl, i, /* allocate = */ false);
      if (fam == NULL)
        continue;