diff options
-rw-r--r-- | plugins/check_dhcp.c | 21 |
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 |