Skip to content
  • Thomas Haller's avatar
    dns: refactor update() in NMDnsSystemdResolved to use a hash table · 4be4a3c2
    Thomas Haller authored
    Use a GHashTable instead of a GArray to construct the list of
    @interfaces. Also, use NMCListElem instead of GList. With this,
    the runtime is O(n*log(n)) instead of O(n^2).
    
    I belive, we should take care that all our code has a reasonable
    runtime complexity, even in common use-cases the number of elements
    is small. This is not about performace, because likely we expect few
    entries anyway, and the direct GArray implementation is likely faster
    in those cases. It's about using the data structure that best suits the
    access pattern.
    
    The log(n) part comes from sorting the keys. I also believe we should
    always aim for a stable behavior. When sending the D-Bus request to
    resolved, the order of elements should be in ~some~ defined order.
    4be4a3c2