Added clear_setting()
This commit is contained in:
parent
0a26cd2933
commit
007ca97f25
@ -115,7 +115,8 @@ find_or_build_config_setting ( const char *name,
|
|||||||
return setting;
|
return setting;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Show value of setting
|
/**
|
||||||
|
* Show value of setting
|
||||||
*
|
*
|
||||||
* @v context Configuration context
|
* @v context Configuration context
|
||||||
* @v name Configuration setting name
|
* @v name Configuration setting name
|
||||||
@ -134,7 +135,8 @@ int show_setting ( struct config_context *context, const char *name,
|
|||||||
return setting->type->show ( context, setting, buf, len );
|
return setting->type->show ( context, setting, buf, len );
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set value of setting
|
/**
|
||||||
|
* Set value of setting
|
||||||
*
|
*
|
||||||
* @v context Configuration context
|
* @v context Configuration context
|
||||||
* @v name Configuration setting name
|
* @v name Configuration setting name
|
||||||
@ -152,6 +154,27 @@ int set_setting ( struct config_context *context, const char *name,
|
|||||||
return setting->type->set ( context, setting, value );
|
return setting->type->set ( context, setting, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear setting
|
||||||
|
*
|
||||||
|
* @v context Configuration context
|
||||||
|
* @v name Configuration setting name
|
||||||
|
* @ret rc Return status code
|
||||||
|
*/
|
||||||
|
int clear_setting ( struct config_context *context, const char *name ) {
|
||||||
|
struct config_setting *setting;
|
||||||
|
struct config_setting tmp_setting;
|
||||||
|
|
||||||
|
setting = find_or_build_config_setting ( name, &tmp_setting );
|
||||||
|
if ( ! setting )
|
||||||
|
return -ENOENT;
|
||||||
|
|
||||||
|
/* All types of settings get cleared the same way */
|
||||||
|
delete_dhcp_option ( context->options, setting->tag );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show value of string setting
|
* Show value of string setting
|
||||||
*
|
*
|
||||||
|
@ -102,5 +102,6 @@ extern int show_setting ( struct config_context *context, const char *name,
|
|||||||
char *buf, size_t len );
|
char *buf, size_t len );
|
||||||
extern int set_setting ( struct config_context *context, const char *name,
|
extern int set_setting ( struct config_context *context, const char *name,
|
||||||
const char *value );
|
const char *value );
|
||||||
|
extern int clear_setting ( struct config_context *context, const char *name );
|
||||||
|
|
||||||
#endif /* _GPXE_SETTINGS_H */
|
#endif /* _GPXE_SETTINGS_H */
|
||||||
|
Reference in New Issue
Block a user