diff options
author | Aleksey Veresov <aleksey@veresov.pro> | 2019-09-22 11:03:31 +0300 |
---|---|---|
committer | Aleksey Veresov <aleksey@veresov.pro> | 2019-09-22 11:03:31 +0300 |
commit | f3f9c925687d262547d0e203ad3216fa6f46fd5d (patch) | |
tree | 2a66d8fc2a443f6406fd06161faf930086400995 /example/cookie.c | |
parent | 3d27a4f8f8de8d5ec1d59b24ea8607f7ce450fe4 (diff) | |
download | magi-f3f9c925687d262547d0e203ad3216fa6f46fd5d.tar magi-f3f9c925687d262547d0e203ad3216fa6f46fd5d.tar.xz magi-f3f9c925687d262547d0e203ad3216fa6f46fd5d.zip |
.
Diffstat (limited to 'example/cookie.c')
-rw-r--r-- | example/cookie.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/example/cookie.c b/example/cookie.c new file mode 100644 index 0000000..8f4018b --- /dev/null +++ b/example/cookie.c @@ -0,0 +1,58 @@ +#include <cookie.h> +#include <stdio.h> +#include <stdlib.h> +#include <request.h> + + +void print_preamble() +{ + puts( + "Set-Cookie:cookie=monstre\r\n" /* Important to set cookies before: */ + "Content-Type: application/xhtml+xml\r\n\r\n" + ); +} + +void print_webpage_top() +{ + puts( + "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' " + "'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>" + "<html xmlns='http://www.w3.org/1999/xhtml'>" + "<head><title>Cookie Listing and Setting</title></head>" + "<body>" + ); +} + +void read_and_print_cookies() +{ + struct magi_request request; + if (magi_request_build_cgi(&request, 0, 0)) { + struct magi_cookie_list *cookie; + for (cookie = request.cookies; cookie; cookie = cookie->next) { + printf( + "[%s] = [%s]<br/>", + cookie->item.name, + cookie->item.data + ); + } + magi_request_destroy(&request); + } +} + +void print_webpage_bottom() +{ + puts( + "</body>" + "</html>" + ); +} + +int main(int argc, char const *argv[]) +{ + print_preamble(); + /* Following probably will be much more pleasant with use of templates. */ + print_webpage_top(); + read_and_print_cookies(); + print_webpage_bottom(); + return 0; +} |