]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
dbus: Dict helpers for fetching integers of any type
authorJouni Malinen <quic_jouni@quicinc.com>
Sun, 15 Sep 2024 08:59:24 +0000 (11:59 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 15 Sep 2024 08:59:54 +0000 (11:59 +0300)
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
wpa_supplicant/dbus/dbus_dict_helpers.c
wpa_supplicant/dbus/dbus_dict_helpers.h

index 27003eb44e59da780ac2eec01365e4cef503fb02..a3f32c34f6e61220e9c63d948ca19d0fefd61c73 100644 (file)
@@ -1159,3 +1159,38 @@ void wpa_dbus_dict_entry_clear(struct wpa_dbus_dict_entry *entry)
 
        os_memset(entry, 0, sizeof(struct wpa_dbus_dict_entry));
 }
+
+
+dbus_bool_t wpa_dbus_dict_entry_is_int(const struct wpa_dbus_dict_entry *entry)
+{
+       return entry->type == DBUS_TYPE_BYTE ||
+               entry->type == DBUS_TYPE_INT16 ||
+               entry->type == DBUS_TYPE_UINT16 ||
+               entry->type == DBUS_TYPE_INT32 ||
+               entry->type == DBUS_TYPE_UINT32 ||
+               entry->type == DBUS_TYPE_INT64 ||
+               entry->type == DBUS_TYPE_UINT64;
+}
+
+
+int wpa_dbus_dict_entry_get_int(const struct wpa_dbus_dict_entry *entry)
+{
+       switch (entry->type) {
+       case DBUS_TYPE_BYTE:
+               return entry->byte_value;
+       case DBUS_TYPE_INT16:
+               return entry->int16_value;
+       case DBUS_TYPE_UINT16:
+               return entry->uint16_value;
+       case DBUS_TYPE_INT32:
+               return entry->int32_value;
+       case DBUS_TYPE_UINT32:
+               return entry->uint32_value;
+       case DBUS_TYPE_INT64:
+               return entry->int64_value;
+       case DBUS_TYPE_UINT64:
+               return entry->uint64_value;
+       }
+
+       return -1;
+}
index 1d33689a8e4412ac3227e5c550ee694663702451..15c8aba0c6f7e008c3c975e07ad2928128b845e7 100644 (file)
@@ -158,4 +158,7 @@ dbus_bool_t wpa_dbus_dict_has_dict_entry(DBusMessageIter *iter_dict);
 
 void wpa_dbus_dict_entry_clear(struct wpa_dbus_dict_entry *entry);
 
+dbus_bool_t wpa_dbus_dict_entry_is_int(const struct wpa_dbus_dict_entry *entry);
+int wpa_dbus_dict_entry_get_int(const struct wpa_dbus_dict_entry *entry);
+
 #endif  /* DBUS_DICT_HELPERS_H */