th/libnm-dbus-rework-1] various patches for libnm and NMRefString
This is the first of a series of upcoming patches that will aim to rework (improve :) ) libnm.
At this point,
it just adds two utilities that are so far unused (but will be used).
also, it drops unused code from
NMSecretAgentOldthat still assumed there could be private D-Bus sockets.
NMRefString is something I wanted for a long time.
In the past, I did nm-ref-string, but that was NACK-ed. Also, it followed a different approach back then:
- it exposed strings as
const char *, instead of having a
- it does not supported interning, but only reference counting.
There is also
GRefString, which serves a similar purpose, but makes some design decisions differently.
While there are pros and cons for each options (including whether to have such a helper at all), I think this is the overall best solution. And I intend to use that.
The usecase will be when tracking D-Bus objects. Those objects have D-Bus interfaces (strings like
org.freedesktop.NetworkManager.Device.Wired), properties (strings like
"HwAddress"), and object paths (like
"/org/freedesktop/NetworkManager/Settings/22"). These strings are "arbitrary", in the sense that we cannot
g_intern_string() them, because the application would leak them without freeing them ever. We should deduplicate them and also be able to compare them with pointer equality. That's what