diff --git a/Documentation/OpenRGB SDK Wireshark Dissector.lua b/Documentation/OpenRGB SDK Wireshark Dissector.lua index 3c70a4e7f..e0333b296 100644 --- a/Documentation/OpenRGB SDK Wireshark Dissector.lua +++ b/Documentation/OpenRGB SDK Wireshark Dissector.lua @@ -233,7 +233,7 @@ logmanager_set_log_level_log_level = ProtoField.uint32("openrgb logmanager_logged_entry_data_size = ProtoField.uint32("openrgb.data_size", "data_size", base.DEC) logmanager_logged_entry_log_level = ProtoField.uint32("openrgb.log_level", "log_level", base.DEC) logmanager_logged_entry_line = ProtoField.uint32("openrgb.line", "line", base.DEC) -logmanager_logged_entry_timestamp = ProtoField.uint64("openrgb.timestamp", "timestamp", base.DEC) +logmanager_logged_entry_timestamp = ProtoField.uint32("openrgb.timestamp", "timestamp", base.DEC) logmanager_logged_entry_filename_size = ProtoField.uint16("openrgb.filename_size", "filename_size", base.DEC) logmanager_logged_entry_filename = ProtoField.string("openrgb.filename", "filename", base.STRING) logmanager_logged_entry_text_size = ProtoField.uint16("openrgb.text_size", "text_size", base.DEC) diff --git a/Documentation/OpenRGBSDK.md b/Documentation/OpenRGBSDK.md index d7df503f5..a8995efe2 100644 --- a/Documentation/OpenRGBSDK.md +++ b/Documentation/OpenRGBSDK.md @@ -769,7 +769,7 @@ The server uses this ID to forward a LogManager log entry to the client. The fo | 4 | unsigned int | data_size | 6 | Size of all data in packet | | 4 | unsigned int | log_level | 6 | Log level value | | 4 | unsigned int | line | 6 | Line number of log entry | -| 8 | unsigned long long | timestamp | 6 | Timestamp of log entry | +| 4 | unsigned int | timestamp | 6 | Timestamp of log entry | | 2 | unsigned short | filename_size | 6 | Length of filename string, including null termination | | filename_size | char[filename_size] | filename | 6 | Filename string value, including null termination | | 2 | unsigned short | text_size | 6 | Length of text string, including null termination | diff --git a/NetworkServer.cpp b/NetworkServer.cpp index 63da31fb9..8f96b14ef 100644 --- a/NetworkServer.cpp +++ b/NetworkServer.cpp @@ -2139,6 +2139,7 @@ NetPacketStatus NetworkServer::ProcessRequest_LogManager_GetLogBuffer(NetworkCli data_size += sizeof(data_size); data_size += sizeof(logged_entry->level); data_size += sizeof(logged_entry->line); + data_size += sizeof(logged_entry->timestamp); data_size += sizeof(filename_size); data_size += filename_size; data_size += sizeof(text_size); @@ -2156,6 +2157,9 @@ NetPacketStatus NetworkServer::ProcessRequest_LogManager_GetLogBuffer(NetworkCli memcpy(data_ptr, &logged_entry->line, sizeof(logged_entry->line)); data_ptr += sizeof(logged_entry->line); + memcpy(data_ptr, &logged_entry->timestamp, sizeof(logged_entry->timestamp)); + data_ptr += sizeof(logged_entry->timestamp); + memcpy(data_ptr, &filename_size, sizeof(filename_size)); data_ptr += sizeof(filename_size); diff --git a/ResourceManager.cpp b/ResourceManager.cpp index 939ffc788..bcaea1a9d 100644 --- a/ResourceManager.cpp +++ b/ResourceManager.cpp @@ -1199,17 +1199,6 @@ bool ResourceManager::AttemptLocalConnection() } std::this_thread::sleep_for(5ms); } - - /*-------------------------------------------------*\ - | If local client, set local log level to server's | - | log level and download log entries | - \*-------------------------------------------------*/ - if(auto_connection_client->GetLocal() && auto_connection_client->GetSupportsLogManagerAPI()) - { - unsigned int log_level = auto_connection_client->LogManager_GetLogLevel(); - LogManager::get()->SetLogLevel(log_level, true); - auto_connection_client->LogManager_GetLogBuffer(); - } } return success; @@ -1247,6 +1236,35 @@ void ResourceManager::Initialize(bool tryConnect, bool detectDevices, bool start auto_connection_active = true; detection_enabled = false; + /*---------------------------------------------*\ + | If local client, set local log level to | + | server's log level and download log entries | + \*---------------------------------------------*/ + if(auto_connection_client->GetLocal() && auto_connection_client->GetSupportsLogManagerAPI()) + { + /*-----------------------------------------*\ + | Reconfigure local log manager using | + | remote settings | + \*-----------------------------------------*/ + LogManager::get()->Configure(settings_manager->GetSettings("LogManager"), GetConfigurationDirectory()); + + /*-----------------------------------------*\ + | Update local log manager log level from | + | the server's log level | + \*-----------------------------------------*/ + unsigned int log_level = auto_connection_client->LogManager_GetLogLevel(); + LogManager::get()->SetLogLevel(log_level, true); + + /*-----------------------------------------*\ + | Download the server's buffered log | + | entries | + \*-----------------------------------------*/ + auto_connection_client->LogManager_GetLogBuffer(); + } + + /*---------------------------------------------*\ + | Update the profile list | + \*---------------------------------------------*/ profile_manager->UpdateProfileList(); }