From 49e1e865dba1d4ac7f714934839dc9151806b267 Mon Sep 17 00:00:00 2001 From: Richard Fuchs <rfuchs@sipwise.com> Date: Tue, 14 Jan 2014 14:20:53 -0500 Subject: [PATCH] dont delete status file on release --- dhtest.c | 15 +++++++++++---- functions.c | 1 - 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dhtest.c b/dhtest.c index 20c1051..d9bebff 100644 --- a/dhtest.c +++ b/dhtest.c @@ -399,12 +399,17 @@ int main(int argc, char *argv[]) */ if(dhcp_release_flag) { if(get_dhinfo() == ERR_FILE_OPEN) { - if (nagios_flag) { + if (nagios_flag) printf("CRITICAL: Error on opening DHCP info file."); - } else { + else fprintf(stderr, "Error on opening DHCP info file\n"); - fprintf(stderr, "Release the DHCP IP after acquiring\n"); - } + exit(2); + } + if (!server_id) { + if (nagios_flag) + printf("CRITICAL: Can't release IP without an active lease"); + else + fprintf(stderr, "Can't release IP without an active lease\n"); exit(2); } build_option53(DHCP_MSGRELEASE); /* Option53 DHCP release */ @@ -418,6 +423,8 @@ int main(int argc, char *argv[]) build_optioneof(); /* End of option */ build_dhpacket(DHCP_MSGRELEASE); /* Build DHCP release packet */ send_packet(DHCP_MSGRELEASE); /* Send DHCP release packet */ + /* update status file: we no longer have our IP address */ + log_dhinfo(); return 0; } if(timeout) { diff --git a/functions.c b/functions.c index d21f1df..bf01c63 100644 --- a/functions.c +++ b/functions.c @@ -995,7 +995,6 @@ int get_dhinfo() } close(dh_file); - unlink(dhmac_fname); return 0; }