#include <netinet/in_systm.h>
#endif
])
+
+# Check for IPTOS_PREC
+AC_MSG_CHECKING(IPPROTO_IP IP_TOS IPTOS_LOWDELAY)
+AC_EGREP_CPP(yes,
+ [#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_NETINET_IP_H
+#include <netinet/in.h>
+#include <netinet/ip.h>
+#endif
+#if defined(IPPROTO_IP) && defined(IP_TOS) && defined(IPTOS_LOWDELAY)
+ yes
+#endif
+ ],
+ [AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_IPTOS_SUPPORT, 1, [Do we have IPTOS support?])],
+ [AC_MSG_RESULT([no])])
+
AC_CHECK_HEADERS(netinfo/ni.h, [AC_DEFINE(HAVE_NETINFO, 1, [NetInfo support?])])
AC_CHECK_HEADERS(sun/audioio.h sys/audioio.h)
dnl AC_CHECK_HEADERS(sys/chudefs.h)
static struct refclockio *refio;
#endif /* REFCLOCK */
+#if defined(HAVE_IPTOS_SUPPORT)
+/* set IP_TOS to minimize packet delay */
+# if defined(IPTOS_PREC_INTERNETCONTROL)
+const int tos = IPTOS_PREC_INTERNETCONTROL;
+# else
+const int tos = IPTOS_LOWDELAY;
+# endif
+#endif
/*
* Define what the possible "soft" errors can be. These are non-fatal returns
SOCKET fd;
int on = 1, off = 0; /* int is OK for REUSEADR per */
/* http://www.kohala.com/start/mcast.api.txt */
-#if defined(IPTOS_LOWDELAY) && defined(IPPROTO_IP) && defined(IP_TOS)
- int tos;
-#endif /* IPTOS_LOWDELAY && IPPROTO_IP && IP_TOS */
if ((addr->ss_family == AF_INET6) && (isc_net_probeipv6() != ISC_R_SUCCESS))
return (INVALID_SOCKET);
* IPv4 specific options go here
*/
if (addr->ss_family == AF_INET) {
-#if defined(IPTOS_LOWDELAY) && defined(IPPROTO_IP) && defined(IP_TOS)
- /* set IP_TOS to minimize packet delay */
- tos = IPTOS_LOWDELAY;
- if (setsockopt(fd, IPPROTO_IP, IP_TOS, (char *) &tos, sizeof(tos)) < 0)
- {
- netsyslog(LOG_ERR, "setsockopt IPTOS_LOWDELAY on fails on address %s: %m",
- stoa(addr));
- }
-#endif /* IPTOS_LOWDELAY && IPPROTO_IP && IP_TOS */
- if ((flags & INT_BROADCAST))
- socket_broadcast_enable(interf, fd, addr);
+#if defined(HAVE_IPTOS_SUPPORT)
+ if (setsockopt(fd, IPPROTO_IP, IP_TOS, (char *) &tos,
+ sizeof(tos)) < 0) {
+ netsyslog(LOG_ERR,
+ "setsockopt IP_TOS (%02x) fails on address %s: %m",
+ tos, stoa(addr));
+ }
+#endif /* HAVE_IPTOS_SUPPORT */
+ if ((flags & INT_BROADCAST))
+ socket_broadcast_enable(interf, fd, addr);
}
/*