This is a dependency of our upcoming web-based material debugger. This
CL also includes `tnt/CMakeLists.txt`, which builds a static lib in a
minimal configuration that enables WebSocket support. The entire library
is built from only 4 files:
${PUBLIC_HDR_DIR}/CivetServer.h
${PUBLIC_HDR_DIR}/civetweb.h
${SRC_DIR}/civetweb.c
${SRC_DIR}/CivetServer.cpp
41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
|
|
#if defined(_WIN32) || defined(WIN32) || defined(WINDOWS)
|
|
#include <fcntl.h>
|
|
#include <io.h>
|
|
#endif
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
char buf[1024];
|
|
size_t rec_len = 0;
|
|
const char *response_header = "Content-Type: text/plain\r\n"
|
|
"Connection: close\r\n"
|
|
"\r\n";
|
|
const char *req_method = getenv("REQUEST_METHOD");
|
|
const char *con_length = getenv("CONTENT_LENGTH");
|
|
|
|
#if defined(_WIN32) || defined(WIN32) || defined(WINDOWS)
|
|
_setmode(_fileno(stdin), _O_BINARY);
|
|
_setmode(_fileno(stdout), _O_BINARY);
|
|
#endif
|
|
|
|
/* Write the response header with \r\n */
|
|
fwrite(response_header, 1, strlen(response_header), stdout);
|
|
|
|
/* Headline for generated reply: */
|
|
printf("Got message:\n Method: %s\n Content-Length: %s\n Content: ",
|
|
req_method,
|
|
con_length ? con_length : "not set");
|
|
|
|
/* Read all data from stdin and send it to stdout */
|
|
while ((rec_len = fread(buf, 1, sizeof(buf) - 1, stdin)) > 0) {
|
|
fwrite(buf, 1, rec_len, stdout);
|
|
}
|
|
|
|
return 0;
|
|
}
|