mirror of https://github.com/ipxe/ipxe.git
[settings] Always process all settings applicators
Settings applicators are entirely independent, and there is no reason why a failure in one applicator should prevent other applicators from being processed. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/594/head
parent
11e17991d0
commit
674963e2a6
|
|
@ -411,9 +411,8 @@ struct settings * find_settings ( const char *name ) {
|
||||||
/**
|
/**
|
||||||
* Apply all settings
|
* Apply all settings
|
||||||
*
|
*
|
||||||
* @ret rc Return status code
|
|
||||||
*/
|
*/
|
||||||
static int apply_settings ( void ) {
|
static void apply_settings ( void ) {
|
||||||
struct settings_applicator *applicator;
|
struct settings_applicator *applicator;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
|
@ -422,11 +421,9 @@ static int apply_settings ( void ) {
|
||||||
if ( ( rc = applicator->apply() ) != 0 ) {
|
if ( ( rc = applicator->apply() ) != 0 ) {
|
||||||
DBG ( "Could not apply settings using applicator "
|
DBG ( "Could not apply settings using applicator "
|
||||||
"%p: %s\n", applicator, strerror ( rc ) );
|
"%p: %s\n", applicator, strerror ( rc ) );
|
||||||
return rc;
|
/* Continue to apply remaining settings */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -644,8 +641,7 @@ int store_setting ( struct settings *settings, const struct setting *setting,
|
||||||
*/
|
*/
|
||||||
for ( ; settings ; settings = settings->parent ) {
|
for ( ; settings ; settings = settings->parent ) {
|
||||||
if ( settings == &settings_root ) {
|
if ( settings == &settings_root ) {
|
||||||
if ( ( rc = apply_settings() ) != 0 )
|
apply_settings();
|
||||||
return rc;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue