From 8f00317567dab4c825a0eca76a9cae7951edd11f Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Tue, 6 Dec 2011 14:15:52 +0100 Subject: Clean up the way connections are handled. --- server/src/admin_connection.cc | 110 ++++++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 56 deletions(-) (limited to 'server/src/admin_connection.cc') diff --git a/server/src/admin_connection.cc b/server/src/admin_connection.cc index fac52a1..5a15a34 100644 --- a/server/src/admin_connection.cc +++ b/server/src/admin_connection.cc @@ -90,70 +90,68 @@ AdminConnection::AdminConnection(Environment &e, headers_t a, std::string u) AdminConnection::~AdminConnection() {} -bool AdminConnection::handle(const char *data, size_t size) +bool AdminConnection::data(const char *, size_t) { return true; } + +bool AdminConnection::handle() { status = 200; // OK - if(data == NULL && size == 0) { - DEBUG(admin, "URI: %s\n", uri.c_str()); - - if(uri == "/") { - reply = admin_header(uri) + - "Command list:\n" - "/sessionunlock?id=[ID] unlock session with [ID] as its session id.\n" - "/listactivesessions lists all active sessions on the server.\n" - "/flushsessions flushes all active sessions to disc.\n" - "/export?template=[TEMPLATE] export template with name [TEMPLATE] to a\n csf file (comma seperated file, that can be opened in OOCalc or Excel).\n" - + admin_rc("footer"); - return true; - } - - if(uri == "/sessionunlock" && args.find("id") != args.end()) { - reply = admin_header(uri) + admin_sessionunlock(env, args["id"]) - + admin_rc("footer"); - return true; - } + DEBUG(admin, "URI: %s\n", uri.c_str()); - if(uri == "/listactivesessions") { - reply = admin_header(uri) + admin_listactivesessions(env) - + admin_rc("footer"); - return true; - } - - if(uri == "/flushsessions") { - reply = admin_header(uri) + admin_flush(env) + admin_rc("footer"); - return true; - } - - if(uri == "/export" && args.find("template") != args.end()) { - time_t from = 0; - if(args.find("from") != args.end()) from = atoi(args["from"].c_str()); - - time_t to = time(NULL); - if(args.find("to") != args.end()) to = atoi(args["to"].c_str()); - bool ok; - std::string res = admin_export(env, args["template"], &ok, from, to); - if(!ok) reply = admin_header(uri) + res + admin_rc("footer"); - else { - reply = res; - hdrs["Content-Type"] = "text/csv; charset=UTF-8"; - hdrs["Content-Disposition"] = "attachment; filename=\""+args["template"]+".csv\""; - } - return true; - } - - if(uri == "/favicon.ico") { - hdrs["Content-Type"] = "image/ico"; - reply = admin_rc("favicon"); - return true; - } - - reply = admin_header(uri) + - "'" + uri + "' not recognised as a valid command." + if(uri == "/") { + reply = admin_header(uri) + + "Command list:\n" + "/sessionunlock?id=[ID] unlock session with [ID] as its session id.\n" + "/listactivesessions lists all active sessions on the server.\n" + "/flushsessions flushes all active sessions to disc.\n" + "/export?template=[TEMPLATE] export template with name [TEMPLATE] to a\n csf file (comma seperated file, that can be opened in OOCalc or Excel).\n" + admin_rc("footer"); return true; } + + if(uri == "/sessionunlock" && args.find("id") != args.end()) { + reply = admin_header(uri) + admin_sessionunlock(env, args["id"]) + + admin_rc("footer"); + return true; + } + + if(uri == "/listactivesessions") { + reply = admin_header(uri) + admin_listactivesessions(env) + + admin_rc("footer"); + return true; + } + + if(uri == "/flushsessions") { + reply = admin_header(uri) + admin_flush(env) + admin_rc("footer"); + return true; + } + + if(uri == "/export" && args.find("template") != args.end()) { + time_t from = 0; + if(args.find("from") != args.end()) from = atoi(args["from"].c_str()); + + time_t to = time(NULL); + if(args.find("to") != args.end()) to = atoi(args["to"].c_str()); + bool ok; + std::string res = admin_export(env, args["template"], &ok, from, to); + if(!ok) reply = admin_header(uri) + res + admin_rc("footer"); + else { + reply = res; + hdrs["Content-Type"] = "text/csv; charset=UTF-8"; + hdrs["Content-Disposition"] = "attachment; filename=\""+args["template"]+".csv\""; + } + return true; + } + if(uri == "/favicon.ico") { + hdrs["Content-Type"] = "image/ico"; + reply = admin_rc("favicon"); + return true; + } + + reply = admin_header(uri) + + "'" + uri + "' not recognised as a valid command." + + admin_rc("footer"); return true; } -- cgit v1.2.3