summaryrefslogtreecommitdiffstats
path: root/examples/nanohttp/postserver.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/nanohttp/postserver.c')
-rw-r--r--examples/nanohttp/postserver.c63
1 files changed, 50 insertions, 13 deletions
diff --git a/examples/nanohttp/postserver.c b/examples/nanohttp/postserver.c
index 2a813b5..a28dc20 100644
--- a/examples/nanohttp/postserver.c
+++ b/examples/nanohttp/postserver.c
@@ -1,5 +1,5 @@
/******************************************************************
-* $Id: postserver.c,v 1.2 2004/08/26 17:02:24 rans Exp $
+* $Id: postserver.c,v 1.3 2004/09/19 07:05:03 snowdrop Exp $
*
* CSOAP Project: A http client/server library in C (example)
* Copyright (C) 2003 Ferhat Ayaz
@@ -23,29 +23,70 @@
******************************************************************/
#include <nanohttp/nanohttp-server.h>
-#ifdef WIN32
-#include <stdafx.h>
-#include <malloc.h>
-#else
#include <stdio.h>
-#endif
+
+static
+void _print_binary_ascii(int n)
+{
+ int i,c=0;
+ char ascii[36];
+
+ for (i=0;i<32;i++) {
+ ascii[34-i-c] = (n & (1<<i))?'1':'0';
+ if ((i+1)%8 == 0) {
+ c++;
+ ascii[i+c] = ' ';
+ }
+ }
+
+ ascii[35]='\0';
+
+ log_verbose2("%s", ascii);
+}
+
+
+static
+void _print_binary_ascii2(unsigned char n)
+{
+ int i,c=0;
+ char ascii[9];
+
+ for (i=0;i<8;i++) {
+ ascii[7-i] = (n & (1<<i))?'1':'0';
+ }
+
+ ascii[8]='\0';
+
+ log_verbose2("%s", ascii);
+}
+
/*
SERVICE: http://host:port/postserver
*/
void post_service(httpd_conn_t *conn, hrequest_t *req)
{
- char *postdata;
+ unsigned char *postdata;
long received;
+ unsigned int tmp;
+ char buffer[15];
postdata = httpd_get_postdata(conn, req, &received, -1);
if (postdata != NULL) {
httpd_send_header(conn, 200, "OK", NULL);
- hsocket_send(conn->sock, "<html><body>");
- hsocket_send(conn->sock, "<h3>You Posted:</h3><hr>");
+ hsocket_send(conn->sock, "<html><body>\n");
+ hsocket_send(conn->sock, "<h3>You Posted:</h3><hr>\n");
hsocket_nsend(conn->sock, postdata, received);
+ hsocket_send(conn->sock, "<h3>Received size</h3><hr>\n");
+ sprintf(buffer, "%d", received);
+ hsocket_send(conn->sock, buffer);
hsocket_send(conn->sock, "</body></html>");
+
+ _print_binary_ascii2(postdata[0]);
+ _print_binary_ascii2(postdata[1]);
+ _print_binary_ascii2(postdata[2]);
+ _print_binary_ascii2(postdata[3]);
free(postdata);
} else {
@@ -62,11 +103,7 @@ void post_service(httpd_conn_t *conn, hrequest_t *req)
}
-#ifdef WIN32
-int _tmain(int argc, _TCHAR* argv[])
-#else
int main(int argc, char *argv[])
-#endif
{
log_set_level(HLOG_VERBOSE);