X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fntpd.c;h=e37b3a1cefad037e286dd4bde0cd640940740898;hb=fd909f8965b2b6714dc1da328c77f3681c04af5e;hp=fc76a2459130619f47219b873b9e551df620201d;hpb=fdf203eed0a91818db735105a4cc85effd7971d9;p=collectd.git diff --git a/src/ntpd.c b/src/ntpd.c index fc76a245..e37b3a1c 100644 --- a/src/ntpd.c +++ b/src/ntpd.c @@ -51,8 +51,8 @@ #if HAVE_NETINET_TCP_H # include #endif -#if HAVE_SYS_POLL_H -# include +#if HAVE_POLL_H +# include #endif static char *config_keys[] = @@ -694,6 +694,7 @@ static int ntpd_receive_response (int req_code, int *res_items, int *res_size, (items_num + pkt_item_num) * res_item_size); items = realloc ((void *) *res_data, (items_num + pkt_item_num) * res_item_size); + items_num += pkt_item_num; if (items == NULL) { items = *res_data; @@ -881,7 +882,7 @@ static void ntpd_read (void) struct info_peer_summary *ptr; double offset; - char peername[512]; + char peername[NI_MAXHOST]; int refclock_id; ptr = ps + i; @@ -897,8 +898,15 @@ static void ntpd_read (void) if (ptr->v6_flag) { - status = getnameinfo ((const struct sockaddr *) &ptr->srcadr6, - sizeof (ptr->srcadr6), + struct sockaddr_in6 sa; + + memset (&sa, 0, sizeof (sa)); + sa.sin6_family = AF_INET6; + sa.sin6_port = htons (123); + memcpy (&sa.sin6_addr, &ptr->srcadr6, sizeof (struct in6_addr)); + + status = getnameinfo ((const struct sockaddr *) &sa, + sizeof (sa), peername, sizeof (peername), NULL, 0, 0 /* no flags */); if (status != 0)