From 14c81405364d9ef1822a3175467942bf61c75544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Wed, 1 Jan 2014 15:55:18 +0100 Subject: [PATCH] democlient: simple working democlient --- democlient/democlient.cpp | 24 +++++++++++++++--------- htdocs/demo/index.php | 2 +- runastyle | 1 + 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/democlient/democlient.cpp b/democlient/democlient.cpp index 1643e46c4..c4844169c 100644 --- a/democlient/democlient.cpp +++ b/democlient/democlient.cpp @@ -39,16 +39,12 @@ public: } void run(const char code[]) { - printf("%s\n", ErrorLogger::ErrorMessage::getXMLHeader(2).c_str()); cppcheck.check("test.c", code); - printf("%s\n", ErrorLogger::ErrorMessage::getXMLFooter(2).c_str()); - printf("\n\n"); } void reportOut(const std::string &outmsg) { } void reportErr(const ErrorLogger::ErrorMessage &msg) { - const std::string str(msg.toXML(true,2U)); - printf("%s\n", str.c_str()); + printf("%s\n", msg.toString(true).c_str()); } void reportProgress(const @@ -70,28 +66,38 @@ int main() { char data[4096] = {0}; + const char *query_string = getenv("QUERY_STRING"); + if (query_string) + std::strncpy(data, query_string, sizeof(data)-2); + const char *lenstr = getenv("CONTENT_LENGTH"); if (lenstr) { int len = std::min(1 + atoi(lenstr), (int)(sizeof(data) - 2)); fgets(data, len, stdin); - } else { - const char *s = getenv("QUERY_STRING"); - std::strncpy(data, s?s:"", sizeof(data)-2); } char code[4096] = {0}; unencode(data, code); + if (strlen(code) > 1000) { + puts("Content-type: text/html\r\n\r\n"); + puts("For performance reasons the code must be shorter than 1000 chars."); + return EXIT_SUCCESS; + } + FILE *logfile = fopen("democlient.log", "at"); if (logfile != NULL) { fprintf(logfile, "===========================================================\n%s\n", code); fclose(logfile); } - printf("Content-type: text/plain\n\n"); + puts("Content-type: text/html\r\n\r\n"); + puts("
");
 
     CppcheckExecutor cppcheckExecutor;
     cppcheckExecutor.run(code);
 
+    puts("
Done!"); + return EXIT_SUCCESS; } diff --git a/htdocs/demo/index.php b/htdocs/demo/index.php index c4aea69b1..422d9a41d 100644 --- a/htdocs/demo/index.php +++ b/htdocs/demo/index.php @@ -46,7 +46,7 @@

Online Demo

-
+

(max 1024 characters)