From f9cc5128f5e9eb726b8562d33067ddce6d65385c Mon Sep 17 00:00:00 2001 From: Wolfgang Draxinger Date: Fri, 28 Jun 2013 18:14:16 +0200 Subject: multipart code works --- test/bsdsocket.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/bsdsocket.c b/test/bsdsocket.c index 9665e1a..e090054 100644 --- a/test/bsdsocket.c +++ b/test/bsdsocket.c @@ -107,12 +107,13 @@ void rhRoot(struct picohttpRequest *req) char http_test[] = "handling request /\n" -"/test" -"
" -"" -"" -"" -"
" +"/test\n" +"
\n" +"
\n" +"
\n" +"
\n" +"\n" +"
\n" "\n"; picohttpResponseWrite(req, sizeof(http_test)-1, http_test); @@ -141,8 +142,21 @@ void rhUpload(struct picohttpRequest *req) char http_test[] = "handling request /upload"; - struct picohttpMultipart mp; - picohttpMultipartNext(req, &mp); + struct picohttpMultipart mp = picohttpMultipartStart(req); + + while( !picohttpMultipartNext(&mp) ) { + fprintf(stderr, "processing form field \"%s\"\n", mp.disposition.name); + for(int16_t ch = picohttpMultipartGetch(&mp); + 0 <= ch; + ch = picohttpMultipartGetch(&mp) ) { + fputc(ch, stderr); + } + if( !mp.finished ) { + break; + } + } + if( !mp.finished ) { + } picohttpResponseWrite(req, sizeof(http_test)-1, http_test); if(req->urltail) { @@ -206,7 +220,7 @@ int main(int argc, char *argv[]) struct picohttpURLRoute routes[] = { { "/test", 0, rhTest, 16, PICOHTTP_METHOD_GET }, - { "/upload|", 0, rhUpload, 0, PICOHTTP_METHOD_GET }, + { "/upload", 0, rhUpload, 16, PICOHTTP_METHOD_POST }, { "/|", 0, rhRoot, 0, PICOHTTP_METHOD_GET }, { NULL, 0, 0, 0, 0 } }; -- cgit v1.2.3