From 73aa5b47fa948f03c2482fc1b6d6070ef722f541 Mon Sep 17 00:00:00 2001 From: Fernando Fernandez Mancera Date: Wed, 18 Dec 2024 11:23:25 +0100 Subject: [PATCH] glib-aux: add nm_ether_addr_hash() helper Add a hash generation helper for NMEtherAddr struct. This can be used for HashTables containing pointers to NMEtherAddr structs. (cherry picked from commit a63eec924cccf324b82a66fccc9d72d49bb2adfc) (cherry picked from commit 6371802087caf883e6880e4049c578ff1b7318e0) --- src/libnm-glib-aux/nm-shared-utils.c | 11 +++++++++++ src/libnm-glib-aux/nm-shared-utils.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/libnm-glib-aux/nm-shared-utils.c b/src/libnm-glib-aux/nm-shared-utils.c index 421e4d1bef..25c78fd31a 100644 --- a/src/libnm-glib-aux/nm-shared-utils.c +++ b/src/libnm-glib-aux/nm-shared-utils.c @@ -58,6 +58,17 @@ nm_ether_addr_from_string(NMEtherAddr *addr, const char *str) return addr; } +guint +nm_ether_addr_hash(const NMEtherAddr *a) +{ + NMHashState h; + + nm_hash_init(&h, 1947951703u); + nm_hash_update(&h, a, sizeof(NMEtherAddr)); + + return nm_hash_complete(&h); +} + /*****************************************************************************/ /** diff --git a/src/libnm-glib-aux/nm-shared-utils.h b/src/libnm-glib-aux/nm-shared-utils.h index ca9feb6080..70f1912e3c 100644 --- a/src/libnm-glib-aux/nm-shared-utils.h +++ b/src/libnm-glib-aux/nm-shared-utils.h @@ -240,6 +240,8 @@ nm_ether_addr_is_zero(const NMEtherAddr *a) return nm_memeq(a, &nm_ether_addr_zero, sizeof(NMEtherAddr)); } +guint nm_ether_addr_hash(const NMEtherAddr *a); + /*****************************************************************************/ struct ether_addr;