(!j || ipa_to_u32(i->ip) < ipa_to_u32(j->ip)))
j = i;
if (!j) /* FIXME: allow configuration or running without RID */
- die("Cannot determine router ID, please configure manually");
+ bug("Cannot determine router ID, please configure manually");
router_id = ipa_to_u32(j->ip);
debug("Router ID set to %08x (%s)\n", router_id, j->name);
}
return e;
#ifdef DEBUGGING
if (len < 0 || len > BITS_PER_IP_ADDRESS || !ip_is_prefix(*a,len))
- die("fib_get() called for invalid address");
+ bug("fib_get() called for invalid address");
#endif
e = sl_alloc(f->fib_slab);
e->prefix = *a;
}
ee = &((*ee)->next);
}
- die("fib_delete() called for invalid node");
+ bug("fib_delete() called for invalid node");
}
void
struct fib_iterator *j, *j0;
unsigned int h0 = ipa_hash(n->prefix);
if (h0 < lo)
- die("fib_check: discord in hash chains");
+ bug("fib_check: discord in hash chains");
lo = h0;
if ((h0 >> f->hash_shift) != i)
- die("fib_check: mishashed %x->%x (order %d)", h0, i, f->hash_order);
+ bug("fib_check: mishashed %x->%x (order %d)", h0, i, f->hash_order);
j0 = (struct fib_iterator *) n;
nulls = 0;
for(j=n->readers; j; j=j->next)
{
if (j->prev != j0)
- die("fib_check: iterator->prev mismatch");
+ bug("fib_check: iterator->prev mismatch");
j0 = j;
if (!j->node)
nulls++;
else if (nulls)
- die("fib_check: iterator nullified");
+ bug("fib_check: iterator nullified");
else if (j->node != n)
- die("fib_check: iterator->node mismatch");
+ bug("fib_check: iterator->node mismatch");
}
ec++;
}
}
if (ec != f->entries)
- die("fib_check: invalid entry count (%d != %d)", ec, f->entries);
+ bug("fib_check: invalid entry count (%d != %d)", ec, f->entries);
}
#endif
if (new->attrs->proto != old->attrs->proto)
{
/* FIXME!!! */
- die("Different protocols, but identical preferences => oops");
+ bug("Different protocols, but identical preferences => oops");
}
if (better = new->attrs->proto->rte_better)
return better(new, old);
break;
}
case RTD_DEVICE:
- die("Static device routes are not supported");
+ bug("Static device routes are not supported");
/* FIXME: Static device routes */
default:
static_install(p, r, NULL);
rte_update(n, &p->p, new);
break;
default:
- die("krt_prune: invalid route status");
+ bug("krt_prune: invalid route status");
}
if (old)
get_sockaddr(struct sockaddr_in *sa, ip_addr *a, unsigned *port)
{
if (sa->sin_family != AF_INET)
- die("get_sockaddr called for wrong address family");
+ bug("get_sockaddr called for wrong address family");
if (port)
*port = ntohs(sa->sin_port);
memcpy(a, &sa->sin_addr.s_addr, sizeof(*a));
fd = socket(PF_INET, SOCK_RAW, s->dport);
break;
default:
- die("sk_open() called for invalid sock type %d", s->type);
+ bug("sk_open() called for invalid sock type %d", s->type);
}
if (fd < 0)
die("sk_open: socket: %m");
return 1;
}
default:
- die("sk_maybe_write: unknown socket type %d", s->type);
+ bug("sk_maybe_write: unknown socket type %d", s->type);
}
}
break;
#endif
default:
- die("krt set: unknown flags, but not filtered");
+ bug("krt set: unknown flags, but not filtered");
}
if (ioctl(if_scan_sock, ioc, &re) < 0)
krt_set_preconfig(struct krt_proto *x)
{
if (if_scan_sock < 0)
- die("krt set: missing socket");
+ bug("krt set: missing socket");
x->p.rt_notify = krt_set_notify;
}
debug("Entering I/O loop.\n");
io_loop();
- die("I/O loop died");
+ bug("I/O loop died");
}