002-fix-res_send-on-uclibc.patch (1613B)
1 --- a/configure.ac 2 +++ b/configure.ac 3 @@ -161,6 +161,10 @@ if test "x$found_resolv" != "xyes"; then 4 AC_MSG_ERROR([Unable to do DNS lookups (libresolv check failed)]) 5 fi 6 LIBS="${LIBS} ${RESOLV_LIBS}" 7 +AC_SEARCH_LIBS([res_mkquery], [], [AC_DEFINE([HAVE_RES_MKQUERY], 1, [Define if res_mkquery exists])]) 8 +AC_SEARCH_LIBS([__res_mkquery], [], [AC_DEFINE([HAVE_RES_MKQUERY], 1, [Define if res_mkquery exists])]) 9 +AC_SEARCH_LIBS([res_send], [], [AC_DEFINE([HAVE_RES_SEND], 1, [Define if res_send exists])]) 10 +AC_SEARCH_LIBS([__res_send], [], [AC_DEFINE([HAVE_RES_SEND], 1, [Define if res_send exists])]) 11 12 dnl ***************************************************************** 13 dnl * * 14 --- a/src/libs/zbxsysinfo/common/net.c 15 +++ b/src/libs/zbxsysinfo/common/net.c 16 @@ -471,6 +471,7 @@ static int dns_query(AGENT_REQUEST *requ 17 return SYSINFO_RET_FAIL; 18 } 19 20 +#if defined(HAVE_RES_MKQUERY) && defined(HAVE_RES_SEND) 21 if (-1 == (res = res_mkquery(QUERY, zone, C_IN, type, NULL, 0, NULL, buf, sizeof(buf)))) 22 { 23 SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot create DNS query: %s", zbx_strerror(errno))); 24 @@ -505,6 +506,11 @@ static int dns_query(AGENT_REQUEST *requ 25 _res.retry = retry; 26 27 res = res_send(buf, res, answer.buffer, sizeof(answer.buffer)); 28 +#else /* defined(HAVE_RES_QUERY) && defined(HAVE_RES_SEND) */ 29 + /* retrand and retry are ignored */ 30 + if (-1 == (res = res_query(zone, C_IN, type, answer.buffer, sizeof(answer.buffer)))) 31 + return SYSINFO_RET_FAIL; 32 +#endif 33 34 _res.options = saved_options; 35 _res.retrans = saved_retrans;