vlist_flush(&leases);
-#ifdef WITH_UBUS
ubus_apply_network();
-#endif
bool any_dhcpv6_slave = false, any_ra_slave = false, any_ndp_slave = false;
signal(SIGINT, handle_signal);
signal(SIGHUP, handle_signal);
-#ifdef WITH_UBUS
while (ubus_init())
sleep(1);
-#endif
odhcpd_reload();
uloop_run();
syslog(LOG_INFO, "Received %s from %s on %s", dhcpv4_msg_to_string(reqmsg),
odhcpd_print_mac(req->chaddr, req->hlen), iface->name);
-#ifdef WITH_UBUS
if (reqmsg == DHCPV4_MSG_RELEASE) {
struct in_addr ciaddr = req->ciaddr; // ensure pointer alignment
ubus_bcast_dhcp_event("dhcp.release", req->chaddr, req->hlen,
- &ciaddr, a ? a->hostname : NULL, iface->ifname);
+ &ciaddr, a ? a->hostname : NULL, iface->ifname);
}
-#endif
if (reqmsg == DHCPV4_MSG_DECLINE || reqmsg == DHCPV4_MSG_RELEASE)
return;
"ff:ff:ff:ff:ff:ff": odhcpd_print_mac(req->chaddr, req->hlen),
inet_ntoa(dest.sin_addr));
-#ifdef WITH_UBUS
if (msg == DHCPV4_MSG_ACK) {
struct in_addr yiaddr = reply.yiaddr; // ensure pointer alignment
ubus_bcast_dhcp_event("dhcp.ack", req->chaddr, req->hlen, &yiaddr,
- a ? a->hostname : NULL, iface->ifname);
+ a ? a->hostname : NULL, iface->ifname);
}
-#endif
}
/* Handler for DHCPv4 messages */
const char* ubus_get_ifname(const char *name);
void ubus_apply_network(void);
bool ubus_has_prefix(const char *name, const char *ifname);
-void ubus_bcast_dhcp_event(const char *type, const uint8_t *mac, const size_t mac_len,
- const struct in_addr *addr, const char *name, const char *interface);
-#endif
+void ubus_bcast_dhcp_event(const char *type, const uint8_t *mac,
+ const size_t mac_len, const struct in_addr *addr,
+ const char *name, const char *interface);
+#else
+static inline int ubus_init(void)
+{
+ return 0;
+}
+
+static inline void ubus_apply_network(void)
+{
+ return;
+}
+
+static inline
+void ubus_bcast_dhcp_event(const char *type, const uint8_t *mac,
+ const size_t mac_len, const struct in_addr *addr,
+ const char *name, const char *interface)
+{
+ return;
+}
+#endif /* WITH_UBUS */
ssize_t dhcpv6_ia_handle_IAs(uint8_t *buf, size_t buflen, struct interface *iface,
const struct sockaddr_in6 *addr, const void *data, const uint8_t *end);