datastorage: improve linked list

- Simplify linked list search - code was unnecessarily complex for no benefit
- Adjust some MAC address handling to simplify code

[cleanup commit message]
Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
Ian Clowes 2022-01-31 10:51:29 +00:00 committed by Nick Hainke
parent 160ccf8917
commit 6e03e37ce8
6 changed files with 53 additions and 131 deletions

View file

@ -25,11 +25,11 @@ struct mac_entry_s {
// ---------------- Functions ----------
void insert_macs_from_file();
int insert_to_maclist(struct dawn_mac mac);
struct mac_entry_s* insert_to_maclist(struct dawn_mac mac);
int mac_in_maclist(struct dawn_mac mac);
struct mac_entry_s* mac_find_entry(struct dawn_mac mac);
struct mac_entry_s* insert_to_mac_array(struct mac_entry_s* entry, struct mac_entry_s** insert_pos);
struct mac_entry_s* insert_to_mac_array(struct mac_entry_s* entry);
void mac_array_delete(struct mac_entry_s* entry);

View file

@ -23,6 +23,9 @@ struct __attribute__((__packed__)) dawn_mac
uint8_t u8[ETH_ALEN];
};
// Used as a filler where a value is required but not used functionally
extern const struct dawn_mac dawn_mac_null;
// Compare a raw MAC address to 00:00:00:00:00:00
#define mac_is_null(a1) ((a1)[0] == 0) && ((a1)[1] == 0) && ((a1)[2] == 0) && ((a1)[3] == 0) && ((a1)[4] == 0) && ((a1)[5] == 0)
@ -41,6 +44,12 @@ struct __attribute__((__packed__)) dawn_mac
*/
int hwaddr_aton(const char* txt, uint8_t* addr);
/**
* Parse MAC from string.
* @param s
*/
struct dawn_mac str2mac(char* s);
/**
* Write mac to a file.
* @param path