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