SCCS-vsn: sbin/XNSrouted/tables.c 5.6
-static char sccsid[] = "@(#)tables.c 5.5 (Berkeley) %G%";
+static char sccsid[] = "@(#)tables.c 5.6 (Berkeley) %G%";
+extern char *xns_ntoa();
+
int install = !DEBUG; /* if 1 call kernel */
int delete = 1;
/*
int install = !DEBUG; /* if 1 call kernel */
int delete = 1;
/*
* occur because of an incorrect entry in /etc/gateways.
*/
if (install && ioctl(s, SIOCADDRT, (char *)&rt->rt_rt) < 0) {
* occur because of an incorrect entry in /etc/gateways.
*/
if (install && ioctl(s, SIOCADDRT, (char *)&rt->rt_rt) < 0) {
- syslog(LOG_ERR,"SIOCADDRT: %m");
+ if (errno != EEXIST)
+ perror("SIOCADDRT");
if (errno == ENETUNREACH) {
TRACE_ACTION(DELETE, rt);
remque(rt);
if (errno == ENETUNREACH) {
TRACE_ACTION(DELETE, rt);
remque(rt);
}
if (doioctl && install) {
if (ioctl(s, SIOCADDRT, (char *)&rt->rt_rt) < 0)
}
if (doioctl && install) {
if (ioctl(s, SIOCADDRT, (char *)&rt->rt_rt) < 0)
- syslog(LOG_ERR,"SIOCADDRT %m");
- if (delete)
- if (ioctl(s, SIOCDELRT, (char *)&oldroute) < 0)
- syslog(LOG_ERR,"SIOCDELRT %m");
+ syslog(LOG_ERR, "SIOCADDRT dst %s, gw %s: %m",
+ xns_ntoa(&((struct sockaddr_ns *)&rt->rt_dst)->sns_addr),
+ xns_ntoa(&((struct sockaddr_ns *)&rt->rt_router)->sns_addr));
+ if (delete && ioctl(s, SIOCDELRT, (char *)&oldroute) < 0)
+ perror("SIOCDELRT");