Pavlin Radoslavov wrote:
Ben,

Given that we are very close to the 1.5 release, I need to be able
to replicate myself the crash (and to verify that the fix takes care
of that crash), hence please send me the following info:

  * OS and kernel version
  * the top-level config.h that is auto-generated after running ./configure
  * the XORP config

I'm compiling on FC5-32-bit but with kernel headers from FC8 (so that
greater than 255 routing tables work, etc).  I'm running this on an FC8
system, with patched kernel to support multiple multicast tables
and some extra virtual interface support and other assorted hacks.

And, xorp is patched fairly extensively as well.  What I mean to imply
is that it may be impossible for you to reproduce this, but per my explanation
below, I think you can verify the bug by code inspection.

The config.h is attached.

I don't recall the exact config I was using to test this, but it
I am pretty sure it had IPv6 OSPF enabled and OSPFv4 enabled.  I
was enabling multicast as well at some point.  (It would have to
be sending IPv6 pkts to hit this error case.)

However, I think it will take some luck to reproduce this since I
believe the reason it happens is that the cmsg struct must have non-zero
values in it that are NOT initialized properly when you do two CMSG_NXTHDR
calls in a row.

I ran this for days before I hit the problem, but of course a customer
trying out our beta hit it immediately.

If you want to leave this out until after 1.5 that is fine with
me, but if you look at the Linux CMSG_NXTHDR implementation (at least on Linux),
and if you assume that both the #ifdefs are false in the code I was
patching, you can see how this bug can happen.

Thanks,
Ben



Thanks,
Pavlin


--
Ben Greear <[EMAIL PROTECTED]>
Candela Technologies Inc  http://www.candelatech.com

/* config.h.  Generated from config.h.in by configure.  */
/* config.h.in.  Generated from configure.in by autoheader.  */


/*
 * This file is part of the XORP software.
 * See file `LICENSE' for copyright and license information.
 */

#ifndef __XORP_CONFIG_H__
#define __XORP_CONFIG_H__


/* Define to 1 if the preprocessor supports C99 style variadic macros */
#define CPP_SUPPORTS_C99_VA_ARGS 1

/* Define to 1 if the preprocessor supports GNU style variadic macros */
#define CPP_SUPPORTS_GNU_VA_ARGS 1

/* Define to enable callback debugging */
/* #undef DEBUG_CALLBACKS */

/* Define to 1 to enable globally debug messages output */
/* #undef DEBUG_LOGGING_GLOBAL */

/* Define to 1 to enable printing function name in debug messages */
/* #undef DEBUG_PRINT_FUNCTION_NAME */

/* Define to 1 to enable advanced multicast API (if supported) */
#define ENABLE_ADVANCED_MULTICAST_API 1

/* Define to 1 if `TIOCGWINSZ' requires <sys/ioctl.h>. */
#define GWINSZ_IN_SYS_IOCTL 1

/* Define to 1 if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H 1

/* Define to 1 if you have the <arpa/telnet.h> header file. */
#define HAVE_ARPA_TELNET_H 1

/* Define to 1 if netinet6/nd6.h is not C++ friendly */
/* #undef HAVE_BROKEN_CXX_NETINET6_ND6_H */

/* Define to 1 if you have broken CMSG_NXTHDR macro */
/* #undef HAVE_BROKEN_MACRO_CMSG_NXTHDR */

/* Define to 1 if you have broken Linux IFA_RTA macro */
/* #undef HAVE_BROKEN_MACRO_IFA_RTA */

/* Define to 1 if you have broken Linux IFLA_RTA macro */
/* #undef HAVE_BROKEN_MACRO_IFLA_RTA */

/* Define to 1 if you have broken Linux NLMSG_NEXT macro */
/* #undef HAVE_BROKEN_MACRO_NLMSG_NEXT */

/* Define to 1 if you have broken Linux RTA_NEXT macro */
/* #undef HAVE_BROKEN_MACRO_RTA_NEXT */

