Serwer/example.c

56 lines
1.3 KiB
C
Raw Normal View History

2017-01-01 23:03:06 +00:00
#include "webserver.h"
2017-01-02 21:31:05 +00:00
#include "ws_utils.h"
2017-01-01 23:03:06 +00:00
#include "help.h"
#include <stdio.h>
#include <stdlib.h>
int hello_world(method_t method, const char* host, const char* path, headers_t requestHeaders,
headers_t* responseHeaders, stream_t request, stream_t response) {
fprintf(response, "Hello World!\n");
return 200;
}
int test(method_t method, const char* host, const char* path, headers_t requestHeaders,
headers_t* responseHeaders, stream_t request, stream_t response) {
2017-01-02 21:36:40 +00:00
fprintf(response, "Method: %s, URI: %s%s\n", ws_method_string(method), host, path);
2017-01-01 23:03:06 +00:00
fprintf(response, "Request headers:\n");
for (int i = 0; i < requestHeaders.nrfields; i++) {
header_t header = requestHeaders.fields[i];
fprintf(response, " %s - %s\n", header.key, header.value);
}
fprintf(response, "\n");
return 200;
}
int main(int argc, char** argv) {
help_init(NULL, "test");
handle_t hello_handle = {
2017-01-02 16:39:42 +00:00
.host = ANY,
2017-01-01 23:03:06 +00:00
.path = "/world",
.handler = &hello_world
};
handle_t test_handle = {
2017-01-02 16:39:42 +00:00
.host = ANY,
2017-01-01 23:03:06 +00:00
.path = "/test",
.handler = &test
};
srvoptions_t options = {
.mode = LINEAR,
.timeout = 30,
.maxconnections = 5,
.loglevel = LOG_DEBUG
};
2017-01-02 16:39:42 +00:00
webserver_t server = ws_create("test_server", NULL , "8080", stderr, options);
2017-01-01 23:03:06 +00:00
ws_handle_add(&server, hello_handle);
ws_handle_add(&server, test_handle);
ws_run(&server);
}