- DPRINTF(2, "%s: add route to "IP_FMT"/%d via "IP_FMT"\n",
- host->rif->ifname, IP_BUF(route->dest), route->mask, IP_BUF(host->ipaddr));
- if (!route->mask) {
- /* No DST -> reuse the DST attribute as the gateway attribute */
- memcpy(req.dst.ipaddr, host->ipaddr, sizeof(req.dst.ipaddr));
- req.dst.rta.rta_type = RTA_GATEWAY;
- pktlen -= sizeof(req.gw);
- req.rt.rtm_dst_len = 0;
- } else {
- memcpy(req.gw.ipaddr, host->ipaddr, sizeof(req.gw.ipaddr));
- memcpy(req.dst.ipaddr, route->dest, sizeof(req.dst.ipaddr));
- req.rt.rtm_dst_len = route->mask;
- }
+ DPRINTF(2, "%s: add route to "IP_FMT"/%d via "IP_FMT" (%s)\n", ifname,
+ IP_BUF(route->dest), route->mask, IP_BUF(host->ipaddr),
+ host->rif->ifname);
+
+ req.rt.rtm_dst_len = route->mask;
+ if (route->mask)
+ addr = rtnl_add_addr(addr, &pktlen, RTA_DST, route->dest);
+ addr = rtnl_add_addr(addr, &pktlen, RTA_GATEWAY, host->ipaddr);