refactored strongswan manager

removed buggy request parsing code, use ClearSilvers CGI kit instead
fixed CHILD_SA listing in manager (needs better design)
using secure XML communication through unix sockets
removed images with questionable (non-GPL) license
This commit is contained in:
Martin Willi
2007-09-26 14:02:21 +00:00
parent a9522e1600
commit c295d0eb4b
41 changed files with 722 additions and 1219 deletions
+17 -24
View File
@@ -23,8 +23,6 @@
#include "auth_controller.h"
#include "../manager.h"
#include <template.h>
#include <library.h>
@@ -46,39 +44,34 @@ struct private_auth_controller_t {
manager_t *manager;
};
static void login(private_auth_controller_t *this,
request_t *request, response_t *response)
static void login(private_auth_controller_t *this, request_t *request)
{
template_t *t = template_create("templates/auth/login.cs");
t->set(t, "action", "check");
t->set(t, "title", "Login");
t->render(t, response);
t->destroy(t);
request->set(request, "action", "check");
request->set(request, "title", "Login");
request->render(request, "templates/auth/login.cs");
}
static void check(private_auth_controller_t *this,
request_t *request, response_t *response)
static void check(private_auth_controller_t *this, request_t *request)
{
char *username, *password;
username = request->get_post_data(request, "username");
password = request->get_post_data(request, "password");
username = request->get_query_data(request, "username");
password = request->get_query_data(request, "password");
if (username && password &&
this->manager->login(this->manager, username, password))
{
response->redirect(response, "status/ikesalist");
request->redirect(request, "status/ikesalist");
}
else
{
response->redirect(response, "auth/login");
request->redirect(request, "auth/login");
}
}
static void logout(private_auth_controller_t *this,
request_t *request, response_t *response)
static void logout(private_auth_controller_t *this, request_t *request)
{
this->manager->logout(this->manager);
response->redirect(response, "auth/login");
request->redirect(request, "auth/login");
}
/**
@@ -93,24 +86,24 @@ static char* get_name(private_auth_controller_t *this)
* Implementation of controller_t.handle
*/
static void handle(private_auth_controller_t *this,
request_t *request, response_t *response, char *action)
request_t *request, char *action)
{
if (action)
{
if (streq(action, "login"))
{
return login(this, request, response);
return login(this, request);
}
else if (streq(action, "check"))
{
return check(this, request, response);
return check(this, request);
}
else if (streq(action, "logout"))
{
return logout(this, request, response);
return logout(this, request);
}
}
response->redirect(response, "auth/login");
request->redirect(request, "auth/login");
}
/**
@@ -129,7 +122,7 @@ controller_t *auth_controller_create(context_t *context, void *param)
private_auth_controller_t *this = malloc_thing(private_auth_controller_t);
this->public.controller.get_name = (char*(*)(controller_t*))get_name;
this->public.controller.handle = (void(*)(controller_t*,request_t*,response_t*,char*,char*,char*,char*,char*))handle;
this->public.controller.handle = (void(*)(controller_t*,request_t*,char*,char*,char*,char*,char*))handle;
this->public.controller.destroy = (void(*)(controller_t*))destroy;
this->manager = (manager_t*)context;