/* Define to 1 if you have broken Linux RTM_RTA macro */
/* #undef HAVE_BROKEN_MACRO_RTM_RTA */

/* Define to 1 if you have the `clock_gettime' function. */
#define HAVE_CLOCK_GETTIME 1

/* Define to 1 if you have the CLOCK_MONOTONIC define */
#define HAVE_CLOCK_MONOTONIC 1

/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1

/* Define to 1 if you have the `ether_aton' function. */
#define HAVE_ETHER_ATON 1

/* Define to 1 if you have the `ether_ntoa' function. */
#define HAVE_ETHER_NTOA 1

/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1

/* Define to 1 if you have IPF firewall support */
/* #undef HAVE_FIREWALL_IPF */

/* Define to 1 if you have IPFW2 firewall support with atomic set */
/* #undef HAVE_FIREWALL_IPFW2 */

/* Define to 1 if you have NETFILTER firewall support */
/* #undef HAVE_FIREWALL_NETFILTER */

/* Define to 1 if you have NETFILTER for IPv6 firewall support */
/* #undef HAVE_FIREWALL_NETFILTER_IPV6 */

/* Define to 1 if you have PF firewall support */
/* #undef HAVE_FIREWALL_PF */

/* Define to 1 if you have the `fork' function. */
#define HAVE_FORK 1

/* Define to 1 if you have the `getaddrinfo' function. */
#define HAVE_GETADDRINFO 1

/* Define to 1 if you have the `getifaddrs' function. */
#define HAVE_GETIFADDRS 1

/* Define to 1 if you have the `getnameinfo' function. */
#define HAVE_GETNAMEINFO 1

/* Define to 1 if you have the <getopt.h> header file. */
/* #undef HAVE_GETOPT_H */

/* Define to 1 if you have the <glob.h> header file. */
#define HAVE_GLOB_H 1

/* Define to 1 if you have the <grp.h> header file. */
#define HAVE_GRP_H 1

/* Define to 1 if you have the `hstrerror' function. */
#define HAVE_HSTRERROR 1

/* Define to 1 if you have the <ifaddrs.h> header file. */
#define HAVE_IFADDRS_H 1

/* Define to 1 if you have the `if_indextoname' function. */
#define HAVE_IF_INDEXTONAME 1

/* Define to 1 if you have the `if_nametoindex' function. */
#define HAVE_IF_NAMETOINDEX 1

/* Define to 1 if you have the <inet/ip.h> header file. */
/* #undef HAVE_INET_IP_H */

/* Define to 1 if you have the <inet/nd.h> header file. */
/* #undef HAVE_INET_ND_H */

/* Define to 1 if you have the `inet_ntop' function. */
#define HAVE_INET_NTOP 1

/* Define to 1 if you have the `inet_pton' function. */
#define HAVE_INET_PTON 1

/* Define to 1 if the system has the type `int16_t'. */
#define HAVE_INT16_T 1

/* Define to 1 if the system has the type `int32_t'. */
#define HAVE_INT32_T 1

/* Define to 1 if the system has the type `int64_t'. */
#define HAVE_INT64_T 1

/* Define to 1 if the system has the type `int8_t'. */
#define HAVE_INT8_T 1

/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1

/* Define to 1 if you have ioctl(SIOCGIFCONF) interface read method */
#define HAVE_IOCTL_SIOCGIFCONF 1

/* Define to 1 if you have the <iphlpapi.h> header file. */
/* #undef HAVE_IPHLPAPI_H */

/* Define to 1 if you have the <ipifcons.h> header file. */
/* #undef HAVE_IPIFCONS_H */

/* Define to 1 if you have the <iprtrmib.h> header file. */
/* #undef HAVE_IPRTRMIB_H */

/* Define to 1 if you have the <iptypes.h> header file. */
/* #undef HAVE_IPTYPES_H */

/* Define to 1 if you have IPv4 multicast */
#define HAVE_IPV4_MULTICAST 1

/* Define to 1 if you have IPv4 multicast routing */
#define HAVE_IPV4_MULTICAST_ROUTING 1

