From 088da5ce241680069c8881de30f29bed5639a065 Mon Sep 17 00:00:00 2001 From: m0gg Date: Sat, 2 Dec 2006 21:50:47 +0000 Subject: Added XML preamble --- nanohttp/nanohttp-admin.c | 81 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 8 deletions(-) (limited to 'nanohttp/nanohttp-admin.c') diff --git a/nanohttp/nanohttp-admin.c b/nanohttp/nanohttp-admin.c index d5d5939..29462a0 100644 --- a/nanohttp/nanohttp-admin.c +++ b/nanohttp/nanohttp-admin.c @@ -1,5 +1,5 @@ /****************************************************************** -* $Id: nanohttp-admin.c,v 1.6 2006/11/25 16:35:57 m0gg Exp $ +* $Id: nanohttp-admin.c,v 1.7 2006/12/02 21:50:47 m0gg Exp $ * * CSOAP Project: A SOAP client/server library in C * Copyright (C) 2003 Ferhat Ayaz @@ -66,7 +66,6 @@ _httpd_admin_send_title(httpd_conn_t *conn, const char *title) return; } - static void _httpd_admin_list_services(httpd_conn_t *conn) { @@ -78,7 +77,16 @@ _httpd_admin_list_services(httpd_conn_t *conn) http_output_stream_write_string(conn->out, ""); @@ -88,7 +96,6 @@ _httpd_admin_list_services(httpd_conn_t *conn) return; } - static void _httpd_admin_list_statistics(httpd_conn_t *conn, const char *service_name) { @@ -100,8 +107,9 @@ _httpd_admin_list_statistics(httpd_conn_t *conn, const char *service_name) if (!(service = httpd_find_service(service_name))) { - http_output_stream_write_string(conn->out, "service not found!"); - http_output_stream_write_string(conn->out, ""); + http_output_stream_write_string(conn->out, + "

Service not found!

" + ""); return; } @@ -126,6 +134,57 @@ _httpd_admin_list_statistics(httpd_conn_t *conn, const char *service_name) return; } +static void +_httpd_admin_enable_service(httpd_conn_t *conn, const char *service_name) +{ + hservice_t *service; + char buffer[1024]; + + sprintf(buffer, "Enabling service %s", service_name); + _httpd_admin_send_title(conn, buffer); + + if (!(service = httpd_find_service(service_name))) + { + http_output_stream_write_string(conn->out, + "

Service not found!

" + ""); + return; + } + + httpd_enable_service(service); + + http_output_stream_write_string(conn->out, + "

Service enabled

" + ""); + + return; +} + +static void +_httpd_admin_disable_service(httpd_conn_t *conn, const char *service_name) +{ + hservice_t *service; + char buffer[1024]; + + sprintf(buffer, "Disabling service %s", service_name); + _httpd_admin_send_title(conn, buffer); + + if (!(service = httpd_find_service(service_name))) + { + http_output_stream_write_string(conn->out, + "

service not found!

" + ""); + return; + } + + httpd_disable_service(service); + + http_output_stream_write_string(conn->out, + "

Service disabled

" + ""); + + return; +} static void _httpd_admin_handle_get(httpd_conn_t * conn, struct hrequest_t *req) @@ -140,6 +199,14 @@ _httpd_admin_handle_get(httpd_conn_t * conn, struct hrequest_t *req) { _httpd_admin_list_statistics(conn, param); } + else if ((param = hpairnode_get_ignore_case(req->query, NHTTPD_ADMIN_QUERY_ENABLE_SERVICE))) + { + _httpd_admin_enable_service(conn, param); + } + else if ((param = hpairnode_get_ignore_case(req->query, NHTTPD_ADMIN_QUERY_DISABLE_SERVICE))) + { + _httpd_admin_disable_service(conn, param); + } else { _httpd_admin_send_title(conn, "Welcome to the admin site"); @@ -155,7 +222,6 @@ _httpd_admin_handle_get(httpd_conn_t * conn, struct hrequest_t *req) return; } - static void _httpd_admin_entry(httpd_conn_t * conn, struct hrequest_t *req) { @@ -180,7 +246,6 @@ _httpd_admin_entry(httpd_conn_t * conn, struct hrequest_t *req) return; } - herror_t httpd_admin_init_args(int argc, char **argv) { -- cgit v1.1-32-gdbae