small tcp_wrappers issue (argus-3.0.0.rc.10)
Carter Bullard
carter at qosient.com
Sun Jun 25 18:33:41 EDT 2006
Hey Andreas,
Looks like a winner to me!!! I'll add this to the clients as
well!!!
Carter
On Jun 25, 2006, at 5:56 PM, Andreas Östling wrote:
>
> On Thu, 22 Jun 2006, Carter Bullard wrote:
>
>> Hey Andreas,
>> I've included a patch for argus's ./aclocal.m4. If you could
>> apply the patch and then:
> ...
>
> Thanks, it almost worked. The configure script will now correctly
> detect tcp wrappers but then the real linking fails instead:
>
> gcc -O3 -I. -I/usr/include -I./../include -DPACKAGE_NAME=\"\" -
> DPACKAGE_TARNAME=\"\"
> -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=
> \"\" -DHAVE_STRERROR=1 -DHAVE_STRLCPY=1
> -DHAVE_VSNPRINTF=1 -DHAVE_SNPRINTF=1 -DHAVE_ETHER_HOSTTON=1 -
> DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -
> DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
> -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRUCT_ETHER_ADDR=1 -
> DHAVE_DECL_ETHER_HOSTTON=0
> -DHAVE_SYS_SOCKIO_H=1 -DHAVE_STRING_H=1 -DHAVE_FCNTL_H=1 -
> DHAVE_SYS_FILE_H=1 -DHAVE_SYSLOG_H=1
> -DCONFIG_X86_BSWAP=1 -DSTDC_HEADERS=1 -o ../bin/argus argus.o
> ArgusModeler.o ArgusSource.o ArgusUtil.o
> ArgusOutput.o ArgusUdp.o ArgusTcp.o ArgusIcmp.o ArgusIgmp.o
> ArgusEsp.o ArgusArp.o ArgusFrag.o ArgusApp.o
> -lwrap -lpcap ../lib/argus_common.a -lm
> argus.o(.text+0xcfd): In function `main':
> : warning: strcpy() is almost always misused, please use strlcpy()
> /usr/lib/libwrap.so.4.0: undefined reference to `allow_severity'
> /usr/lib/libwrap.so.4.0: undefined reference to `deny_severity'
> collect2: ld returned 1 exit status
> gmake[1]: *** [../bin/argus] Error 1
>
> It turns out the configure script fails to add -DHAVE_TCP_WRAPPER
> because $1=$libwrap was removed by your patch. Also, $libwrap is
> set to "FAIL" by default and then never updated when the check
> succeeds. I guess AC_CHECK_LIB took care of that before but now we
> have do it ourselves.
>
> I'm not sure how you prefer to fix this but here is a suggested
> updated patch. The only difference is that I added libwrap="-lwrap"
> and $1=$libwrap. Tested on OpenBSD and Linux with success, and
> overriding with a local tcp_wrappers directory still works.
>
> --- aclocal.m4.orig Wed Jun 14 02:26:13 2006
> +++ aclocal.m4 Sun Jun 25 21:07:23 2006
> @@ -695,16 +695,35 @@
> if test $libwrap = FAIL ; then
> AC_MSG_RESULT(not found)
> AC_MSG_CHECKING(for system tcp_wrappers library)
> - AC_CHECK_LIB(wrap, main, libwrap="-lwrap")
> - if test $libwrap = FAIL ; then
> - AC_MSG_WARN(tcp_wrapper not found)
> - else
> - $1=$libwrap
> - LIBS="$libwrap $LIBS"
> - if test -r /usr/local/include/tcpd.h; then
> - $2="-I/usr/local/include $$2"
> +dnl AC_CHECK_LIB(wrap, main, libwrap="-lwrap")
> +dnl if test $libwrap = FAIL ; then
> + AC_CACHE_VAL(ac_cv_qosient_wrapper,
> + [ac_save_LIBS="$LIBS"
> + LIBS="-lwrap $LIBS"
> + AC_TRY_COMPILE(
> + [int deny_severity = 0, allow_severity = 0;],
> + ,
> + ac_cv_qosient_wrapper=yes,
> + ac_cv_qosient_wrapper=no)
> + LIBS="$ac_save_LIBS"])
> + AC_MSG_RESULT($ac_cv_qosient_wrapper)
> + if test $ac_cv_qosient_wrapper = no ; then
> + AC_MSG_WARN(tcp_wrapper not found)
> + else
> + libwrap="-lwrap"
> + $1=$libwrap
> + LIBS="$libwrap $LIBS"
> + if test -r /usr/local/include/tcpd.h; then
> + $2="-I/usr/local/include $$2"
> + fi
> fi
> - fi
> +dnl else
> +dnl $1=$libwrap
> +dnl LIBS="$libwrap $LIBS"
> +dnl if test -r /usr/local/include/tcpd.h; then
> +dnl $2="-I/usr/local/include $$2"
> +dnl fi
> +dnl fi
> else
> $1=$libwrap
> if test -r $d/tcpd.h; then
>
> /Andreas
>
>
Carter Bullard
CEO/President
QoSient, LLC
150 E. 57th Street Suite 12D
New York, New York 10022
+1 212 588-9133 Phone
+1 212 588-9134 Fax
More information about the argus
mailing list