From 29cb09973b180ba501c04d8b4eeac80f90d1dffc Mon Sep 17 00:00:00 2001
From: bel To see a page from the A handler click here To see a page from the A handler with a parameter "
- "click here To see a page from the A/B handler click here To see a page from the *.foo handler click here To see a page from the A handler click here To see a page from the A handler with a parameter "
+ "click here To see a page from the A/B handler click here To see a page from the *.foo handler click here To exit click here The request was:This is an example text from a C++ handler
\r\n");
- mg_printf(conn, "This is the A handler for \"%s\" !
", method);
if (CivetServer::getParam(conn, "param", s)) {
@@ -98,7 +108,9 @@ class ABHandler : public CivetHandler
bool
handleGet(CivetServer *server, struct mg_connection *conn)
{
- mg_printf(conn, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n");
+ mg_printf(conn,
+ "HTTP/1.1 200 OK\r\nContent-Type: "
+ "text/html\r\nConnection: close\r\n\r\n");
mg_printf(conn, "");
mg_printf(conn, "This is the AB handler!!!
");
mg_printf(conn, "\n");
@@ -115,7 +127,9 @@ class FooHandler : public CivetHandler
/* Handler may access the request info using mg_get_request_info */
const struct mg_request_info *req_info = mg_get_request_info(conn);
- mg_printf(conn, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n");
+ mg_printf(conn,
+ "HTTP/1.1 200 OK\r\nContent-Type: "
+ "text/html\r\nConnection: close\r\n\r\n");
mg_printf(conn, "\n");
mg_printf(conn, "This is the Foo GET handler!!!
\n");
@@ -123,7 +137,7 @@ class FooHandler : public CivetHandler
"%s %s HTTP/%s
Content Length: %li
\n", (long)tlen); - mg_printf(conn, "\n"); + mg_printf(conn, "\n"); mg_printf(conn, "\n"); return true; @@ -170,12 +192,14 @@ class FooHandler : public CivetHandler { /* Handler may access the request info using mg_get_request_info */ const struct mg_request_info *req_info = mg_get_request_info(conn); - size_t rlen, wlen; - size_t nlen = 0; - size_t tlen = (size_t)req_info->content_length; - char buf[1024]; + long long rlen, wlen; + long long nlen = 0; + long long tlen = (size_t)req_info->content_length; + char buf[1024]; - mg_printf(conn, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n"); + mg_printf(conn, + "HTTP/1.1 200 OK\r\nContent-Type: " + "text/html\r\nConnection: close\r\n\r\n"); mg_printf(conn, "\n"); mg_printf(conn, "Content Length: %li
\n", (long)tlen); + mg_printf(conn, "\n"); - while (nlen < tlen) { - rlen = tlen - nlen; - if (rlen>sizeof(buf)) {rlen=sizeof(buf);} - rlen = mg_read(conn, buf, rlen); - if (rlen<=0) break; - wlen = mg_write(conn, buf, rlen); - if (rlen!=rlen) break; - nlen += wlen; - } + while (nlen < tlen) { + rlen = tlen - nlen; + if (rlen > sizeof(buf)) { + rlen = sizeof(buf); + } + rlen = mg_read(conn, buf, rlen); + if (rlen <= 0) { + break; + } + wlen = mg_write(conn, buf, rlen); + if (rlen != rlen) { + break; + } + nlen += wlen; + } - mg_printf(conn, "\n\n"); + mg_printf(conn, "\n
Content Length: %li
\n", (long)tlen); - mg_printf(conn, "\n"); + mg_printf(conn, "\n"); mg_printf(conn, "\n"); return true;Content Length: %li
\n", (long)tlen); + mg_printf(conn, "\n"); - while (nlen < tlen) { - rlen = tlen - nlen; - if (rlen>sizeof(buf)) {rlen=sizeof(buf);} - rlen = mg_read(conn, buf, rlen); - if (rlen<=0) break; - wlen = mg_write(conn, buf, rlen); - if (rlen!=rlen) break; - nlen += wlen; - } + while (nlen < tlen) { + rlen = tlen - nlen; + if (rlen > sizeof(buf)) { + rlen = sizeof(buf); + } + rlen = mg_read(conn, buf, rlen); + if (rlen <= 0) { + break; + } + wlen = mg_write(conn, buf, rlen); + if (rlen != rlen) { + break; + } + nlen += wlen; + } - mg_printf(conn, "\n\n"); + mg_printf(conn, "\n