Interworking: Allow cred blocks not to be saved to a file

The new cred block parameter 'temporary' can be used to indicate that a
cred block is not to be saved to wpa_supplicant configuration file
(e.g., "SET_CRED 0 temporary 1"). This is similar to the concept of
temporary network blocks and allows cred blocks to be managed outside
the wpa_supplicant config file when other parameters are still saved to
the file written by wpa_supplicant.

Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2013-12-30 15:43:55 +02:00
parent 0fab9ce67a
commit 03ed332407
5 changed files with 18 additions and 0 deletions

View file

@ -109,6 +109,8 @@ Credentials can be pre-configured for automatic network selection:
#
# credential fields:
#
# temporary: Whether this credential is temporary and not to be saved
#
# priority: Priority group
# By default, all networks and credentials get the same priority group
# (0). This field can be used to give higher priority for credentials
@ -269,6 +271,8 @@ OK
OK
> set_cred 0 priority 1
OK
> set_cred 0 temporary 1
OK
Add a SIM credential using a simulated SIM/USIM card for testing:

View file

@ -2393,6 +2393,11 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var,
char *val;
size_t len;
if (os_strcmp(var, "temporary") == 0) {
cred->temporary = atoi(value);
return 0;
}
if (os_strcmp(var, "priority") == 0) {
cred->priority = atoi(value);
return 0;

View file

@ -51,6 +51,11 @@ struct wpa_cred {
*/
int id;
/**
* temporary - Whether this credential is temporary and not to be saved
*/
int temporary;
/**
* priority - Priority group
*

View file

@ -1110,6 +1110,8 @@ int wpa_config_write(const char *name, struct wpa_config *config)
wpa_config_write_global(f, config);
for (cred = config->cred; cred; cred = cred->next) {
if (cred->temporary)
continue;
fprintf(f, "\ncred={\n");
wpa_config_write_cred(f, cred);
fprintf(f, "}\n");

View file

@ -342,6 +342,8 @@ fast_reauth=1
#
# credential fields:
#
# temporary: Whether this credential is temporary and not to be saved
#
# priority: Priority group
# By default, all networks and credentials get the same priority group
# (0). This field can be used to give higher priority for credentials