oping(8): Document the new `-f' option.
[liboping.git] / src / liboping.c
index 579aba3..51071ad 100644 (file)
@@ -145,7 +145,7 @@ struct pingobj
 /* Even though Posix requires "strerror_r" to return an "int",
  * some systems (e.g. the GNU libc) return a "char *" _and_
  * ignore the second argument ... -tokkee */
-char *sstrerror (int errnum, char *buf, size_t buflen)
+static char *sstrerror (int errnum, char *buf, size_t buflen)
 {
        buf[0] = 0;
 
@@ -342,8 +342,9 @@ static pinghost_t *ping_receive_ipv4 (pinghost_t *ph, char *buffer, size_t buffe
                dprintf ("No match found for ident = 0x%04x, seq = %i\n",
                                ident, seq);
        }
-       
-       ptr->recv_ttl = ip_hdr->ip_ttl;
+
+       if (ptr != NULL)
+               ptr->recv_ttl = ip_hdr->ip_ttl;
 
        return (ptr);
 }
@@ -1351,6 +1352,7 @@ int ping_host_add (pingobj_t *obj, const char *host)
                        setsockopt (ph->fd, IPPROTO_IP, IP_RECVTTL,
                                        &opt, sizeof (opt));
                }
+#if defined(IPPROTO_IPV6) && defined(IPV6_RECVHOPLIMIT)
                else if (ph->addrfamily == AF_INET6)
                {
                        int opt = 1;
@@ -1358,6 +1360,7 @@ int ping_host_add (pingobj_t *obj, const char *host)
                        setsockopt (ph->fd, IPPROTO_IPV6, IPV6_RECVHOPLIMIT,
                                        &opt, sizeof (opt));
                }
+#endif
 
                break;
        }