• Phil Davis's avatar
    Fix console set interface IP address · 83d40310
    Phil Davis authored
    Problem as per forum https://forum.pfsense.org/index.php?topic=83651.0
    The problem comes whenever services_dhcpd_configure is called - the global $config gets reset from the actual current config, and any pending changes in the current process are lost.
    It was introduced by commit 86ce2df
    in which services_dhcpdv4_configure() does:
    
    require_once('pkg-utils.inc')
    
    and pkg-utils.inc does various stuff like:
    
    if(file_exists("/cf/conf/use_xmlreader"))
    require_once("xmlreader.inc");
    else
    require_once("xmlparse.inc");
    
    which seems to cause a reset of the $config variable, thus losing the pending changes the user has entered at the console.
    
    The top-level code in rc.initial.setlanip really does not need to (and should not) implement any changes along the way - it should collect all the answers from the user, then write_config and then make all the necessary calls to routines to implement the changes on the running system. This fixes it - defer any calls to services_dhcpd_configure() until after all questions are answered and write_config has happened.
    83d40310
rc.initial.setlanip 16.6 KB