diff --git a/src/arp.c b/src/arp.c index 8b77878..8a809d1 100644 --- a/src/arp.c +++ b/src/arp.c @@ -180,7 +180,7 @@ static int arp_send(struct client_state_t cs[static 1], return ret; } - if (check_carrier()) { + if (!carrier_isup()) { log_error("%s: (%s) carrier down; sendto would fail", client_config.interface, __func__); ret = -99; diff --git a/src/dhcp.c b/src/dhcp.c index c9c642d..76f0db0 100644 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -108,7 +108,7 @@ static ssize_t send_dhcp_unicast(struct client_state_t cs[static 1], } size_t payload_len = sizeof *payload - (sizeof payload->options - 1 - endloc); - if (check_carrier()) { + if (!carrier_isup()) { log_error("%s: (%s) carrier down; write would fail", client_config.interface, __func__); ret = -99; @@ -286,7 +286,7 @@ static ssize_t send_dhcp_raw(struct dhcpmsg payload[static 1]) .sll_halen = 6, }; memcpy(da.sll_addr, "\xff\xff\xff\xff\xff\xff", 6); - if (check_carrier()) { + if (!carrier_isup()) { log_error("%s: (%s) carrier down; sendto would fail", client_config.interface, __func__); ret = -99; diff --git a/src/ifchange.c b/src/ifchange.c index 6166344..ad8c867 100644 --- a/src/ifchange.c +++ b/src/ifchange.c @@ -224,12 +224,11 @@ static int ifchwrite(const char buf[static 1], size_t count) return -1; } -// Returns 0 if there is a carrier, -1 if not. -int check_carrier(void) +bool carrier_isup(void) { char buf[256]; snprintf(buf, sizeof buf, "carrier:;"); - return ifchwrite(buf, strlen(buf)); + return ifchwrite(buf, strlen(buf)) == 0; } int ifchange_deconfig(struct client_state_t cs[static 1]) diff --git a/src/ifchange.h b/src/ifchange.h index fa0137b..d1259b7 100644 --- a/src/ifchange.h +++ b/src/ifchange.h @@ -29,7 +29,9 @@ #ifndef IFCHANGE_H_ #define IFCHANGE_H_ -int check_carrier(void); +#include + +bool carrier_isup(void); int ifchange_bind(struct client_state_t cs[static 1], struct dhcpmsg packet[static 1]); int ifchange_deconfig(struct client_state_t cs[static 1]);