#include #include #include #include #include #include void proceed_cookies(struct magi_cookie_list * cookies, struct magi_response * response) { magi_response_content(response, "

Cookies:

"); while (cookies) { magi_response_content(response, "Cookie with name ["); magi_response_content(response, cookies->item.name); if (cookies->item.data) { magi_response_content(response, "] is ["); magi_response_content(response, cookies->item.data); } if (cookies->item.domain) { magi_response_content(response, "] for domain ["); magi_response_content(response, cookies->item.domain); } if (cookies->item.port) { magi_response_content(response, "] for port ["); magi_response_content(response, cookies->item.port); } if (cookies->item.path) { magi_response_content(response, "] for path ["); magi_response_content(response, cookies->item.path); } magi_response_content(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, "
"); } 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, "]
"); params = params->next; } magi_response_content(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); if (req->uri) { magi_response_content(res, "] with URL ["); magi_response_content(res, req->uri); } if (req->server_name) { magi_response_content(res, "] for server ["); magi_response_content(res, req->server_name); } if (req->server_port) { magi_response_content(res, "] on port ["); magi_response_content(res, req->server_port); } if (req->server_protocol) { magi_response_content(res, "] with protocol ["); magi_response_content(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_content(res, "]
"); } void response_request(struct magi_request * req, struct magi_response * res) { magi_response_content_type(res, magi_xhtml); magi_response_content( res, "" "" "Echo" ""); process_meta(req, res); proceed_cookies(req->cookies, res); proceed_fields(req->fields, res); proceed_params(req->http_params, res); magi_response_content(res, ""); } int main(int argc, char const * argv[]) { struct magi_request request; if (magi_cgi(&request, 0, 0, 0)) { struct magi_response response; response_request(&request, &response); magi_cgi_response(&response); magi_response_destroy(); } else { magi_cgi_error(request.error); } magi_request_destroy(&request); return 0; }