ndp: more fixes
[project/odhcpd.git] / src / odhcpd.c
index b8651dd..0edf63e 100644 (file)
@@ -49,6 +49,12 @@ static int rtnl_seq = 0;
 static int urandom_fd = -1;
 
 
+static void sighandler(_unused int signal)
+{
+       uloop_end();
+}
+
+
 int main()
 {
        openlog("odhcpd", LOG_PERROR | LOG_PID, LOG_DAEMON);
@@ -71,6 +77,8 @@ int main()
                return 4;
 
        signal(SIGUSR1, SIG_IGN);
+       signal(SIGINT, sighandler);
+       signal(SIGTERM, sighandler);
 
        if (init_router())
                return 4;
@@ -377,6 +385,11 @@ int odhcpd_register(struct odhcpd_event *event)
        return uloop_fd_add(&event->uloop, ULOOP_READ);
 }
 
+void odhcpd_process(struct odhcpd_event *event)
+{
+       odhcpd_receive_packets(&event->uloop, 0);
+}
+
 void odhcpd_urandom(void *data, size_t len)
 {
        read(urandom_fd, data, len);