/* Define to 1 if you have IPv6 */
#define HAVE_IPV6 1

/* Define to 1 if you have IPv6 multicast */
#define HAVE_IPV6_MULTICAST 1

/* Define to 1 if you have IPv6 multicast routing */
/* #undef HAVE_IPV6_MULTICAST_ROUTING */

/* Define to 1 if you have IP raw sockets (SOCK_RAW) */
#define HAVE_IP_RAW_SOCKETS 1

/* Define to 1 if you have RFC 2367 key sockets (PF_KEY_V2) */
/* #undef HAVE_KEY_SOCKETS */

/* Define to 1 if you have the `crypto' library (-lcrypto). */
#define HAVE_LIBCRYPTO 1

/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
/* #undef HAVE_LIBWS2_32 */

/* Define to 1 if you have the <linux/ethtool.h> header file. */
#define HAVE_LINUX_ETHTOOL_H 1

/* Define to 1 if you have the <linux/if_vlan.h> header file. */
#define HAVE_LINUX_IF_VLAN_H 1

/* Define to 1 if you have the <linux/mroute6.h> header file. */
/* #undef HAVE_LINUX_MROUTE6_H */

/* Define to 1 if you have the <linux/mroute.h> header file. */
#define HAVE_LINUX_MROUTE_H 1

/* Define to 1 if you have the <linux/netfilter_ipv4/ip_tables.h> header file.
   */
/* #undef HAVE_LINUX_NETFILTER_IPV4_IP_TABLES_H */

/* Define to 1 if you have the <linux/netfilter_ipv6/ip6_tables.h> header
   file. */
/* #undef HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H */

/* Define to 1 if you have the <linux/netlink.h> header file. */
#define HAVE_LINUX_NETLINK_H 1

/* Define to 1 if you have the <linux/rtnetlink.h> header file. */
#define HAVE_LINUX_RTNETLINK_H 1

/* Define to 1 if you have the <linux/sockios.h> header file. */
#define HAVE_LINUX_SOCKIOS_H 1

/* Define to 1 if you have the <linux/types.h> header file. */
#define HAVE_LINUX_TYPES_H 1

/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1

/* Define to 1 if you have the <mgm.h> header file. */
/* #undef HAVE_MGM_H */

/* Define to 1 if you have the <mprapi.h> header file. */
/* #undef HAVE_MPRAPI_H */

/* Define to 1 if you have the <mprerror.h> header file. */
/* #undef HAVE_MPRERROR_H */

/* Define to 1 if you have the <netdb.h> header file. */
#define HAVE_NETDB_H 1

/* Define to 1 if you have the <netinet6/in6_var.h> header file. */
/* #undef HAVE_NETINET6_IN6_VAR_H */

/* Define to 1 if you have the <netinet6/ip6_mroute.h> header file. */
/* #undef HAVE_NETINET6_IP6_MROUTE_H */

/* Define to 1 if you have the <netinet6/nd6.h> header file. */
/* #undef HAVE_NETINET6_ND6_H */

/* Define to 1 if you have the <netinet/ether.h> header file. */
#define HAVE_NETINET_ETHER_H 1

/* Define to 1 if you have the <netinet/icmp6.h> header file. */
#define HAVE_NETINET_ICMP6_H 1

/* Define to 1 if you have the <netinet/if_ether.h> header file. */
#define HAVE_NETINET_IF_ETHER_H 1

/* Define to 1 if you have the <netinet/igmp.h> header file. */
#define HAVE_NETINET_IGMP_H 1

/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1

/* Define to 1 if you have the <netinet/in_systm.h> header file. */
#define HAVE_NETINET_IN_SYSTM_H 1

/* Define to 1 if you have the <netinet/in_var.h> header file. */
/* #undef HAVE_NETINET_IN_VAR_H */

/* Define to 1 if you have the <netinet/ip6.h> header file. */
#define HAVE_NETINET_IP6_H 1

/* Define to 1 if you have the <netinet/ip_compat.h> header file. */
/* #undef HAVE_NETINET_IP_COMPAT_H */

