From 511e50c6cab584740787ea62566c7b77f5c130d4 Mon Sep 17 00:00:00 2001 From: Brian Demsky Date: Thu, 21 Jul 2016 23:26:39 -0700 Subject: [PATCH] edits --- src/server/iotcloud.fcgi | Bin 50912 -> 51616 bytes src/server/iotquery.cpp | 89 ++++++++++++++++++++++++--------------- src/server/iotquery.h | 12 ++++-- 3 files changed, 65 insertions(+), 36 deletions(-) diff --git a/src/server/iotcloud.fcgi b/src/server/iotcloud.fcgi index c9614c364a0b912a75a5546de56b6302844b67a8..fc754f41514ce97ec1948a0685d71cffa0eec5a9 100755 GIT binary patch delta 21512 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\n" - << " \n" - << " Hello, World!\n" - << " \n" - << " \n" - << "

Hello, World!

\n" - << " \n"; - - cout << uri_str << " " << uri << "\n"; - cout << query_str << " " << query << "\n"; - cout << method_str << " " << method << "\n"; - cout << iotcloudroot_str << " " << iotcloudroot << "\n"; - if (data) - cout << "[" << data << "]"; - - - cout << "\n"; -} + flock(fd, LOCK_EX); + + decodeQuery(); + if (reqGetSlot) + getSlot(); + else if (reqPutSlot) + putSlot(); + else return; +} void IoTQuery::readData() { if (length) { @@ -103,7 +126,7 @@ void IoTQuery::readData() { } while (!cin.eof()); } -void IoTQuery::parseQuery() { +void IoTQuery::getQuery() { uri = FCGX_GetParam(uri_str, request->envp); query = FCGX_GetParam(query_str, request->envp); method = FCGX_GetParam(method_str, request->envp); @@ -147,7 +170,7 @@ void IoTQuery::updateStatusFile() { pwrite(fd, &lastentry, sizeof(lastentry), OFFSET_LAST); } -int IoTQuery::openStatusFile() { +bool IoTQuery::openStatusFile() { char statusfile[]="queuestatus"; int len=strlen(directory); @@ -160,7 +183,7 @@ int IoTQuery::openStatusFile() { delete filename; if (fd < 0) - return fd; + return false; int size; int needwrite=0; @@ -183,7 +206,7 @@ int IoTQuery::openStatusFile() { if (needwrite) updateStatusFile(); - return fd; + return true; } diff --git a/src/server/iotquery.h b/src/server/iotquery.h index bfc185e..f2433dc 100644 --- a/src/server/iotquery.h +++ b/src/server/iotquery.h @@ -17,12 +17,15 @@ class IoTQuery { void processQuery(); private: - void parseQuery(); + void getQuery(); void getDirectory(); void readData(); - int checkDirectory(); - int openStatusFile(); + bool checkDirectory(); + bool openStatusFile(); void updateStatusFile(); + void decodeQuery(); + void getSlot(); + void putSlot(); FCGX_Request * request; char *data; @@ -35,7 +38,10 @@ class IoTQuery { long length; long firstentry; long lastentry; + long requestsequencenumber; int numqueueentries; int fd; + bool reqGetSlot; + bool reqPutSlot; }; #endif -- 2.34.1