From 744c835ca48d82bf6c2bfa06a6f2e5176417720f Mon Sep 17 00:00:00 2001 From: bdemsky Date: Fri, 22 Jul 2016 01:08:06 -0700 Subject: [PATCH 1/1] spacing --- src/server/.dir-locals.el | 1 + src/server/iotcloud.cpp | 58 +++---- src/server/iotcloud.fcgi | Bin 51616 -> 0 bytes src/server/iotquery.cpp | 311 +++++++++++++++++++------------------- src/server/iotquery.h | 60 ++++---- 5 files changed, 215 insertions(+), 215 deletions(-) create mode 100644 src/server/.dir-locals.el delete mode 100755 src/server/iotcloud.fcgi diff --git a/src/server/.dir-locals.el b/src/server/.dir-locals.el new file mode 100644 index 0000000..ce85e5f --- /dev/null +++ b/src/server/.dir-locals.el @@ -0,0 +1 @@ +((nil . ((indent-tabs-mode . t)))) \ No newline at end of file diff --git a/src/server/iotcloud.cpp b/src/server/iotcloud.cpp index 2f82674..e7eb2d3 100644 --- a/src/server/iotcloud.cpp +++ b/src/server/iotcloud.cpp @@ -5,34 +5,34 @@ using namespace std; int main(void) { - // Backup the stdio streambufs - streambuf * cin_streambuf = cin.rdbuf(); - streambuf * cout_streambuf = cout.rdbuf(); - streambuf * cerr_streambuf = cerr.rdbuf(); - - FCGX_Request request; - - FCGX_Init(); - FCGX_InitRequest(&request, 0, 0); - - while (FCGX_Accept_r(&request) == 0) { - fcgi_streambuf cin_fcgi_streambuf(request.in); - fcgi_streambuf cout_fcgi_streambuf(request.out); - fcgi_streambuf cerr_fcgi_streambuf(request.err); - - cin.rdbuf(&cin_fcgi_streambuf); - cout.rdbuf(&cout_fcgi_streambuf); - cerr.rdbuf(&cerr_fcgi_streambuf); - IoTQuery * iotquery=new IoTQuery(&request); - iotquery->processQuery(); - delete iotquery; - } - - // restore stdio streambufs - cin.rdbuf(cin_streambuf); - cout.rdbuf(cout_streambuf); - cerr.rdbuf(cerr_streambuf); - - return 0; + // Backup the stdio streambufs + streambuf * cin_streambuf = cin.rdbuf(); + streambuf * cout_streambuf = cout.rdbuf(); + streambuf * cerr_streambuf = cerr.rdbuf(); + + FCGX_Request request; + + FCGX_Init(); + FCGX_InitRequest(&request, 0, 0); + + while (FCGX_Accept_r(&request) == 0) { + fcgi_streambuf cin_fcgi_streambuf(request.in); + fcgi_streambuf cout_fcgi_streambuf(request.out); + fcgi_streambuf cerr_fcgi_streambuf(request.err); + + cin.rdbuf(&cin_fcgi_streambuf); + cout.rdbuf(&cout_fcgi_streambuf); + cerr.rdbuf(&cerr_fcgi_streambuf); + IoTQuery * iotquery=new IoTQuery(&request); + iotquery->processQuery(); + delete iotquery; + } + + // restore stdio streambufs + cin.rdbuf(cin_streambuf); + cout.rdbuf(cout_streambuf); + cerr.rdbuf(cerr_streambuf); + + return 0; } diff --git a/src/server/iotcloud.fcgi b/src/server/iotcloud.fcgi deleted file mode 100755 index fc754f41514ce97ec1948a0685d71cffa0eec5a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51616 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 0) - close(fd); - if (directory) - delete directory; - if (data) - delete data; - if (dir != NULL) - closedir(dir); + if (fd >= 0) + close(fd); + if (directory) + delete directory; + if (data) + delete data; + if (dir != NULL) + closedir(dir); } bool IoTQuery::checkDirectory() { - struct stat s; - int err=stat(directory, &s); - if (-1 == err) - return false; - return S_ISDIR(s.st_mode); + struct stat s; + int err=stat(directory, &s); + if (-1 == err) + return false; + return S_ISDIR(s.st_mode); } void IoTQuery::decodeQuery() { - int len=strlen(query); - char * str=new char[len+1]; - memcpy(str, query, len+1); - char *tok_ptr=str; - - /* Parse commands */ - char *command=strsep(&tok_ptr, "&"); - if (strncmp(command, "putslot", 7) == 0) - reqPutSlot = true; - - if (strncmp(command, "getslot", 7) == 0) - reqGetSlot = true; - - /* Load Sequence Number for request */ - char *sequencenumber_str = strsep(&tok_ptr, "&"); - - if (sequencenumber_str != NULL) - requestsequencenumber = strtol(sequencenumber_str, NULL, 10); - - /* Update size if we get request */ - char * numqueueentries_str = tok_ptr; - if (numqueueentries_str != NULL) - numqueueentries = strtol(numqueueentries_str, NULL, 10); - - delete str; + int len=strlen(query); + char * str=new char[len+1]; + memcpy(str, query, len+1); + char *tok_ptr=str; + + /* Parse commands */ + char *command=strsep(&tok_ptr, "&"); + if (strncmp(command, "putslot", 7) == 0) + reqPutSlot = true; + + if (strncmp(command, "getslot", 7) == 0) + reqGetSlot = true; + + /* Load Sequence Number for request */ + char *sequencenumber_str = strsep(&tok_ptr, "&"); + + if (sequencenumber_str != NULL) + requestsequencenumber = strtol(sequencenumber_str, NULL, 10); + + /* Update size if we get request */ + char * numqueueentries_str = tok_ptr; + if (numqueueentries_str != NULL) + numqueueentries = strtol(numqueueentries_str, NULL, 10); + + delete str; } void IoTQuery::getSlot() { - + } void IoTQuery::putSlot() { - + } void IoTQuery::processQuery() { - getQuery(); - getDirectory(); - readData(); - - if (strncmp(method, "POST", 4) != 0) - return; - - if (directory == NULL || - !checkDirectory()) - return; - - if (!openStatusFile()) - return; - - flock(fd, LOCK_EX); - - decodeQuery(); - - if (reqGetSlot) - getSlot(); - else if (reqPutSlot) - putSlot(); - else return; + getQuery(); + getDirectory(); + readData(); + + if (strncmp(method, "POST", 4) != 0) + return; + + if (directory == NULL || + !checkDirectory()) + return; + + if (!openStatusFile()) + return; + + flock(fd, LOCK_EX); + + decodeQuery(); + + if (reqGetSlot) + getSlot(); + else if (reqPutSlot) + putSlot(); + else return; } void IoTQuery::readData() { - if (length) { - data = new char[length+1]; - memset(data, 0, length+1); - cin.read(data, length); - } - do { - char dummy; - cin >> dummy; - } while (!cin.eof()); + if (length) { + data = new char[length+1]; + memset(data, 0, length+1); + cin.read(data, length); + } + do { + char dummy; + cin >> dummy; + } while (!cin.eof()); } void IoTQuery::getQuery() { - uri = FCGX_GetParam(uri_str, request->envp); - query = FCGX_GetParam(query_str, request->envp); - method = FCGX_GetParam(method_str, request->envp); - iotcloudroot = FCGX_GetParam(iotcloudroot_str, request->envp); - - char * reqlength = FCGX_GetParam(length_str, request->envp); - if (length) { - length=strtol(reqlength, NULL, 10); - } else { - length=0; - } + uri = FCGX_GetParam(uri_str, request->envp); + query = FCGX_GetParam(query_str, request->envp); + method = FCGX_GetParam(method_str, request->envp); + iotcloudroot = FCGX_GetParam(iotcloudroot_str, request->envp); + + char * reqlength = FCGX_GetParam(length_str, request->envp); + if (length) { + length=strtol(reqlength, NULL, 10); + } else { + length=0; + } } void IoTQuery::getDirectory() { - char * split = strchr((char *)uri, '?'); - if (split == NULL) - return; - int split_len = (int) (split-uri); - int rootdir_len = strlen(iotcloudroot); - int directory_len = split_len + rootdir_len + 1; - directory = new char[directory_len]; - memcpy(directory, iotcloudroot, rootdir_len); - memcpy(directory + rootdir_len, uri, split_len); - directory[directory_len]=0; + char * split = strchr((char *)uri, '?'); + if (split == NULL) + return; + int split_len = (int) (split-uri); + int rootdir_len = strlen(iotcloudroot); + int directory_len = split_len + rootdir_len + 1; + directory = new char[directory_len]; + memcpy(directory, iotcloudroot, rootdir_len); + memcpy(directory + rootdir_len, uri, split_len); + directory[directory_len]=0; } int doread(int fd, void *ptr, size_t count, off_t offset) { - do { - size_t bytesread=pread(fd, ptr, count, offset); - if (bytesread==count) { - return 1; - } else if (bytesread==0) { - return 0; - } - } while(1); + do { + size_t bytesread=pread(fd, ptr, count, offset); + if (bytesread==count) { + return 1; + } else if (bytesread==0) { + return 0; + } + } while(1); } void IoTQuery::updateStatusFile() { - pwrite(fd, &numqueueentries, sizeof(numqueueentries), OFFSET_MAX); - pwrite(fd, &firstentry, sizeof(firstentry), OFFSET_FIRST); - pwrite(fd, &lastentry, sizeof(lastentry), OFFSET_LAST); + pwrite(fd, &numqueueentries, sizeof(numqueueentries), OFFSET_MAX); + pwrite(fd, &firstentry, sizeof(firstentry), OFFSET_FIRST); + pwrite(fd, &lastentry, sizeof(lastentry), OFFSET_LAST); } bool IoTQuery::openStatusFile() { - char statusfile[]="queuestatus"; - int len=strlen(directory); - - char * filename=new char[len+sizeof(statusfile)+2]; - memcpy(filename, directory, len); - filename[len]='/'; - memcpy(filename+len+1, statusfile, sizeof(statusfile)); - filename[len+sizeof(statusfile)+1]=0; - fd=open(filename, O_CREAT| O_RDWR, S_IRUSR| S_IWUSR); - delete filename; - - if (fd < 0) - return false; - - int size; - int needwrite=0; - if (doread(fd, &size, sizeof(size), OFFSET_MAX)) - numqueueentries=size; - else - needwrite=1; - - long entry; - if (doread(fd, &entry, sizeof(entry), OFFSET_FIRST)) - firstentry=entry; - else - needwrite=1; - - if (doread(fd, &entry, sizeof(entry), OFFSET_LAST)) - lastentry=entry; - else - needwrite=1; - - if (needwrite) - updateStatusFile(); - - return true; + char statusfile[]="queuestatus"; + int len=strlen(directory); + + char * filename=new char[len+sizeof(statusfile)+2]; + memcpy(filename, directory, len); + filename[len]='/'; + memcpy(filename+len+1, statusfile, sizeof(statusfile)); + filename[len+sizeof(statusfile)+1]=0; + fd=open(filename, O_CREAT| O_RDWR, S_IRUSR| S_IWUSR); + delete filename; + + if (fd < 0) + return false; + + int size; + int needwrite=0; + if (doread(fd, &size, sizeof(size), OFFSET_MAX)) + numqueueentries=size; + else + needwrite=1; + + long entry; + if (doread(fd, &entry, sizeof(entry), OFFSET_FIRST)) + firstentry=entry; + else + needwrite=1; + + if (doread(fd, &entry, sizeof(entry), OFFSET_LAST)) + lastentry=entry; + else + needwrite=1; + + if (needwrite) + updateStatusFile(); + + return true; } - + diff --git a/src/server/iotquery.h b/src/server/iotquery.h index f2433dc..5aba593 100644 --- a/src/server/iotquery.h +++ b/src/server/iotquery.h @@ -12,36 +12,36 @@ class IoTQuery { public: - IoTQuery(FCGX_Request * request); - ~IoTQuery(); - void processQuery(); - + IoTQuery(FCGX_Request * request); + ~IoTQuery(); + void processQuery(); + private: - void getQuery(); - void getDirectory(); - void readData(); - bool checkDirectory(); - bool openStatusFile(); - void updateStatusFile(); - void decodeQuery(); - void getSlot(); - void putSlot(); - - FCGX_Request * request; - char *data; - char *directory; - const char * uri; - const char * query; - const char * method; - const char * iotcloudroot; - DIR *dir; - long length; - long firstentry; - long lastentry; - long requestsequencenumber; - int numqueueentries; - int fd; - bool reqGetSlot; - bool reqPutSlot; + void getQuery(); + void getDirectory(); + void readData(); + bool checkDirectory(); + bool openStatusFile(); + void updateStatusFile(); + void decodeQuery(); + void getSlot(); + void putSlot(); + + FCGX_Request * request; + char *data; + char *directory; + const char * uri; + const char * query; + const char * method; + const char * iotcloudroot; + DIR *dir; + long length; + long firstentry; + long lastentry; + long requestsequencenumber; + int numqueueentries; + int fd; + bool reqGetSlot; + bool reqPutSlot; }; #endif -- 2.34.1