X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodbus.c;h=82213d2c6b62ed21c11e035ad7f79a77c935b6e3;hb=4d370741101aeb037ae52f3529a4a0869e0dc08a;hp=93fd54a5184f36752fd0fa7365710e3a397a8114;hpb=5236399c4c5483b1a9c21233e34b2b4357800d58;p=collectd.git diff --git a/src/modbus.c b/src/modbus.c index 93fd54a5..82213d2c 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; }