diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/append.c | 48 | ||||
-rw-r--r-- | examples/cookie.c | 58 | ||||
-rw-r--r-- | examples/makefile | 24 | ||||
-rw-r--r-- | examples/upload.c | 73 |
4 files changed, 0 insertions, 203 deletions
diff --git a/examples/append.c b/examples/append.c deleted file mode 100644 index f0dfe2a..0000000 --- a/examples/append.c +++ /dev/null @@ -1,48 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <request.h> - - -void handle_request() -{ - struct magi_request request; - if (magi_request_build_cgi(&request, 0, 0)) { - struct magi_field *a = magi_field_list_get(request.fields, "addon"); - if (a && a->data) { - FILE *file = fopen("file_to_append", "a"); - fputs(a->data, file); - fclose(file); - } - magi_request_destroy(&request); - } -} - -void print_preamble() -{ - puts("Content-type: application/xhtml+xml\r\n\r\n"); -} - -void print_webpage() -{ - 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>Append to File</title></head>" - "<body>" - "<form action='/cgi-bin/append' method='GET'>" - "<input type='text' name='addon' value='Whatever you want to add.'/>" - "<input type='submit' value='Append'/>" - "</form>" - "</body>" - "</html>" - ); -} - -int main(int argc, char const *argv[]) -{ - handle_request(); - print_preamble(); - print_webpage(); - return 0; -} diff --git a/examples/cookie.c b/examples/cookie.c deleted file mode 100644 index 8f4018b..0000000 --- a/examples/cookie.c +++ /dev/null @@ -1,58 +0,0 @@ -#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; -} diff --git a/examples/makefile b/examples/makefile deleted file mode 100644 index ecd7bc9..0000000 --- a/examples/makefile +++ /dev/null @@ -1,24 +0,0 @@ -# Uncomment following to enable debug mode: -# DEBUG = yes - -CC = gcc -EXAMPLES = append cookie upload - -CFLAGS = -xc -ansi -pedantic -Wall -ifeq '$(DEBUG)' 'yes' -CFLAGS += -g -O0 -else -CFLAGS += -O3 -endif - -INCLUDE = ../src -LFLAGS = -L.. -lmagi - - -default: $(EXAMPLES) - -%: %.c - $(CC) $(CFLAGS) -I $(INCLUDE) $< $(LFLAGS) -o $@ - -clean: - rm -f $(EXAMPLES) diff --git a/examples/upload.c b/examples/upload.c deleted file mode 100644 index 9dc1efd..0000000 --- a/examples/upload.c +++ /dev/null @@ -1,73 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <request.h> -#include <multipart.h> - -void tempfile_callback(struct magi_field *field, char *buffer, int len) -{ - static FILE *file = 0; - if (!strcmp(field->name, "data")) { - if (!file) { - remove(field->name); - file = fopen(field->name, "wb"); - } - if (len) { - fwrite(buffer, 1, len, file); - } - if (len < magi_parse_multipart_callback_size) { - fclose(file); - file = 0; - } - } else if (len) { - field->data = realloc(field->data, field->len + len + 1); - memcpy(field->data + field->len, buffer, len); - field->len += len; - field->data[field->len] = 0; - } -} - -void handle_request() -{ - struct magi_request request; - if (magi_request_build_cgi(&request, tempfile_callback, 0)) { - struct magi_field *name = magi_field_list_get(request.fields, "name"); - struct magi_field *data = magi_field_list_get(request.fields, "data"); - if (name && name->data && data) { - rename("data", name->data); - } - magi_request_destroy(&request); - } -} - -void print_preamble() -{ - puts("Content-type: application/xhtml+xml\r\n\r\n"); -} - -void print_webpage() -{ - 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>Upload File</title></head>" - "<body>" - "<form action='/cgi-bin/upload' method='POST' " - "enctype='multipart/form-data'>" - "<input type='text' name='name' value='filename'/>" - "<input type='file' name='data'/>" - "<input type='submit' value='Upload'/>" - "</form>" - "</body>" - "</html>" - ); -} - -int main(int argc, char const *argv[]) -{ - handle_request(); - print_preamble(); - print_webpage(); - return 0; -} |