18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * WPA Supplicant / Configuration backend: empty starting point 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This file implements dummy example of a configuration backend. None of the 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * functions are actually implemented so this can be used as a simple 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * compilation test or a starting point for a new configuration backend. 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "includes.h" 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "common.h" 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "config.h" 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "base64.h" 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2064f47c5c24428834677459e048420f86e3514c20Dmitry Shmidtstruct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp) 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{ 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wpa_config *config; 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2464f47c5c24428834677459e048420f86e3514c20Dmitry Shmidt if (name == NULL) 2564f47c5c24428834677459e048420f86e3514c20Dmitry Shmidt return NULL; 2664f47c5c24428834677459e048420f86e3514c20Dmitry Shmidt if (cfgp) 2764f47c5c24428834677459e048420f86e3514c20Dmitry Shmidt config = cfgp; 2864f47c5c24428834677459e048420f86e3514c20Dmitry Shmidt else 2964f47c5c24428834677459e048420f86e3514c20Dmitry Shmidt config = wpa_config_alloc_empty(NULL, NULL); 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt if (config == NULL) 318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt return NULL; 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* TODO: fill in configuration data */ 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt return config; 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt} 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint wpa_config_write(const char *name, struct wpa_config *config) 388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{ 398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wpa_ssid *ssid; 408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wpa_config_blob *blob; 418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt wpa_printf(MSG_DEBUG, "Writing configuration file '%s'", name); 438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* TODO: write global config parameters */ 458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt for (ssid = config->ssid; ssid; ssid = ssid->next) { 488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* TODO: write networks */ 498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt } 508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt for (blob = config->blobs; blob; blob = blob->next) { 528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /* TODO: write blobs */ 538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt } 548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt return 0; 568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt} 57