From: Pasi Sjöholm <[email protected]>

Patch1: If timers are reset during __connman_resolver_redo_servers() 
they will not have their timers set again at
connman_resolver_append_lifetime() because each entry without a
timer is a not RA initialized nameserver/domain search list.
    
Resetting the timers also causes the entry_list to grow by one or
more entries when the next RA with RDNSS/DNSSL is received as
connman_resolver_append_lifetime() will add the entries as new
because no matches will be found during the check.

Eventually this would eat all the available memory. ;)

Patch2: This patch is pre-requirement for the Patch3.
__connman_ipconfig_newaddr() needs to return success / fail for
rtln.c:process_newaddr() so that we know if it's necessary
to run __connman_resolver_redo_servers()

Patch3: Every RA causes process_newaddr() to be called with 
autoconfigured addresses and therefore removing/re-appending the 
dnsproxy servers is bit too radical thing to do if the address is 
already known/configured.

Pasi Sjöholm (3):
  resolver: Do not reset timers when redoing nameservers
  ipconfig: modify __connman_ipconfig_newaddr() to return success/fail
  rtln: Redo nameserver(s) only when ipaddress is previously unknown

 src/connman.h  |  2 +-
 src/ipconfig.c | 11 ++++++-----
 src/resolver.c |  8 --------
 src/rtnl.c     | 23 ++++++++++++-----------
 4 files changed, 19 insertions(+), 25 deletions(-)

-- 
2.1.0

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to