/* Define to 1 if you have the <netinet/ip_fil.h> header file. */
/* #undef HAVE_NETINET_IP_FIL_H */

/* Define to 1 if you have the <netinet/ip_fw.h> header file. */
/* #undef HAVE_NETINET_IP_FW_H */

/* Define to 1 if you have the <netinet/ip.h> header file. */
#define HAVE_NETINET_IP_H 1

/* Define to 1 if you have the <netinet/ip_mroute.h> header file. */
/* #undef HAVE_NETINET_IP_MROUTE_H */

/* Define to 1 if you have the <netinet/pim.h> header file. */
/* #undef HAVE_NETINET_PIM_H */

/* Define to 1 if you have the <netinet/tcp.h> header file. */
#define HAVE_NETINET_TCP_H 1

/* Define to 1 if you have Linux-style netlink sockets (AF_NETLINK) */
#define HAVE_NETLINK_SOCKETS 1

/* Define to 1 if you have Linux-style netlink sockets (AF_NETLINK), but they
   cannot be used to set the flags on an interface */
#define HAVE_NETLINK_SOCKETS_SET_FLAGS_IS_BROKEN 1

/* Define to 1 if you have Linux-style netlink sockets (AF_NETLINK), but they
   cannot be used to set the MTU on an interface */
#define HAVE_NETLINK_SOCKETS_SET_MTU_IS_BROKEN 1

/* Define to 1 if you have netlink socket RTA_TABLE message attribute */
#define HAVE_NETLINK_SOCKET_ATTRIBUTE_RTA_TABLE 1

/* Define to 1 if you have the <net/ethernet.h> header file. */
#define HAVE_NET_ETHERNET_H 1

/* Define to 1 if you have the <net/if_arp.h> header file. */
#define HAVE_NET_IF_ARP_H 1

/* Define to 1 if you have the <net/if_dl.h> header file. */
/* #undef HAVE_NET_IF_DL_H */

/* Define to 1 if you have the <net/if_ether.h> header file. */
/* #undef HAVE_NET_IF_ETHER_H */

/* Define to 1 if you have the <net/if.h> header file. */
#define HAVE_NET_IF_H 1

/* Define to 1 if you have the <net/if_media.h> header file. */
/* #undef HAVE_NET_IF_MEDIA_H */

/* Define to 1 if you have the <net/if_types.h> header file. */
/* #undef HAVE_NET_IF_TYPES_H */

/* Define to 1 if you have the <net/if_var.h> header file. */
/* #undef HAVE_NET_IF_VAR_H */

/* Define to 1 if you have the <net/if_vlanvar.h> header file. */
/* #undef HAVE_NET_IF_VLANVAR_H */

/* Define to 1 if you have the <net/if_vlan_var.h> header file. */
/* #undef HAVE_NET_IF_VLAN_VAR_H */

/* Define to 1 if you have the <net/ip_mroute/ip_mroute.h> header file. */
/* #undef HAVE_NET_IP_MROUTE_IP_MROUTE_H */

/* Define to 1 if you have the <net/pfkeyv2.h> header file. */
/* #undef HAVE_NET_PFKEYV2_H */

/* Define to 1 if you have the <net/pfvar.h> header file. */
/* #undef HAVE_NET_PFVAR_H */

/* Define to 1 if you have the <net/route.h> header file. */
#define HAVE_NET_ROUTE_H 1

/* Define to 1 if you have the <net/vlan/if_vlan_var.h> header file. */
/* #undef HAVE_NET_VLAN_IF_VLAN_VAR_H */

/* Define to 1 if you have the <paths.h> header file. */
#define HAVE_PATHS_H 1

/* Define to 1 if you have pcap(3) that is reasonable */
#define HAVE_PCAP 1

/* Define to 1 if you have the <pcap.h> header file. */
#define HAVE_PCAP_H 1

/* Define to 1 if you have the `pcap_sendpacket' function. */
#define HAVE_PCAP_SENDPACKET 1

