X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fmodbus.c;h=a7d1b582c76fb27a3007aaad27a83abc60bd0616;hb=c4bce475033d055cf5370b33fc6b8675fad5667b;hp=93fd54a5184f36752fd0fa7365710e3a397a8114;hpb=02f8dbc0985310574ea2837cd5e3c06cccda203d;p=collectd.git diff --git a/src/modbus.c b/src/modbus.c index 93fd54a5..a7d1b582 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -470,11 +470,11 @@ static int mb_read_data (mb_host_t *host, mb_slave_t *slave, /* {{{ */ } else if (host->conntype == MBCONN_TCP) { - struct sockaddr sockaddr; - socklen_t saddrlen = sizeof (sockaddr); - + /* getpeername() is used only to determine if the socket is connected, not + * because we're really interested in the peer's IP address. */ status = getpeername (modbus_get_socket (host->connection), - &sockaddr, &saddrlen); + (struct sockaddr *) &(struct sockaddr_storage) { 0 }, + &(socklen_t) { sizeof (struct sockaddr_storage) }); if (status != 0) status = errno; } @@ -1003,18 +1003,17 @@ static int mb_config_add_host (oconfig_item_t *ci) /* {{{ */ if (status == 0) { - user_data_t ud; char name[1024]; - ud.data = host; - ud.free_func = host_free; - ssnprintf (name, sizeof (name), "modbus-%s", host->host); plugin_register_complex_read (/* group = */ NULL, name, /* callback = */ mb_read, /* interval = */ host->interval, - &ud); + &(user_data_t) { + .data = host, + .free_func = host_free, + }); } else {