X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=blobdiff_plain;f=version2%2Fsrc%2Fserver%2Fiotquery.cpp;fp=version2%2Fsrc%2Fserver%2Fiotquery.cpp;h=1e046a365593d32434ea77573802bdf5545acee9;hp=64639b39785885bbaf200734180ea317d1b1e178;hb=5a137c5e6e26460af285db43a3bd7b088a9024f5;hpb=687b0282b4f0810b78de247d3f99b2ace038bf25 diff --git a/version2/src/server/iotquery.cpp b/version2/src/server/iotquery.cpp index 64639b3..1e046a3 100644 --- a/version2/src/server/iotquery.cpp +++ b/version2/src/server/iotquery.cpp @@ -208,35 +208,19 @@ void IoTQuery::getSlot() { /** * The method setSalt handles a setSalt request from the client. */ - void IoTQuery::setSalt() { /* Write the slot data we received to a SLOT file */ char *filename = getSaltFileName(); - char * response = new char[1]; - - if (access(filename, F_OK) == 0) - { - /* Already Exists */ - response[0] = 1; - } - else - { - /* Does not exist so create it */ - int saltfd = open(filename, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR); - doWrite(saltfd, data, length); - close(saltfd); - response[0] = 0; - } - - - sendResponse(response, 1); - + int saltfd = open(filename, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR); + doWrite(saltfd, data, length); + char response[0]; + sendResponse(response, 0); + close(saltfd); delete filename; - delete response; } /** - * The method getSalt handles a setSalt request from the client. + * The method getSalt handles a getSalt request from the client. */ void IoTQuery::getSalt() { @@ -247,6 +231,8 @@ void IoTQuery::getSalt() { if (stat(filename, &st) == 0) { filesize = st.st_size; } else { + char response[0]; + sendResponse(response, 0); delete filename; return; } @@ -306,6 +292,7 @@ void IoTQuery::sendResponse(char * bytes, int len) { << "Content-Length: " << len << "\r\n" << "\r\n"; cout.write(bytes, len); + cout << flush; } /** @@ -359,8 +346,10 @@ void IoTQuery::removeOldestSlot() { void IoTQuery::processQuery() { getQuery(); getDirectory(); + // readData(); if (!readData()) { + cerr << "No Data Available" << endl; return; } @@ -412,19 +401,20 @@ void IoTQuery::processQuery() { */ bool IoTQuery::readData() { - if (length) { + if (length != 0) { data = new char[length + 1]; memset(data, 0, length + 1); cin.read(data, length); } + do { char dummy; cin >> dummy; } while (!cin.eof()); - if (length) + if (length != 0) { - if (cin.fail()) + if (cin.gcount() != length) { return false; }