/* Define to 1 if you have the <pcreposix.h> header file. */
/* #undef HAVE_PCREPOSIX_H */

/* Define to 1 if you have the <pcre.h> header file. */
/* #undef HAVE_PCRE_H */

/* Define to 1 if you have the <process.h> header file. */
/* #undef HAVE_PROCESS_H */

/* Define to 1 if Linux /proc filesystem exists */
#define HAVE_PROC_LINUX 1

/* Define to 1 if you have the <pwd.h> header file. */
#define HAVE_PWD_H 1

/* Define to 1 if you have the `readv' function. */
#define HAVE_READV 1

/* Define to 1 if you have the `realpath' function. */
#define HAVE_REALPATH 1

/* Define to 1 if you have the `recvmsg' function. */
#define HAVE_RECVMSG 1

/* Define to 1 if you have the <regex.h> header file. */
#define HAVE_REGEX_H 1

/* Define to 1 if you have newer IPv6 advanced API (as per RFC 3542) */
/* #undef HAVE_RFC3542 */

/* Define to 1 if you have BSD-style routing sockets (AF_ROUTE) */
/* #undef HAVE_ROUTING_SOCKETS */

/* Define to 1 if you have the <routprot.h> header file. */
/* #undef HAVE_ROUTPROT_H */

/* Define to 1 if you have the <rtinfo.h> header file. */
/* #undef HAVE_RTINFO_H */

/* Define to 1 if you have the <rtmv2.h> header file. */
/* #undef HAVE_RTMV2_H */

/* Define to 1 if you have the `sendmsg' function. */
#define HAVE_SENDMSG 1

/* Define to 1 if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H 1

/* Define to 1 if the system has the type `sig_t'. */
#define HAVE_SIG_T 1

/* Define to 1 if the system has the type `socklen_t'. */
#define HAVE_SOCKLEN_T 1

/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1

/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1

/* Define to 1 if you have the <stm.h> header file. */
/* #undef HAVE_STM_H */

/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1

/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME 1

/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1

/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1

/* Define to 1 if you have the `strlcpy' function. */
/* #undef HAVE_STRLCPY */

/* Define to 1 if you have the <stropts.h> header file. */
#define HAVE_STROPTS_H 1

/* Define to 1 if you have the `strptime' function. */
#define HAVE_STRPTIME 1

/* Define to 1 if the system has the type `struct cmsghdr'. */
#define HAVE_STRUCT_CMSGHDR 1

/* Define to 1 if the system has the type `struct ether_addr'. */
#define HAVE_STRUCT_ETHER_ADDR 1

/* Define to 1 if `ifr_hwaddr' is member of `struct ifreq'. */
#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1

/* Define to 1 if `ifr_ifindex' is member of `struct ifreq'. */
#define HAVE_STRUCT_IFREQ_IFR_IFINDEX 1

/* Define to 1 if the system has the type `struct iovec'. */
#define HAVE_STRUCT_IOVEC 1

/* Define to 1 if the system has the type `struct mf6cctl2'. */
/* #undef HAVE_STRUCT_MF6CCTL2 */

/* Define to 1 if `mf6cc_flags' is member of `struct mf6cctl2'. */
/* #undef HAVE_STRUCT_MF6CCTL2_MF6CC_FLAGS */

/* Define to 1 if `mf6cc_rp' is member of `struct mf6cctl2'. */
/* #undef HAVE_STRUCT_MF6CCTL2_MF6CC_RP */

/* Define to 1 if the system has the type `struct mfcctl2'. */
/* #undef HAVE_STRUCT_MFCCTL2 */

/* Define to 1 if `mfcc_flags' is member of `struct mfcctl2'. */
/* #undef HAVE_STRUCT_MFCCTL2_MFCC_FLAGS */

/* Define to 1 if `mfcc_rp' is member of `struct mfcctl2'. */
/* #undef HAVE_STRUCT_MFCCTL2_MFCC_RP */

/* Define to 1 if the system has the type `struct mld_hdr'. */
#define HAVE_STRUCT_MLD_HDR 1

