config.c File Reference

WPA Supplicant / Configuration parser and common functions. More...

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "common.h"
#include "wpa.h"
#include "sha1.h"
#include "wpa_supplicant.h"
#include "eapol_sm.h"
#include "eap.h"
#include "l2_packet.h"
#include "config.h"

Include dependency graph for config.c:

Go to the source code of this file.

Defines

#define OFFSET(v)   ((void *) &((struct wpa_ssid *) 0)->v)
#define STR(f)
#define STR_LEN(f)   STR(f), .param2 = OFFSET(f ## _len)
#define STR_RANGE(f, min, max)
#define INT(f)
#define INT_RANGE(f, min, max)
#define FUNC(f)
#define NUM_SSID_FIELDS   (sizeof(ssid_fields) / sizeof(ssid_fields[0]))

Functions

int wpa_config_add_prio_network (struct wpa_config *config, struct wpa_ssid *ssid)
 Add a network to priority lists.
void wpa_config_free_ssid (struct wpa_ssid *ssid)
 Free network/ssid configuration data.
void wpa_config_free (struct wpa_config *config)
 Free configuration data.
int wpa_config_allowed_eap_method (struct wpa_ssid *ssid, int method)
 Check whether EAP method is allowed.
wpa_ssidwpa_config_get_network (struct wpa_config *config, int id)
 Get configured network based on id.
wpa_ssidwpa_config_add_network (struct wpa_config *config)
 Add a new network with empty configuration.
int wpa_config_remove_network (struct wpa_config *config, int id)
 Remove a configured network based on id.
void wpa_config_set_network_defaults (struct wpa_ssid *ssid)
 Set network default values.
int wpa_config_set (struct wpa_ssid *ssid, const char *var, const char *value, int line)
 Set a variable in network configuration.
char * wpa_config_get (struct wpa_ssid *ssid, const char *var)
 Get a variable in network configuration.
void wpa_config_update_psk (struct wpa_ssid *ssid)
 Update WPA PSK based on passphrase and SSID.
const struct wpa_config_blobwpa_config_get_blob (struct wpa_config *config, const char *name)
 Get a named configuration blob.
void wpa_config_set_blob (struct wpa_config *config, struct wpa_config_blob *blob)
 Set or add a named configuration blob.
void wpa_config_free_blob (struct wpa_config_blob *blob)
 Free blob data.
int wpa_config_remove_blob (struct wpa_config *config, const char *name)
 Remove a named configuration blob.
wpa_configwpa_config_alloc_empty (const char *ctrl_interface, const char *driver_param)
 Allocate an empty configuration.


Detailed Description

WPA Supplicant / Configuration parser and common functions.

Copyright
Copyright (c) 2003-2005, Jouni Malinen <[email protected]>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

Alternatively, this software may be distributed under the terms of BSD license.

See README and COPYING for more details.

Definition in file config.c.


Define Documentation

#define FUNC  ) 
 

Value:

.name = #f, .parser = wpa_config_parse_ ## f, \
                .writer = wpa_config_write_ ## f

Definition at line 985 of file config.c.

#define INT  ) 
 

Value:

.name = #f, .parser = wpa_config_parse_int, \
        .writer = wpa_config_write_int, \
        .param1 = OFFSET(f), .param2 = (void *) 0

Definition at line 975 of file config.c.

#define INT_RANGE f,
min,
max   ) 
 

Value:

INT(f), .param3 = (void *) (min), \
        .param4 = (void *) (max)

Definition at line 980 of file config.c.

#define STR  ) 
 

Value:

.name = #f, .parser = wpa_config_parse_str, \
        .writer = wpa_config_write_str, .param1 = OFFSET(f)

Definition at line 960 of file config.c.

#define STR_RANGE f,
min,
max   ) 
 

Value:

STR_LEN(f), .param3 = (void *) (min), \
        .param4 = (void *) (max)

Definition at line 970 of file config.c.


Function Documentation

struct wpa_ssid* wpa_config_add_network struct wpa_config config  ) 
 

Add a new network with empty configuration.

Parameters:
config Configuration data from wpa_config_read()
Returns:
The new network configuration or NULL if operation failed

Definition at line 1296 of file config.c.

int wpa_config_add_prio_network struct wpa_config config,
struct wpa_ssid ssid
 

Add a network to priority lists.

Parameters:
config Configuration data from wpa_config_read()
ssid Pointer to the network configuration to be added to the list
Returns:
0 on success, -1 on failure
This function is used to add a network block to the priority list of networks. This must be called for each network when reading in the full configuration. In addition, this can be used indirectly when updating priorities by calling wpa_config_update_prio_list().

