From 88081d9a4376b1ee4feed3bc843c46096e087b1e Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Fri, 22 Nov 2019 18:55:54 +0300 Subject: . --- examples/echo.c | 99 +++++++++++++++++++++++++-------------------------------- 1 file changed, 43 insertions(+), 56 deletions(-) (limited to 'examples/echo.c') diff --git a/examples/echo.c b/examples/echo.c index 16e9d56..95219fc 100644 --- a/examples/echo.c +++ b/examples/echo.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -9,94 +10,75 @@ void proceed_cookies(struct magi_cookie_list * cookies, struct magi_response * response) { - magi_response_content(response, "

Cookies:

"); + magi_response_add(response, "

Cookies:

"); while (cookies) { - magi_response_content(response, "Cookie with name ["); - magi_response_content(response, cookies->item.name); + magi_response_add(response, "Cookie with name ["); + magi_response_add(response, cookies->item.name); if (cookies->item.data) { - magi_response_content(response, "] is ["); - magi_response_content(response, cookies->item.data); + magi_response_add(response, "] is ["); + magi_response_add(response, cookies->item.data); } if (cookies->item.domain) { - magi_response_content(response, "] for domain ["); - magi_response_content(response, cookies->item.domain); + magi_response_add(response, "] for domain ["); + magi_response_add(response, cookies->item.domain); } if (cookies->item.port) { - magi_response_content(response, "] for port ["); - magi_response_content(response, cookies->item.port); + magi_response_add(response, "] for port ["); + magi_response_add(response, cookies->item.port); } if (cookies->item.path) { - magi_response_content(response, "] for path ["); - magi_response_content(response, cookies->item.path); + magi_response_add(response, "] for path ["); + magi_response_add(response, cookies->item.path); } - magi_response_content(response, "]
"); + magi_response_add(response, "]
"); cookies = cookies->next; } - magi_response_content(response, "
"); -} - -void proceed_fields(struct magi_field_list * fields, - struct magi_response * response) -{ - magi_response_content(response, "

Feilds:

"); - while (fields) { - magi_response_content(response, "Feild ["); - magi_response_content(response, fields->item.name); - magi_response_content(response, "] = ["); - magi_response_content(response, fields->item.data); - magi_response_content(response, "]
"); - fields = fields->next; - } - magi_response_content(response, "
"); + magi_response_add(response, "
"); } void proceed_params(struct magi_param_list * params, struct magi_response * response) { - magi_response_content(response, "

HTTP Parameters:

"); while (params) { - magi_response_content(response, "Param ["); - magi_response_content(response, params->item.name); - magi_response_content(response, "] is ["); - magi_response_content(response, params->item.data); - magi_response_content(response, "]
"); + magi_response_add_format(response, "[%s] is [%s]
", + params->item.name, params->item.data); params = params->next; } - magi_response_content(response, "
"); + magi_response_add(response, "
"); } void process_meta(struct magi_request * req, struct magi_response * res) { - magi_response_content(res, "

Echo CGI Script

" - "I was called with method ["); - magi_response_content(res, req->method); + magi_response_add(res, + "

Echo CGI Script

I was called with method [%s", + req->method); if (req->uri) { - magi_response_content(res, "] with URL ["); - magi_response_content(res, req->uri); + magi_response_add(res, "] with URL ["); + magi_response_add(res, req->uri); } if (req->server_name) { - magi_response_content(res, "] for server ["); - magi_response_content(res, req->server_name); + magi_response_add(res, "] for server ["); + magi_response_add(res, req->server_name); } if (req->server_port) { - magi_response_content(res, "] on port ["); - magi_response_content(res, req->server_port); + magi_response_add(res, "] on port ["); + magi_response_add(res, req->server_port); } if (req->server_protocol) { - magi_response_content(res, "] with protocol ["); - magi_response_content(res, req->server_protocol); + magi_response_add(res, "] with protocol ["); + magi_response_add(res, req->server_protocol); } if (req->server_software) { - magi_response_content(res, "] and I am running on software ["); - magi_response_content(res, req->server_software); + magi_response_add(res, "] and I am running on software ["); + magi_response_add(res, req->server_software); } - magi_response_content(res, "]
"); + magi_response_add(res, "]
"); } void response_request(struct magi_request * req, struct magi_response * res) { magi_response_content_type(res, magi_xhtml); - magi_response_content( + magi_response_add( res, "" "" @@ -104,21 +86,26 @@ void response_request(struct magi_request * req, struct magi_response * res) ""); process_meta(req, res); proceed_cookies(req->cookies, res); - proceed_fields(req->fields, res); + magi_response_add(res, "

Parameters:

"); + proceed_params(req->params, res); + magi_response_add(res, "

URL Parameters:

"); + proceed_params(req->url_params, res); + magi_response_add(res, "

HTTP Parameters:

"); proceed_params(req->http_params, res); - magi_response_content(res, ""); + magi_response_add(res, ""); } int main(int argc, char const * argv[]) { struct magi_request request; - if (magi_cgi(&request, 0, 0, 0)) { + magi_request_setup(&request); + if (magi_request_cgi(&request)) { struct magi_response response; response_request(&request, &response); - magi_cgi_response(&response); - magi_response_destroy(); + magi_response_cgi(&response); + magi_response_destroy(&response); } else { - magi_cgi_error(request.error); + magi_error_cgi(request.error); } magi_request_destroy(&request); return 0; -- cgit v1.2.3