diff options
author | Christian Mehlis <christian@m3hlis.de> | 2014-08-12 14:30:02 +0200 |
---|---|---|
committer | Christian Mehlis <christian@m3hlis.de> | 2014-08-12 14:31:56 +0200 |
commit | 85e370673ef76fa1ce461a4ac3d995f376522fd1 (patch) | |
tree | 41e3cb8ed5fc8d327c83ee6c840c46a83300612c /src/dhcpv4.c | |
parent | 634d9fe9142f62b7b2e7647ef88d6606e54ab155 (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.c | 33 |
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)); } |