summaryrefslogtreecommitdiffstats
path: root/configure.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-12-01 16:56:56 +0000
committerRoy Marples <roy@marples.name>2008-12-01 16:56:56 +0000
commitfb10befc1caa5d518da26da9822f030bda082cfd (patch)
tree3bee8c796bbbef5ae0f272f3187da2d18cd85c50 /configure.c
parentb96011558a4c5a2a2749e11075d70de9a914bf56 (diff)
downloaddhcpcd-fb10befc1caa5d518da26da9822f030bda082cfd.tar.xz
Add desc_route to save some bytes.
Diffstat (limited to 'configure.c')
-rw-r--r--configure.c50
1 files changed, 26 insertions, 24 deletions
diff --git a/configure.c b/configure.c
index 768aa964..a5c9903d 100644
--- a/configure.c
+++ b/configure.c
@@ -217,26 +217,37 @@ find_route(struct rt *rts, const struct rt *r, struct rt **lrt,
return NULL;
}
-static int
-n_route(struct rt *rt, const struct interface *iface)
+static void
+desc_route(int action, const struct rt *rt, const char *ifname)
{
char *addr;
+ const char *cmd;
+
+ cmd = action == 1 ? "adding" : "deleting";
+ addr = xstrdup(inet_ntoa(rt->dest));
+ if (rt->gate.s_addr == INADDR_ANY)
+ syslog(LOG_DEBUG, "%s: %s route to %s/%d", ifname, cmd,
+ addr, inet_ntocidr(rt->net));
+ else if (rt->gate.s_addr == rt->dest.s_addr &&
+ rt->net.s_addr == INADDR_BROADCAST)
+ syslog(LOG_DEBUG, "%s: %s host route to %s", ifname, cmd,
+ addr);
+ else
+ syslog(LOG_DEBUG, "%s: %s route to %s/%d via %s", ifname, cmd,
+ addr, inet_ntocidr(rt->net), inet_ntoa(rt->gate));
+ free(addr);
+}
+static int
+n_route(struct rt *rt, const struct interface *iface)
+{
/* Don't set default routes if not asked to */
if (rt->dest.s_addr == 0 &&
rt->net.s_addr == 0 &&
!(iface->state->options->options & DHCPCD_GATEWAY))
return -1;
- addr = xstrdup(inet_ntoa(rt->dest));
- if (rt->gate.s_addr == INADDR_ANY)
- syslog(LOG_DEBUG, "%s: adding route to %s/%d",
- iface->name, addr, inet_ntocidr(rt->net));
- else
- syslog(LOG_DEBUG, "%s: adding route to %s/%d via %s",
- iface->name, addr,
- inet_ntocidr(rt->net), inet_ntoa(rt->gate));
- free(addr);
+ desc_route(1, rt, iface->name);
if (!add_route(iface, &rt->dest, &rt->net, &rt->gate, iface->metric))
return 0;
if (errno == EEXIST) {
@@ -248,7 +259,7 @@ n_route(struct rt *rt, const struct interface *iface)
else
return -1;
}
- syslog(LOG_ERR, "add_route: %m");
+ syslog(LOG_ERR, "%s: add_route: %m", iface->name);
return -1;
}
@@ -273,28 +284,19 @@ c_route(struct rt *ort, struct rt *nrt, const struct interface *iface)
del_route(ort->iface, &ort->dest, &ort->net, &ort->gate, ort->iface->metric);
if (!add_route(iface, &nrt->dest, &nrt->net, &nrt->gate, iface->metric))
return 0;
- syslog(LOG_ERR, "add_route: %m");
+ syslog(LOG_ERR, "%s: add_route: %m", iface->name);
return -1;
}
static int
d_route(struct rt *rt, const struct interface *iface, int metric)
{
- char *addr;
int retval;
- addr = xstrdup(inet_ntoa(rt->dest));
- if (rt->gate.s_addr == INADDR_ANY)
- syslog(LOG_DEBUG, "%s: deleting route %s/%d", iface->name,
- addr, inet_ntocidr(rt->net));
- else
- syslog(LOG_DEBUG, "%s: deleting route %s/%d via %s",
- iface->name, addr,
- inet_ntocidr(rt->net), inet_ntoa(rt->gate));
- free(addr);
+ desc_route(-1, rt, iface->name);
retval = del_route(iface, &rt->dest, &rt->net, &rt->gate, metric);
if (retval != 0 && errno != ENOENT && errno != ESRCH)
- syslog(LOG_ERR," del_route: %m");
+ syslog(LOG_ERR,"%s: del_route: %m", iface->name);
return retval;
}