/* Define to 1 if the system has the type `struct msghdr'. */
#define HAVE_STRUCT_MSGHDR 1

/* Define to 1 if `msg_control' is member of `struct msghdr'. */
#define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1

/* Define to 1 if `msg_iov' is member of `struct msghdr'. */
#define HAVE_STRUCT_MSGHDR_MSG_IOV 1

/* Define to 1 if `msg_name' is member of `struct msghdr'. */
#define HAVE_STRUCT_MSGHDR_MSG_NAME 1

/* Define to 1 if `msg_namelen' is member of `struct msghdr'. */
#define HAVE_STRUCT_MSGHDR_MSG_NAMELEN 1

/* Define to 1 if the system has the type `struct pim'. */
/* #undef HAVE_STRUCT_PIM */

/* Define to 1 if `pim_vt' is member of `struct pim'. */
/* #undef HAVE_STRUCT_PIM_PIM_VT */

/* Define to 1 if `sdl_len' is member of `struct sockaddr_dl'. */
/* #undef HAVE_STRUCT_SOCKADDR_DL_SDL_LEN */

/* Define to 1 if `sin6_len' is member of `struct sockaddr_in6'. */
/* #undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN */

/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1

/* Define to 1 if `sin_len' is member of `struct sockaddr_in'. */
/* #undef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */

/* Define to 1 if `sa_len' is member of `struct sockaddr'. */
/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */

/* Define to 1 if `ss_len' is member of `struct sockaddr_storage'. */
/* #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN */

/* Define to 1 if `sun_len' is member of `struct sockaddr_un'. */
/* #undef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN */

/* Define to 1 if the system has the type `struct timespec'. */
#define HAVE_STRUCT_TIMESPEC 1

/* Define to 1 if you have sysctl(IPCTL_FORWARDING) to get/set IPv4 unicast
   forwarding */
/* #undef HAVE_SYSCTL_IPCTL_FORWARDING */

/* Define to 1 if you have sysctl(IPV6CTL_ACCEPT_RTADV) to get/set IPv6 Router
   Advertisement */
/* #undef HAVE_SYSCTL_IPV6CTL_ACCEPT_RTADV */

/* Define to 1 if you have sysctl(IPV6CTL_FORWARDING) to get/set IPv6 unicast
   forwarding */
/* #undef HAVE_SYSCTL_IPV6CTL_FORWARDING */

/* Define to 1 if you have sysctl(NET_RT_DUMP) routing table read method */
/* #undef HAVE_SYSCTL_NET_RT_DUMP */

/* Define to 1 if you have sysctl(NET_RT_IFLIST) interface read method */
/* #undef HAVE_SYSCTL_NET_RT_IFLIST */

/* Define to 1 if you have the <sysexits.h> header file. */
#define HAVE_SYSEXITS_H 1

/* Define to 1 if you have the `syslog' function. */
#define HAVE_SYSLOG 1

/* Define to 1 if you have the <syslog.h> header file. */
#define HAVE_SYSLOG_H 1

/* Define to 1 if you have the <sys/cdefs.h> header file. */
#define HAVE_SYS_CDEFS_H 1

/* Define to 1 if you have the <sys/errno.h> header file. */
#define HAVE_SYS_ERRNO_H 1

/* Define to 1 if you have the <sys/ethernet.h> header file. */
/* #undef HAVE_SYS_ETHERNET_H */

/* Define to 1 if you have the <sys/ioctl.h> header file. */
#define HAVE_SYS_IOCTL_H 1

/* Define to 1 if you have the <sys/linker.h> header file. */
/* #undef HAVE_SYS_LINKER_H */

/* Define to 1 if you have the <sys/mount.h> header file. */
#define HAVE_SYS_MOUNT_H 1

/* Define to 1 if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1

/* Define to 1 if you have the <sys/resource.h> header file. */
#define HAVE_SYS_RESOURCE_H 1

/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1

/* Define to 1 if you have the <sys/signal.h> header file. */
#define HAVE_SYS_SIGNAL_H 1

