#include void list_cookies(magi_request *r) { magi_cookies *current = r->cookies; for (current = r->cookies; current; current = current->next) { magi_cookie *c = ¤t->item; magi_response(r, "Cookie with name ["); magi_response(r, c->name); if (c->data) { magi_response(r, "] is ["); magi_response(r, c->data); } if (c->domain) { magi_response(r, "] for domain ["); magi_response(r, c->domain); } if (c->path) { magi_response(r, "] for path ["); magi_response(r, c->path); } magi_response(r, "]
"); } } void list_params(magi_request *r, magi_params *current) { for (; current; current = current->next) { magi_param *p = ¤t->item; magi_response(r, "["); magi_response(r, p->name); magi_response(r, "] is ["); magi_response(r, p->data); magi_response(r, "]
"); } } void list_files(magi_request *r) { magi_files *current; for (current = r->files; current; current = current->next) { magi_file *f = ¤t->item; magi_response(r, "["); magi_response(r, f->field); magi_response(r, "] was ["); magi_response(r, f->filename); magi_response(r, "] on clientside
"); } } void show_meta(magi_request *r) { magi_response(r, "I was called "); if (r->is_secure) { magi_response(r, "securely "); } magi_response(r, "with method ["); magi_response(r, r->method); if (r->host) { magi_response(r, "] on server ["); magi_response(r, r->host); } if (r->script) { magi_response(r, "] being script on ["); magi_response(r, r->script); } if (r->path) { magi_response(r, "] with requested path ["); magi_response(r, r->path); } magi_response(r, "]
"); } void response(magi_request *r) { magi_response(r, "" "" "Echo" ""); magi_response(r, "

Echo CGI Script

"); show_meta(r); magi_response(r, "

Cookies:

"); list_cookies(r); magi_response(r, "

Parameters:

"); list_params(r, r->meta); magi_response(r, "

URL Parameters:

"); list_params(r, r->head); magi_response(r, "

Body Parameters:

"); list_params(r, r->body); magi_response(r, "

Files:

"); list_files(r); magi_response(r, ""); } int main() { magi_request request; magi_request_init(&request); if (magi_cgi(&request)) { response(&request); } else { magi_response_error(&request); } magi_request_free(&request); return 0; }