#define ETHER_ADDR_TO_STRING_MAX (3*6)
char* ether_addr_to_string(const struct ether_addr *addr, char buffer[ETHER_ADDR_TO_STRING_MAX]);
int ether_addr_to_string_alloc(const struct ether_addr *addr, char **ret);
+/* Use only as function argument, never stand-alone! */
+#define ETHER_ADDR_TO_STR(addr) ether_addr_to_string((addr), (char[ETHER_ADDR_TO_STRING_MAX]){})
int ether_addr_compare(const struct ether_addr *a, const struct ether_addr *b);
static inline bool ether_addr_equal(const struct ether_addr *a, const struct ether_addr *b) {
}
void network_dump(Network *network, FILE *f) {
- char mac[ETHER_ADDR_TO_STRING_MAX];
Address *address;
Route *route;
const char *dhcp;
fputs("\n[Link]\n", f);
if (!ether_addr_is_null(&network->mac))
- fprintf(f, "MACAddress=%s\n", ether_addr_to_string(&network->mac, mac));
+ fprintf(f, "MACAddress=%s\n", ETHER_ADDR_TO_STR(&network->mac));
if (network->mtu > 0)
fprintf(f, "MTUBytes=%" PRIu32 "\n", network->mtu);
}
void link_dump(Link *link, FILE *f) {
- char mac[ETHER_ADDR_TO_STRING_MAX];
-
assert(link);
assert(f);
fputs("[Match]\n", f);
if (!ether_addr_is_null(&link->mac))
- fprintf(f, "MACAddress=%s\n", ether_addr_to_string(&link->mac, mac));
+ fprintf(f, "MACAddress=%s\n", ETHER_ADDR_TO_STR(&link->mac));
fprintf(f,
"\n[Link]\n"
if (info->has_permanent_mac_address) {
_cleanup_free_ char *description = NULL;
- char ea[ETHER_ADDR_TO_STRING_MAX];
(void) ieee_oui(hwdb, &info->permanent_mac_address, &description);
if (r < 0)
return table_log_add_error(r);
r = table_add_cell_stringf(table, NULL, "%s%s%s%s",
- ether_addr_to_string(&info->permanent_mac_address, ea),
+ ETHER_ADDR_TO_STR(&info->permanent_mac_address),
description ? " (" : "",
strempty(description),
description ? ")" : "");
if (info->has_wlan_link_info) {
_cleanup_free_ char *esc = NULL;
- char buf[ETHER_ADDR_TO_STRING_MAX];
r = table_add_many(table,
TABLE_EMPTY,
r = table_add_cell_stringf(table, NULL, "%s (%s)",
strnull(esc),
- ether_addr_to_string(&info->bssid, buf));
+ ETHER_ADDR_TO_STR(&info->bssid));
if (r < 0)
return table_log_add_error(r);
}
void *userdata,
sd_bus_error *error) {
- char buf[ETHER_ADDR_TO_STRING_MAX];
const struct ether_addr *p;
Set *s;
int r;
return r;
SET_FOREACH(p, s) {
- r = sd_bus_message_append(reply, "s", ether_addr_to_string(p, buf));
+ r = sd_bus_message_append(reply, "s", ETHER_ADDR_TO_STR(p));
if (r < 0)
return r;
}
}
if (r > 0 || s > 0) {
- char buf[ETHER_ADDR_TO_STRING_MAX];
-
if (link->wlan_iftype == NL80211_IFTYPE_STATION && link->ssid)
log_link_info(link, "Connected WiFi access point: %s (%s)",
- link->ssid, ether_addr_to_string(&link->bssid, buf));
+ link->ssid, ETHER_ADDR_TO_STR(&link->bssid));
return 1; /* Some information is updated. */
}