/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1

/* Define to 1 if you have the <sys/sockio.h> header file. */
/* #undef HAVE_SYS_SOCKIO_H */

/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1

/* Define to 1 if you have the <sys/sysctl.h> header file. */
#define HAVE_SYS_SYSCTL_H 1

/* Define to 1 if you have the <sys/syslog.h> header file. */
#define HAVE_SYS_SYSLOG_H 1

/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1

/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1

/* Define to 1 if you have the <sys/uio.h> header file. */
#define HAVE_SYS_UIO_H 1

/* Define to 1 if you have the <sys/un.h> header file. */
#define HAVE_SYS_UN_H 1

/* Define to 1 if you have the <sys/utsname.h> header file. */
#define HAVE_SYS_UTSNAME_H 1

/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#define HAVE_SYS_WAIT_H 1

/* Define to 1 if you have TCP/UDP UNIX sockets (SOCK_STREAM and SOCK_DGRAM)
   */
#define HAVE_TCPUDP_UNIX_SOCKETS 1

/* Define to 1 if you have the <termios.h> header file. */
#define HAVE_TERMIOS_H 1

/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1

/* Define to 1 if the system has the type `uint16_t'. */
#define HAVE_UINT16_T 1

/* Define to 1 if the system has the type `uint32_t'. */
#define HAVE_UINT32_T 1

/* Define to 1 if the system has the type `uint64_t'. */
#define HAVE_UINT64_T 1

/* Define to 1 if the system has the type `uint8_t'. */
#define HAVE_UINT8_T 1

/* Define to 1 if you have the `uname' function. */
#define HAVE_UNAME 1

/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1

/* Define to 1 if the host has va_copy() support in the build environment */
#define HAVE_VA_COPY 1

/* Define to 1 if you have the `vfork' function. */
#define HAVE_VFORK 1

/* Define to 1 if you have the <vfork.h> header file. */
/* #undef HAVE_VFORK_H */

/* Define to 1 if you have BSD-style ioctl(SIOCGETVLAN) and ioctl(SIOCSETVLAN)
   VLAN interface get/set methods */
/* #undef HAVE_VLAN_BSD */

/* Define to 1 if you have Linux-style ioctl(SIOCGIFVLAN) and
   ioctl(SIOCSIFVLAN) VLAN interface get/set methods */
#define HAVE_VLAN_LINUX 1

/* Define to 1 if you have the <windows.h> header file. */
/* #undef HAVE_WINDOWS_H */

/* Define to 1 if you have the <winsock2.h> header file. */
/* #undef HAVE_WINSOCK2_H */

/* Define to 1 if `fork' works. */
#define HAVE_WORKING_FORK 1

/* Define to 1 if `vfork' works. */
#define HAVE_WORKING_VFORK 1

/* Define to 1 if you have the `writev' function. */
#define HAVE_WRITEV 1

/* Define to 1 if you have the <ws2tcpip.h> header file. */
/* #undef HAVE_WS2TCPIP_H */

/* Define to 1 if the OS is BSDI */
/* #undef HOST_OS_BSDI */

/* Define to 1 if the OS is DragonFlyBSD */
/* #undef HOST_OS_DRAGONFLYBSD */

/* Define to 1 if the OS is FreeBSD */
/* #undef HOST_OS_FREEBSD */

/* Define to 1 if the OS is Linux */
#define HOST_OS_LINUX 1

/* Define to 1 if the OS is MacOS X */
/* #undef HOST_OS_MACOSX */

/* Define the OS name */
#define HOST_OS_NAME "Linux"

/* Define to 1 if the OS is NetBSD */
/* #undef HOST_OS_NETBSD */

/* Define to 1 if the OS is OpenBSD */
/* #undef HOST_OS_OPENBSD */

/* Define to 1 if the OS is Solaris */
/* #undef HOST_OS_SOLARIS */

/* Define to 1 if the OS is Windows */
/* #undef HOST_OS_WINDOWS */

