[settings] Explicitly separate the concept of a completed fetched setting

The fetch_setting() family of functions may currently modify the
definition of the specified setting (e.g. to add missing type
information).  Clean up this interface by requiring callers to provide
an explicit buffer to contain the completed definition of the fetched
setting, if required.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2013-12-03 16:48:56 +00:00
parent a2638a8edd
commit 22001cb206
37 changed files with 620 additions and 573 deletions

View File

@@ -128,8 +128,8 @@ static int clientcert_apply_settings ( void ) {
/* Fetch new client certificate, if any */
free ( cert );
if ( ( len = fetch_setting_copy ( NULL, &cert_setting,
&cert ) ) >= 0 ) {
if ( ( len = fetch_raw_setting_copy ( NULL, &cert_setting,
&cert ) ) >= 0 ) {
client_certificate.data = cert;
client_certificate.len = len;
}
@@ -140,8 +140,8 @@ static int clientcert_apply_settings ( void ) {
/* Fetch new client private key, if any */
free ( key );
if ( ( len = fetch_setting_copy ( NULL, &privkey_setting,
&key ) ) >= 0 ) {
if ( ( len = fetch_raw_setting_copy ( NULL, &privkey_setting,
&key ) ) >= 0 ) {
client_private_key.data = key;
client_private_key.len = len;
}

View File

@@ -100,8 +100,8 @@ static void rootcert_init ( void ) {
/* Fetch copy of "trust" setting, if it exists. This
* memory will never be freed.
*/
if ( ( len = fetch_setting_copy ( NULL, &trust_setting,
&external ) ) >= 0 ) {
if ( ( len = fetch_raw_setting_copy ( NULL, &trust_setting,
&external ) ) >= 0 ) {
root_certificates.fingerprints = external;
root_certificates.count = ( len / FINGERPRINT_LEN );
}