Definition at line 1086 of file config.c.

struct wpa_config* wpa_config_alloc_empty const char *  ctrl_interface,
const char *  driver_param
 

Allocate an empty configuration.

Parameters:
ctrl_interface Control interface parameters, e.g., path to UNIX domain socket
driver_param Driver parameters
Returns:
Pointer to allocated configuration data or NULL on failure

Definition at line 1563 of file config.c.

int wpa_config_allowed_eap_method struct wpa_ssid ssid,
int  method
 

Check whether EAP method is allowed.

Parameters:
ssid Pointer to configuration data
method EAP type
Returns:
1 = allowed EAP method, 0 = not allowed

Definition at line 1251 of file config.c.

void wpa_config_free struct wpa_config config  ) 
 

Free configuration data.

Parameters:
config Configuration data from wpa_config_read()
This function frees all resources allocated for the configuration data by wpa_config_read().

Definition at line 1215 of file config.c.

Here is the call graph for this function:

void wpa_config_free_blob struct wpa_config_blob blob  ) 
 

Free blob data.

Parameters:
blob Pointer to blob to be freed

Definition at line 1517 of file config.c.

void wpa_config_free_ssid struct wpa_ssid ssid  ) 
 

Free network/ssid configuration data.

Parameters:
ssid Configuration data for the network
This function frees all resources allocated for the network configuration data.

Definition at line 1167 of file config.c.

char* wpa_config_get struct wpa_ssid ssid,
const char *  var
 

Get a variable in network configuration.

Parameters:
ssid Pointer to network configuration data
var Variable name, e.g., "ssid"
Returns:
Value of the variable or NULL on failure
This function can be used to get network configuration variables. The returned value is a copy of the configuration variable in text format, i.e,. the same format that the text-based configuration file and wpa_config_set() are using for the value. The caller is responsible for freeing the returned value.

Definition at line 1437 of file config.c.

const struct wpa_config_blob* wpa_config_get_blob struct wpa_config config,
const char *  name
 

Get a named configuration blob.

Parameters:
config Configuration data from wpa_config_read()
name Name of the blob
Returns:
Pointer to blob data or NULL if not found

Definition at line 1480 of file config.c.

struct wpa_ssid* wpa_config_get_network struct wpa_config config,
int  id
 

Get configured network based on id.

Parameters:
config Configuration data from wpa_config_read()
id Unique network id to search for
Returns:
Network configuration or NULL if not found

Definition at line 1275 of file config.c.

int wpa_config_remove_blob struct wpa_config config,
const char *  name
 

Remove a named configuration blob.

Parameters:
config Configuration data from wpa_config_read()
name Name of the blob to remove
Returns:
0 if blob was removed or -1 if blob was not found

Definition at line 1534 of file config.c.

Here is the call graph for this function:

int wpa_config_remove_network struct wpa_config config,
int  id
 

Remove a configured network based on id.

Parameters:
config Configuration data from wpa_config_read()
id Unique network id to search for
Returns:
0 on success, or -1 if the network was not found

Definition at line 1334 of file config.c.

Here is the call graph for this function:

int wpa_config_set struct wpa_ssid ssid,
const char *  var,
const char *  value,
int  line
 

Set a variable in network configuration.

Parameters:
ssid Pointer to network configuration data
var Variable name, e.g., "ssid"
value Variable value
line Line number in configuration file or 0 if not used
Returns:
0 on success, -1 on failure
This function can be used to set network configuration variables based on both the configuration file and management interface input. The value parameter must be in the same format as the text-based configuration file is using. For example, strings are using double quotation marks.

Definition at line 1390 of file config.c.

Here is the call graph for this function:

void wpa_config_set_blob struct wpa_config config,
struct wpa_config_blob blob
 

Set or add a named configuration blob.

Parameters:
config Configuration data from wpa_config_read()
blob New value for the blob
Adds a new configuration blob or replaces the current value of an existing blob.

Definition at line 1503 of file config.c.

Here is the call graph for this function:

void wpa_config_set_network_defaults struct wpa_ssid ssid  ) 
 

Set network default values.

Parameters:
ssid Pointer to network configuration data

Definition at line 1365 of file config.c.

void wpa_config_update_psk struct wpa_ssid ssid  ) 
 

Update WPA PSK based on passphrase and SSID.

Parameters:
ssid Pointer to network configuration data
This function must be called to update WPA PSK when either SSID or the passphrase has changed for the network configuration.

Definition at line 1462 of file config.c.

Here is the call graph for this function:


Generated on Sat May 6 21:14:27 2006 for wpa_supplicant by  doxygen 1.4.2