/* Define to 1 if your IPv4 values are not modified on receiving raw IPv4
   packets */
#define IPV4_RAW_INPUT_IS_RAW 1

/* Define to 1 if your IPv4 values are not modified on sending raw IPv4
   packets */
#define IPV4_RAW_OUTPUT_IS_RAW 1

/* Define to 1 if you have KAME IPv6 stack */
/* #undef IPV6_STACK_KAME */

/* Name of package */
#define PACKAGE "xorp"

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "[EMAIL PROTECTED]"

/* Define to the full name of this package. */
#define PACKAGE_NAME "xorp"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "xorp 1.5-RC"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "xorp"

/* Define to the version of this package. */
#define PACKAGE_VERSION "1.5-RC"

/* Define as the return type of signal handlers (`int' or `void'). */
#define RETSIGTYPE void

/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1

/* Define to 1 if your <sys/time.h> declares `struct tm'. */
/* #undef TM_IN_SYS_TIME */

/* Version number of package */
#define VERSION "1.5-WIP"

/* Define if using the dmalloc debugging malloc package */
/* #undef WITH_DMALLOC */

/* Define to 1 if your processor stores words with the most significant byte
   first (like Motorola and SPARC, unlike Intel and VAX). */
/* #undef WORDS_BIGENDIAN */

/* Define path to the top-level build directory */
#define XORP_BUILD_ROOT "/home/greearb/xorp/git/xorp_local_git"

/* Define the path to the root of the XORP installation */
#define XORP_INSTALL_ROOT "/usr/local/xorp"

/* Define the path to the root of the XORP installation */
#define XORP_ROOT "/usr/local/xorp"

/* Define path to the top-level source directory */
#define XORP_SRC_ROOT "/home/greearb/xorp/git/xorp_local_git"

/* Define to 1 if type `char' is unsigned and you are not using gcc.  */
#ifndef __CHAR_UNSIGNED__
/* # undef __CHAR_UNSIGNED__ */
#endif

/* Define to `int' if <sys/types.h> does not define. */
/* #undef mode_t */

/* Define to `int' if <sys/types.h> does not define. */
/* #undef pid_t */

/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */

/* Define as `fork' if `vfork' does not work. */
/* #undef vfork */


/*
 * XORP definitions
 */

/*
 * If you don't have these types in <inttypes.h> or <stdint.h>,
 * typedef these to be the types you do have.
 */
#ifndef HAVE_INT8_T
typedef char int8_t;
#endif
#ifndef HAVE_INT16_T
typedef short int16_t;
#endif
#ifndef HAVE_INT32_T
typedef int int32_t;
#endif
#ifndef HAVE_INT64_T
typedef long long int64_t;
#endif
#ifndef HAVE_UINT8_T
typedef unsigned char uint8_t;
#endif
#ifndef HAVE_UINT16_T
typedef unsigned short uint16_t;
#endif
#ifndef HAVE_UINT32_T
typedef unsigned int uint32_t;
#endif
#ifndef HAVE_UINT64_T
typedef unsigned long long uint64_t;
#endif


/*
 * XXX: Workaround a bug whereby the GNU autoconf tests will happily
 * go off and define their own fictional pid_t using the preprocessor.
 */
#ifdef pid_t
/* #undef pid_t */
#endif

#ifndef HAVE_SIG_T
typedef RETSIGTYPE (*sig_t)(int);
#endif

#ifndef HAVE_SOCKLEN_T
typedef int socklen_t;
#endif /* HAVE_SOCKLEN_T */

/* KAME code likes to use INET6 to ifdef IPv6 code */
#if defined(HAVE_IPV6) && defined(IPV6_STACK_KAME)
#ifndef INET6
#define INET6
#endif
#endif /* HAVE_IPV6 && IPV6_STACK_KAME */

#ifndef WORDS_BIGENDIAN
#define WORDS_SMALLENDIAN
#endif

#endif /* __XORP_CONFIG_H__ */

_______________________________________________
Xorp-hackers mailing list
[email protected]
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers

Reply via email to