X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-manager.c;h=fed9a7797359020bb2c30d62289a7a494f257637;hp=ab504d0a758f73033255b106a22f4dbb4103a54c;hb=e1c959948c0e31d6997bcdfbabfbd077784b2bae;hpb=36f822c4bd077f9121757e24b6516e5c7ada63b5 diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index ab504d0a7..fed9a7797 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -282,7 +282,7 @@ static int manager_network_monitor_listen(Manager *m) { assert(m); - r = sd_network_monitor_new(NULL, &m->network_monitor); + r = sd_network_monitor_new(&m->network_monitor, NULL); if (r < 0) return r; @@ -878,3 +878,23 @@ void manager_next_dns_server(Manager *m) { m->current_dns_server = m->dns_servers; } + +uint32_t manager_find_mtu(Manager *m) { + uint32_t mtu = 0; + Link *l; + Iterator i; + + /* If we don't know on which link a DNS packet would be + * delivered, let's find the largest MTU that works on all + * interfaces we know of */ + + HASHMAP_FOREACH(l, m->links, i) { + if (l->mtu <= 0) + continue; + + if (mtu <= 0 || l->mtu < mtu) + mtu = l->mtu; + } + + return mtu; +}