From 7003adb1ef0285a9003f3b0de0265ca3ee201eef 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) (cherry picked from commit 73aa5b47fa948f03c2482fc1b6d6070ef722f541) --- 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 d350d32e41..9c0f012e1e 100644 --- a/src/libnm-glib-aux/nm-shared-utils.h +++ b/src/libnm-glib-aux/nm-shared-utils.h @@ -239,6 +239,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;