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.])
|
[Define if you have cooked raw IP sockets.])
|
||||||
fi])
|
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
|
||||||
dnl AC_LBL_LIBRARY_NET
|
dnl AC_LBL_LIBRARY_NET
|
||||||
dnl
|
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
|
cat >>confdefs.h <<\_ACEOF
|
||||||
#define HAVE_RAWIP_COOKED 1
|
#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
|
_ACEOF
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -212,6 +212,7 @@ if test "$CYGWIN" != yes ; then
|
|||||||
AC_DNET_IOCTL_ARP
|
AC_DNET_IOCTL_ARP
|
||||||
AC_DNET_RAWIP_HOST_OFFLEN
|
AC_DNET_RAWIP_HOST_OFFLEN
|
||||||
AC_DNET_RAWIP_COOKED
|
AC_DNET_RAWIP_COOKED
|
||||||
|
AC_DNET_GETKERNINFO
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl Check for arp interface.
|
dnl Check for arp interface.
|
||||||
|
|||||||
@@ -130,6 +130,9 @@
|
|||||||
/* Define if you have cooked raw IP sockets. */
|
/* Define if you have cooked raw IP sockets. */
|
||||||
#undef HAVE_RAWIP_COOKED
|
#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. */
|
/* Define if raw IP sockets require host byte ordering for ip_off, ip_len. */
|
||||||
#undef HAVE_RAWIP_HOST_OFFLEN
|
#undef HAVE_RAWIP_HOST_OFFLEN
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,9 @@
|
|||||||
/* Define if you have cooked raw IP sockets. */
|
/* Define if you have cooked raw IP sockets. */
|
||||||
/* #undef HAVE_RAWIP_COOKED */
|
/* #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. */
|
/* Define if raw IP sockets require host byte ordering for ip_off, ip_len. */
|
||||||
/* #undef HAVE_RAWIP_HOST_OFFLEN */
|
/* #undef HAVE_RAWIP_HOST_OFFLEN */
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
#include <sys/stream.h>
|
#include <sys/stream.h>
|
||||||
#include <sys/stropts.h>
|
#include <sys/stropts.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_GETKERNINFO
|
||||||
|
#include <sys/kinfo.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define route_t oroute_t /* XXX - unixware */
|
#define route_t oroute_t /* XXX - unixware */
|
||||||
#include <net/route.h>
|
#include <net/route.h>
|
||||||
@@ -213,7 +216,7 @@ route_get(route_t *r, struct route_entry *entry)
|
|||||||
return (0);
|
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
|
int
|
||||||
route_loop(route_t *r, route_handler callback, void *arg)
|
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;
|
lim = buf + len;
|
||||||
next = buf;
|
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 */
|
#else /* HAVE_STREAMS_ROUTE */
|
||||||
struct rt_giarg giarg, *gp;
|
struct rt_giarg giarg, *gp;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user