From 9f892b10a6a5927b2ff12d112b2465bc438dba45 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Tue, 14 Jan 2014 14:44:55 -0500 Subject: [PATCH] unconditionally read in status file to retain random mac address --- dhtest.c | 7 +++++-- functions.c | 5 +++-- headers.h | 1 - 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/dhtest.c b/dhtest.c index 010b6c0..03006d5 100644 --- a/dhtest.c +++ b/dhtest.c @@ -116,6 +116,7 @@ static void sigcleanup(int sig) { int main(int argc, char *argv[]) { int get_tmp = 1, get_cmd; + int dhinfo_ret; if(argc < 3) { print_help(argv[0]); @@ -365,6 +366,8 @@ int main(int argc, char *argv[]) exit(2); } + dhinfo_ret = get_dhinfo(); + if (!dhmac_fname_flag) sprintf(dhmac_fname, ETH_F_FMT, ETH_F_ARG(dhmac)); @@ -393,8 +396,8 @@ int main(int argc, char *argv[]) * and unlinks it from the system */ if(dhcp_release_flag) { - if(get_dhinfo() == ERR_FILE_OPEN) - critical("Error on opening DHCP info file: %m"); + if(dhinfo_ret) + critical("Error on opening DHCP info file: %s", strerror(dhinfo_ret)); if (!server_id) critical("Can't release IP without an active lease"); build_option53(DHCP_MSGRELEASE); /* Option53 DHCP release */ diff --git a/functions.c b/functions.c index 2d21c88..7196c02 100644 --- a/functions.c +++ b/functions.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "headers.h" @@ -954,10 +955,10 @@ int get_dhinfo() dh_file = open(dhmac_fname, O_RDONLY); if(dh_file < 0) - return ERR_FILE_OPEN; + return errno; if (read(dh_file, &ds, sizeof(ds)) != sizeof(ds)) - return ERR_FILE_OPEN; + return errno; memcpy(dhmac, ds.client_mac, sizeof(dhmac)); if (ds.have_ip) { diff --git a/headers.h b/headers.h index 6f2b848..b45146a 100644 --- a/headers.h +++ b/headers.h @@ -282,7 +282,6 @@ struct dhcpv4_hdr #define DHCP_ACK_RCVD 4 #define DHCP_REQ_RESEND 5 #define DHCP_NAK_RCVD 6 -#define ERR_FILE_OPEN 7 #define ARP_ICMP_RCV 8 #define ARP_RCVD 9 #define ARP_MAP 10