diff --git a/dns-client.c b/dns-client.c new file mode 100644 index 0000000..120d286 --- /dev/null +++ b/dns-client.c @@ -0,0 +1,2 @@ +#include "dns-client.h" + diff --git a/dns-client.h b/dns-client.h new file mode 100644 index 0000000..d414314 --- /dev/null +++ b/dns-client.h @@ -0,0 +1,6 @@ +#ifndef _SMART_DNS_CLIENT_H +#define _SMART_DNS_CLIENT_H + + + +#endif \ No newline at end of file diff --git a/fast_ping.c b/fast_ping.c index 35f7eef..b7f8e2f 100755 --- a/fast_ping.c +++ b/fast_ping.c @@ -426,7 +426,7 @@ int fast_ping_start(const char *host, int timeout, void *userptr) ping_host->type = domain; ping_host->fd = _fast_ping_create_icmp(icmp_proto); ping_host->timeout = timeout; - ping_host->interval = interval; + ping_host->interval = (timeout > interval) ? timeout : interval; memcpy(&ping_host->addr, gai->ai_addr, gai->ai_addrlen); ping_host->addr_len = gai->ai_addrlen; diff --git a/include/bitops.h b/include/bitops.h index b33d7b3..6280225 100644 --- a/include/bitops.h +++ b/include/bitops.h @@ -77,31 +77,7 @@ static inline unsigned long __ffs(unsigned long word) static inline int fls(int x) { - int r = 32; - - if (!x) - return 0; - if (!(x & 0xffff0000u)) { - x <<= 16; - r -= 16; - } - if (!(x & 0xff000000u)) { - x <<= 8; - r -= 8; - } - if (!(x & 0xf0000000u)) { - x <<= 4; - r -= 4; - } - if (!(x & 0xc0000000u)) { - x <<= 2; - r -= 2; - } - if (!(x & 0x80000000u)) { - x <<= 1; - r -= 1; - } - return r; + return 32 - __builtin_clz(x); } /** @@ -126,9 +102,7 @@ static inline int fls64(uint64_t x) #elif BITS_PER_LONG == 64 static inline int fls64(uint64_t x) { - if (x == 0) - return 0; - return __fls(x) + 1; + return 64 - __builtin_clzll(x); } #else #error BITS_PER_LONG not 32 or 64