From 90e6260a12362fb5dc6e9f491f11e7d5e4ecff34 Mon Sep 17 00:00:00 2001 From: Clayton O'Neill Date: Sun, 30 Oct 2011 16:17:41 -0400 Subject: liboping 1.6.1 Added patches to make 1.6.1 compile on in general (IP_RECVTOS) and to specifially make it build on Lion (IPV6_HOPLIMIT) Signed-off-by: Adam Vandenberg --- Library/Formula/liboping.rb | 81 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 79 insertions(+), 2 deletions(-) (limited to 'Library') diff --git a/Library/Formula/liboping.rb b/Library/Formula/liboping.rb index 0aacd8b43..541db4740 100644 --- a/Library/Formula/liboping.rb +++ b/Library/Formula/liboping.rb @@ -1,13 +1,90 @@ require 'formula' class Liboping < Formula - url 'http://verplant.org/liboping/files/liboping-1.4.0.tar.bz2' + url 'http://verplant.org/liboping/files/liboping-1.6.1.tar.bz2' homepage 'http://verplant.org/liboping/' - sha256 'ca237ca16607f982aa7b4405e8e3aeea2f655e9d39ba4aff77974c66ee9631bd' + sha256 'cf5c9ac217ddc653543785de50fae6b2595393efa9d73e2e1acb63dc48fb3983' def install system "./configure", "--disable-debug", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make install" end + + # Patches from user Dvorak. See: + # https://github.com/mxcl/homebrew/pull/8374 + def patches + DATA + end + + def caveats + "Run oping and noping sudo'ed in order to avoid the 'Operation not permitted'" + end end + +__END__ +diff --git a/src/liboping.c b/src/liboping.c +index beef4f5..daa61c4 100644 +--- a/src/liboping.c ++++ b/src/liboping.c +@@ -69,6 +69,9 @@ + # include + #endif + ++#ifdef __APPLE__ ++#define __APPLE_USE_RFC_3542 ++#endif + #if HAVE_NETINET_IN_SYSTM_H + # include + #endif +@@ -545,6 +548,7 @@ static int ping_receive_one (pingobj_t *obj, const pinghost_t *ph, + sizeof (recv_qos)); + dprintf ("TOSv6 = 0x%02"PRIx8";\n", recv_qos); + } else ++#ifdef IPV6_HOPLIMIT + if (cmsg->cmsg_type == IPV6_HOPLIMIT) + { + memcpy (&recv_ttl, CMSG_DATA (cmsg), +@@ -552,6 +556,25 @@ static int ping_receive_one (pingobj_t *obj, const pinghost_t *ph, + dprintf ("TTLv6 = %i;\n", recv_ttl); + } + else ++#endif ++#ifdef IPV6_UNICAST_HOPS ++ if (cmsg->cmsg_type == IPV6_UNICAST_HOPS) ++ { ++ memcpy (&recv_ttl, CMSG_DATA (cmsg), ++ sizeof (recv_ttl)); ++ dprintf ("TTLv6 = %i;\n", recv_ttl); ++ } ++ else ++#endif ++#ifdef IPV6_MULTICAST_HOPS ++ if (cmsg->cmsg_type == IPV6_MULTICAST_HOPS) ++ { ++ memcpy (&recv_ttl, CMSG_DATA (cmsg), ++ sizeof (recv_ttl)); ++ dprintf ("TTLv6 = %i;\n", recv_ttl); ++ } ++ else ++#endif + { + dprintf ("Not handling option %i.\n", + cmsg->cmsg_type); +diff --git a/src/liboping.c b/src/liboping.c +index daa61c4..3467ca5 100644 +--- a/src/liboping.c ++++ b/src/liboping.c +@@ -1563,10 +1563,12 @@ int ping_host_add (pingobj_t *obj, const char *host) + { + int opt; + ++#ifdef IP_RECVTOS + /* Enable receiving the TOS field */ + opt = 1; + setsockopt (ph->fd, IPPROTO_IP, IP_RECVTOS, + &opt, sizeof (opt)); ++#endif + + /* Enable receiving the TTL field */ + opt = 1; -- cgit v1.2.3