Page MenuHomePhabricator

D3808.id11729.diff
No OneTemporary

D3808.id11729.diff

diff --git a/services/tunnelbroker/src/Constants.h b/services/tunnelbroker/src/Constants.h
--- a/services/tunnelbroker/src/Constants.h
+++ b/services/tunnelbroker/src/Constants.h
@@ -27,7 +27,7 @@
// AMQP (RabbitMQ)
const std::string AMQP_FANOUT_EXCHANGE_NAME = "allBrokers";
-// message TTL
+// queue message TTL
const size_t AMQP_MESSAGE_TTL = 300 * 1000; // 5 min
// queue TTL in case of no consumers (tunnelbroker is down)
const size_t AMQP_QUEUE_TTL = 24 * 3600 * 1000; // 24 hours
@@ -35,8 +35,7 @@
const std::string AMQP_HEADER_FROM_DEVICEID = "fromDeviceid";
const std::string AMQP_HEADER_TO_DEVICEID = "toDeviceid";
-const int64_t AMQP_SHORTEST_RECONNECTION_ATTEMPT_INTERVAL =
- 1000 * 60; // 1 min
+const int64_t AMQP_SHORTEST_RECONNECTION_ATTEMPT_INTERVAL = 1000 * 60; // 1 min
// DeviceID
const size_t DEVICEID_CHAR_LENGTH = 64;
@@ -48,5 +47,8 @@
const std::string CONFIG_FILE_PATH =
std::string(std::getenv("HOME")) + "/tunnelbroker/tunnelbroker.ini";
+// Database Messages
+const size_t MESSAGE_RECORD_TTL = 30 * 24 * 3600 * 10; // 300 days
+
} // namespace network
} // namespace comm
diff --git a/services/tunnelbroker/src/Database/DatabaseManager.cpp b/services/tunnelbroker/src/Database/DatabaseManager.cpp
--- a/services/tunnelbroker/src/Database/DatabaseManager.cpp
+++ b/services/tunnelbroker/src/Database/DatabaseManager.cpp
@@ -184,7 +184,8 @@
Aws::DynamoDB::Model::AttributeValue(item.getBlobHashes()));
request.AddItem(
MessageItem::FIELD_EXPIRE,
- Aws::DynamoDB::Model::AttributeValue(std::to_string(item.getExpire())));
+ Aws::DynamoDB::Model::AttributeValue(std::to_string(
+ static_cast<size_t>(std::time(0) + MESSAGE_RECORD_TTL))));
this->innerPutItem(std::make_shared<MessageItem>(item), request);
}
diff --git a/services/tunnelbroker/src/Database/MessageItem.h b/services/tunnelbroker/src/Database/MessageItem.h
--- a/services/tunnelbroker/src/Database/MessageItem.h
+++ b/services/tunnelbroker/src/Database/MessageItem.h
@@ -42,8 +42,7 @@
const std::string fromDeviceID,
const std::string toDeviceID,
const std::string payload,
- const std::string blobHashes,
- const uint64_t expire);
+ const std::string blobHashes);
MessageItem(const AttributeValues &itemFromDB);
void assignItemFromDatabase(const AttributeValues &itemFromDB) override;
};
diff --git a/services/tunnelbroker/src/Database/MessageItem.cpp b/services/tunnelbroker/src/Database/MessageItem.cpp
--- a/services/tunnelbroker/src/Database/MessageItem.cpp
+++ b/services/tunnelbroker/src/Database/MessageItem.cpp
@@ -20,14 +20,12 @@
const std::string fromDeviceID,
const std::string toDeviceID,
const std::string payload,
- const std::string blobHashes,
- const uint64_t expire)
+ const std::string blobHashes)
: messageID(messageID),
fromDeviceID(fromDeviceID),
toDeviceID(toDeviceID),
payload(payload),
- blobHashes(blobHashes),
- expire(expire) {
+ blobHashes(blobHashes) {
this->validate();
}
@@ -43,7 +41,6 @@
throw std::runtime_error("Error: ToDeviceID format is wrong.");
}
tools::checkIfNotEmpty("messageID", this->messageID);
- tools::checkIfNotZero("expire", this->expire);
}
void MessageItem::assignItemFromDatabase(const AttributeValues &itemFromDB) {
diff --git a/services/tunnelbroker/test/DatabaseManagerTest.cpp b/services/tunnelbroker/test/DatabaseManagerTest.cpp
--- a/services/tunnelbroker/test/DatabaseManagerTest.cpp
+++ b/services/tunnelbroker/test/DatabaseManagerTest.cpp
@@ -36,8 +36,7 @@
"iGhpnX7Hp4xpBL3h2IkvGviDRQ98UvW0ugwUuPxm1NOQpjLG5dPoqQ0jrMst0Bl5rgPw"
"ajjNGsUWmp9r0ST0wRQXrQcY30PoSoqKSlCEgFMLzHWLrPQ86QFyCICismGSe7iBIqdD"
"6d37StvXBzfJoZVU79UeOF2bFvb3DNoArEOe",
- "7s6ZUSDoFfZe3eJWQ15ngYhgMw1TsfbECnMVQTYvY6OyqWPBQi5wiftFcluoxor8",
- static_cast<uint64_t>(std::time(0)) + 600);
+ "7s6ZUSDoFfZe3eJWQ15ngYhgMw1TsfbECnMVQTYvY6OyqWPBQi5wiftFcluoxor8");
EXPECT_EQ(
database::DatabaseManager::getInstance().isTableAvailable(
item.getTableName()),
@@ -51,7 +50,6 @@
EXPECT_EQ(item.getToDeviceID(), foundItem->getToDeviceID());
EXPECT_EQ(item.getPayload(), foundItem->getPayload());
EXPECT_EQ(item.getBlobHashes(), foundItem->getBlobHashes());
- EXPECT_EQ(item.getExpire(), foundItem->getExpire());
database::DatabaseManager::getInstance().removeMessageItem(
item.getMessageID());
}
@@ -62,8 +60,7 @@
"mobile:" + tools::generateRandomString(DEVICEID_CHAR_LENGTH),
"web:" + tools::generateRandomString(DEVICEID_CHAR_LENGTH),
tools::generateRandomString(256),
- tools::generateRandomString(256),
- static_cast<uint64_t>(std::time(0)) + 600);
+ tools::generateRandomString(256));
EXPECT_EQ(
database::DatabaseManager::getInstance().isTableAvailable(
item.getTableName()),
@@ -89,10 +86,6 @@
<< "Generated BlobHashes \"" << item.getBlobHashes()
<< "\" differs from what is found in the database "
<< foundItem->getBlobHashes();
- EXPECT_EQ(item.getExpire(), foundItem->getExpire())
- << "Generated Expire time \"" << item.getExpire()
- << "\" differs from what is found in the database "
- << foundItem->getExpire();
database::DatabaseManager::getInstance().removeMessageItem(
item.getMessageID());
}

File Metadata

Mime Type
text/plain
Expires
Sun, Sep 22, 4:00 AM (20 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2166822
Default Alt Text
D3808.id11729.diff (5 KB)

Event Timeline