summaryrefslogtreecommitdiffhomepage
path: root/src/dhcpv4.c
diff options
context:
space:
mode:
authorChristian Mehlis <christian@m3hlis.de>2014-08-12 14:30:02 +0200
committerChristian Mehlis <christian@m3hlis.de>2014-08-12 14:31:56 +0200
commit85e370673ef76fa1ce461a4ac3d995f376522fd1 (patch)
tree41e3cb8ed5fc8d327c83ee6c840c46a83300612c /src/dhcpv4.c
parent634d9fe9142f62b7b2e7647ef88d6606e54ab155 (diff)
dhcpv4: log requests and replies to syslog
This change let odhcpd print dhcpv4 events to syslog.
Diffstat (limited to 'src/dhcpv4.c')
-rw-r--r--src/dhcpv4.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/dhcpv4.c b/src/dhcpv4.c
index 2093ecd..7fe5bd8 100644
--- a/src/dhcpv4.c
+++ b/src/dhcpv4.c
@@ -45,6 +45,29 @@ int init_dhcpv4(void)
return 0;
}
+char *dhcpv4_msg_to_string(uint8_t reqmsg)
+{
+ switch (reqmsg) {
+ case (DHCPV4_MSG_DISCOVER):
+ return "DHCPV4_MSG_DISCOVER";
+ case (DHCPV4_MSG_OFFER):
+ return "DHCPV4_MSG_OFFER";
+ case (DHCPV4_MSG_REQUEST):
+ return "DHCPV4_MSG_REQUEST";
+ case (DHCPV4_MSG_DECLINE):
+ return "DHCPV4_MSG_DECLINE";
+ case (DHCPV4_MSG_ACK):
+ return "DHCPV4_MSG_ACK";
+ case (DHCPV4_MSG_NAK):
+ return "DHCPV4_MSG_NAK";
+ case (DHCPV4_MSG_RELEASE):
+ return "DHCPV4_MSG_RELEASE";
+ case (DHCPV4_MSG_INFORM):
+ return "DHCPV4_MSG_INFORM";
+ default:
+ return "UNKNOWN";
+ }
+}
int setup_dhcpv4_interface(struct interface *iface, bool enable)
{
@@ -337,6 +360,11 @@ static void handle_dhcpv4(void *addr, void *data, size_t len,
lease = NULL;
}
+ syslog(LOG_WARNING, "received %s from %x:%x:%x:%x:%x:%x",
+ dhcpv4_msg_to_string(reqmsg),
+ req->chaddr[0],req->chaddr[1],req->chaddr[2],
+ req->chaddr[3],req->chaddr[4],req->chaddr[5]);
+
if (reqmsg == DHCPV4_MSG_DECLINE || reqmsg == DHCPV4_MSG_RELEASE)
return;
@@ -419,6 +447,11 @@ static void handle_dhcpv4(void *addr, void *data, size_t len,
ioctl(sock, SIOCSARP, &arp);
}
+ syslog(LOG_WARNING, "sending %s to %x:%x:%x:%x:%x:%x",
+ dhcpv4_msg_to_string(msg),
+ req->chaddr[0],req->chaddr[1],req->chaddr[2],
+ req->chaddr[3],req->chaddr[4],req->chaddr[5]);
+
sendto(sock, &reply, sizeof(reply), MSG_DONTWAIT,
(struct sockaddr*)&dest, sizeof(dest));
}