summaryrefslogtreecommitdiffstats
path: root/plugins/check_dhcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/check_dhcp.c')
-rw-r--r--plugins/check_dhcp.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/plugins/check_dhcp.c b/plugins/check_dhcp.c
index 6703c57..a3e0c53 100644
--- a/plugins/check_dhcp.c
+++ b/plugins/check_dhcp.c
@@ -770,12 +770,21 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){
770 printf("Option: %d (0x%02X)\n",option_type,option_length); 770 printf("Option: %d (0x%02X)\n",option_type,option_length);
771 771
772 /* get option data */ 772 /* get option data */
773 if(option_type==DHCP_OPTION_LEASE_TIME) 773 if(option_type==DHCP_OPTION_LEASE_TIME) {
774 dhcp_lease_time=ntohl(*((u_int32_t *)&offer_packet->options[x])); 774 memcpy(&dhcp_lease_time, &offer_packet->options[x],
775 if(option_type==DHCP_OPTION_RENEWAL_TIME) 775 sizeof(dhcp_lease_time));
776 dhcp_renewal_time=ntohl(*((u_int32_t *)&offer_packet->options[x])); 776 dhcp_lease_time = ntohl(dhcp_lease_time);
777 if(option_type==DHCP_OPTION_REBINDING_TIME) 777 }
778 dhcp_rebinding_time=ntohl(*((u_int32_t *)&offer_packet->options[x])); 778 if(option_type==DHCP_OPTION_RENEWAL_TIME) {
779 memcpy(&dhcp_renewal_time, &offer_packet->options[x],
780 sizeof(dhcp_renewal_time));
781 dhcp_renewal_time = ntohl(dhcp_renewal_time);
782 }
783 if(option_type==DHCP_OPTION_REBINDING_TIME) {
784 memcpy(&dhcp_rebinding_time, &offer_packet->options[x],
785 sizeof(dhcp_rebinding_time));
786 dhcp_rebinding_time = ntohl(dhcp_rebinding_time);
787 }
779 788
780 /* skip option data we're ignoring */ 789 /* skip option data we're ignoring */
781 else 790 else