From 55df81b1a66804b87fb392a9d258f7d81e94eab0 Mon Sep 17 00:00:00 2001 From: "Jerry (Xinyu Hou)" Date: Thu, 12 Nov 2015 10:08:35 -0800 Subject: [PATCH] Add company and email into serial key #4715 --- src/lib/synergy/SubscriptionKey.h | 2 ++ src/lib/synergy/SubscriptionManager.cpp | 10 ++++++---- src/lib/synergy/SubscriptionManager.h | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lib/synergy/SubscriptionKey.h b/src/lib/synergy/SubscriptionKey.h index 0d65a17c..28744fed 100644 --- a/src/lib/synergy/SubscriptionKey.h +++ b/src/lib/synergy/SubscriptionKey.h @@ -22,6 +22,8 @@ struct SubscriptionKey { String m_name; String m_type; + String m_email; + String m_company; int m_userLimit; int m_warnTime; int m_expireTime; diff --git a/src/lib/synergy/SubscriptionManager.cpp b/src/lib/synergy/SubscriptionManager.cpp index ecc272c3..a657a21e 100644 --- a/src/lib/synergy/SubscriptionManager.cpp +++ b/src/lib/synergy/SubscriptionManager.cpp @@ -140,14 +140,16 @@ SubscriptionManager::parsePlainSerial(const String& plainText, SubscriptionKey& pos += 1; } - // e.g.: {v1;trial;Bob;1;1398297600;1398384000} - if ((parts.size() == 6) + // e.g.: {v1;trial;Bob;1;email;company name;1398297600;1398384000} + if ((parts.size() == 8) && (parts.at(0).find("v1") != String::npos)) { key.m_type = parts.at(1); key.m_name = parts.at(2); sscanf(parts.at(3).c_str(), "%d", &key.m_userLimit); - sscanf(parts.at(4).c_str(), "%d", &key.m_warnTime); - sscanf(parts.at(5).c_str(), "%d", &key.m_expireTime); + key.m_email = parts.at(4); + key.m_company = parts.at(5); + sscanf(parts.at(6).c_str(), "%d", &key.m_warnTime); + sscanf(parts.at(7).c_str(), "%d", &key.m_expireTime); // TODO: use Arch time if (time(0) > key.m_expireTime && diff --git a/src/lib/synergy/SubscriptionManager.h b/src/lib/synergy/SubscriptionManager.h index 2817f768..fb52701b 100644 --- a/src/lib/synergy/SubscriptionManager.h +++ b/src/lib/synergy/SubscriptionManager.h @@ -37,13 +37,14 @@ public: private: FRIEND_TEST(SubscriptionTests, decode_invalidLength_throwException); - FRIEND_TEST(SubscriptionTests, decode_unrecognizedDigit_throwException); FRIEND_TEST(SubscriptionTests, decode_invalidSerial_outputPlainText); + FRIEND_TEST(SubscriptionTests, decode_unrecognizedDigit_throwException); FRIEND_TEST(SubscriptionTests, parsePlainSerial_noParity_throwException); FRIEND_TEST(SubscriptionTests, parsePlainSerial_invalidSerial_throwException); FRIEND_TEST(SubscriptionTests, parsePlainSerial_validSerial_validSubscriptionKey); FRIEND_TEST(SubscriptionTests, parsePlainSerial_expiredTrialSerial_throwException); FRIEND_TEST(SubscriptionTests, parsePlainSerial_expiredBasicSerial_validSubscriptionKey); + FRIEND_TEST(SubscriptionTests, parsePlainSerial_validSerialWithoutCompany_validSubscriptionKey); private: String decode(const String& input);