Merge pull request #2047 from RealKindOne/fix-listsockets
listsockets: Fix 1970s date bug.
This commit is contained in:
2 files changed
+30
-3
No files matched your search
+15
-3
@@ -153,9 +153,21 @@ class CListSockets : public CModule {
|
|||||||
|
|
||||||
CString GetCreatedTime(const Csock* pSocket) {
|
CString GetCreatedTime(const Csock* pSocket) {
|
||||||
unsigned long long iStartTime = pSocket->GetStartTime();
|
unsigned long long iStartTime = pSocket->GetStartTime();
|
||||||
timeval tv;
|
unsigned long long iNow = CUtils::GetMillTime();
|
||||||
tv.tv_sec = iStartTime / 1000;
|
|
||||||
tv.tv_usec = iStartTime % 1000 * 1000;
|
// TODO This code would look simpler with std::chrono instead.
|
||||||
|
// Especially if socket API is changed to use that.
|
||||||
|
timeval tv = CUtils::GetTime();
|
||||||
|
unsigned long long iAgeUs = (iNow - iStartTime) * 1000;
|
||||||
|
|
||||||
|
tv.tv_sec -= iAgeUs / 1000000;
|
||||||
|
long long usec = tv.tv_usec - (long long)(iAgeUs % 1000000);
|
||||||
|
if (usec < 0) {
|
||||||
|
tv.tv_sec--;
|
||||||
|
usec += 1000000;
|
||||||
|
}
|
||||||
|
tv.tv_usec = usec;
|
||||||
|
|
||||||
return CUtils::FormatTime(tv, "%Y-%m-%d %H:%M:%S.%f",
|
return CUtils::FormatTime(tv, "%Y-%m-%d %H:%M:%S.%f",
|
||||||
GetUser()->GetTimezone());
|
GetUser()->GetTimezone());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1214,5 +1214,20 @@ TEST_F(ZNCTest, AwayStoreModule) {
|
|||||||
// End 'away' bug test
|
// End 'away' bug test
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://github.com/znc/znc/issues/1910
|
||||||
|
TEST_F(ZNCTest, ListSocketsModule) {
|
||||||
|
auto znc = Run();
|
||||||
|
auto ircd = ConnectIRCd();
|
||||||
|
auto client = LoginClient();
|
||||||
|
client.Write("znc loadmod listsockets");
|
||||||
|
client.ReadUntil("Loaded module");
|
||||||
|
client.Write("PRIVMSG *listsockets :list");
|
||||||
|
int year = QDate::currentDate().year();
|
||||||
|
ASSERT_THAT(client.ReadRemainder().toStdString(),
|
||||||
|
AnyOf(HasSubstr(std::to_string(year - 1) + "-"),
|
||||||
|
HasSubstr(std::to_string(year) + "-"),
|
||||||
|
HasSubstr(std::to_string(year + 1) + "-")));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace znc_inttest
|
} // namespace znc_inttest
|
||||||
Reference in new issue
Block a user