}
}
+static int
+krt_set_hook(sock *sk, int size UNUSED)
+{
+ struct ks_msg msg;
+ int l = read(sk->fd, (char *)&msg, sizeof(msg));
+
+ if(l <= 0)
+ log(L_ERR "krt-sock: read failed");
+ else
+ krt_read_msg((struct proto *)sk->data, &msg, 0);
+
+ return 0;
+}
+
void
krt_set_start(struct krt_proto *x, int first UNUSED)
{
bug("krt-sock: sk_open failed");
}
-static int
-krt_set_hook(sock *sk, int size UNUSED)
-{
- struct ks_msg msg;
- int l = read(sk->fd, (char *)&msg, sizeof(msg));
-
- if(l <= 0)
- log(L_ERR "krt-sock: read failed");
- else
- krt_read_msg((struct proto *)sk->data, &msg, 0);
-
- return 0;
-}
-
-void
+static void
krt_read_rt(struct ks_msg *msg, struct krt_proto *p, int scan)
{
sockaddr gate, mask, dst;
krt_got_route_async(p, e, new);
}
-void
+static void
krt_read_ifinfo(struct ks_msg *msg)
{
struct if_msghdr *ifm = (struct if_msghdr *)&msg->rtm;
if_update(&f); /* Just if something happens */
}
-void
+static void
krt_read_addr(struct ks_msg *msg)
{
struct ifa_msghdr *ifam = (struct ifa_msghdr *)&msg->rtm;
{
}
-void
+static void
krt_sysctl_scan(struct proto *p, pool *pool, byte **buf, int *bl, int cmd)
{
byte *next;
struct krt_if_status {
};
-static int krt_set_hook(sock *sk, int size);
static inline int krt_set_params_same(struct krt_set_params *o UNUSED, struct krt_set_params *n UNUSED) { return 1; }
void krt_read_msg(struct proto *p, struct ks_msg *msg, int scan);