mirror of
https://github.com/nmap/nmap.git
synced 2025-12-17 13:09:02 +00:00
Use getkerninfo to get routing information on AIX.
This commit is contained in:
@@ -265,6 +265,26 @@ AC_DEFUN(AC_DNET_RAWIP_COOKED,
|
||||
[Define if you have cooked raw IP sockets.])
|
||||
fi])
|
||||
|
||||
dnl
|
||||
dnl Check for getkerninfo
|
||||
dnl
|
||||
dnl usage: AC_DNET_GETKERNINFO
|
||||
dnl results: HAVE_GETKERNINFO
|
||||
dnl
|
||||
AC_DEFUN(AC_DNET_GETKERNINFO,
|
||||
[AC_MSG_CHECKING(for getkerninfo)
|
||||
AC_CACHE_VAL(ac_cv_dnet_getkerninfo,
|
||||
AC_TRY_COMPILE([
|
||||
# include <sys/kinfo.h>],
|
||||
[getkerninfo(KINFO_RT_DUMP, 0, 0, 0);],
|
||||
ac_cv_dnet_getkerninfo=yes,
|
||||
ac_cv_dnet_getkerninfo=no))
|
||||
AC_MSG_RESULT($ac_cv_dnet_getkerninfo)
|
||||
if test $ac_cv_dnet_getkerninfo = yes ; then
|
||||
AC_DEFINE(HAVE_GETKERNINFO, 1,
|
||||
[Define if <sys/kinfo.h> has getkerninfo.])
|
||||
fi])
|
||||
|
||||
dnl
|
||||
dnl AC_LBL_LIBRARY_NET
|
||||
dnl
|
||||
|
||||
58
libdnet-stripped/configure
vendored
58
libdnet-stripped/configure
vendored
@@ -14582,6 +14582,64 @@ $as_echo "$ac_cv_dnet_rawip_cooked" >&6; }
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_RAWIP_COOKED 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: checking for getkerninfo" >&5
|
||||
echo $ECHO_N "checking for getkerninfo... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_dnet_getkerninfo+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
# include <sys/kinfo.h>
|
||||
int
|
||||
main ()
|
||||
{
|
||||
getkerninfo(KINFO_RT_DUMP, 0, 0, 0);
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (ac_try="$ac_compile"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_compile") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } && {
|
||||
test -z "$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
} && test -s conftest.$ac_objext; then
|
||||
ac_cv_dnet_getkerninfo=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_dnet_getkerninfo=no
|
||||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
|
||||
{ echo "$as_me:$LINENO: result: $ac_cv_dnet_getkerninfo" >&5
|
||||
echo "${ECHO_T}$ac_cv_dnet_getkerninfo" >&6; }
|
||||
if test $ac_cv_dnet_getkerninfo = yes ; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_GETKERNINFO 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
@@ -212,6 +212,7 @@ if test "$CYGWIN" != yes ; then
|
||||
AC_DNET_IOCTL_ARP
|
||||
AC_DNET_RAWIP_HOST_OFFLEN
|
||||
AC_DNET_RAWIP_COOKED
|
||||
AC_DNET_GETKERNINFO
|
||||
fi
|
||||
|
||||
dnl Check for arp interface.
|
||||
|
||||
@@ -130,6 +130,9 @@
|
||||
/* Define if you have cooked raw IP sockets. */
|
||||
#undef HAVE_RAWIP_COOKED
|
||||
|
||||
/* Define if <sys/kinfo.h> has getkerninfo. */
|
||||
#undef HAVE_GETKERNINFO
|
||||
|
||||
/* Define if raw IP sockets require host byte ordering for ip_off, ip_len. */
|
||||
#undef HAVE_RAWIP_HOST_OFFLEN
|
||||
|
||||
|
||||
@@ -131,6 +131,9 @@
|
||||
/* Define if you have cooked raw IP sockets. */
|
||||
/* #undef HAVE_RAWIP_COOKED */
|
||||
|
||||
/* Define if <sys/kinfo.h> has getkerninfo. */
|
||||
/* #undef HAVE_GETKERNINFO */
|
||||
|
||||
/* Define if raw IP sockets require host byte ordering for ip_off, ip_len. */
|
||||
/* #undef HAVE_RAWIP_HOST_OFFLEN */
|
||||
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
#include <sys/stream.h>
|
||||
#include <sys/stropts.h>
|
||||
#endif
|
||||
#ifdef HAVE_GETKERNINFO
|
||||
#include <sys/kinfo.h>
|
||||
#endif
|
||||
|
||||
#define route_t oroute_t /* XXX - unixware */
|
||||
#include <net/route.h>
|
||||
@@ -213,7 +216,7 @@ route_get(route_t *r, struct route_entry *entry)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if defined(HAVE_SYS_SYSCTL_H) || defined(HAVE_STREAMS_ROUTE)
|
||||
#if defined(HAVE_SYS_SYSCTL_H) || defined(HAVE_STREAMS_ROUTE) || defined(HAVE_GETKERNINFO)
|
||||
int
|
||||
route_loop(route_t *r, route_handler callback, void *arg)
|
||||
{
|
||||
@@ -241,6 +244,21 @@ route_loop(route_t *r, route_handler callback, void *arg)
|
||||
}
|
||||
lim = buf + len;
|
||||
next = buf;
|
||||
#elif defined(HAVE_GETKERNINFO)
|
||||
int len = getkerninfo(KINFO_RT_DUMP,0,0,0);
|
||||
|
||||
if (len == 0)
|
||||
return (0);
|
||||
|
||||
if ((buf = malloc(len)) == NULL)
|
||||
return (-1);
|
||||
|
||||
if (getkerninfo(KINFO_RT_DUMP,buf,&len,0) < 0) {
|
||||
free(buf);
|
||||
return (-1);
|
||||
}
|
||||
lim = buf + len;
|
||||
next = buf;
|
||||
#else /* HAVE_STREAMS_ROUTE */
|
||||
struct rt_giarg giarg, *gp;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user