Просмотр исходного кода

Bug 2141: Turned-off keepaliaves are not propagated to PuTTY

https://winscp.net/tracker/2141

Source commit: 45ff8a28bc938544ce22ef994da54b293a1a5aed
Martin Prikryl 3 лет назад
Родитель
Сommit
01a5491282
1 измененных файлов с 11 добавлено и 2 удалено
  1. 11 2
      source/core/SessionData.cpp

+ 11 - 2
source/core/SessionData.cpp

@@ -1036,8 +1036,17 @@ void __fastcall TSessionData::DoSave(THierarchicalStorage * Storage,
 
 
   WRITE_DATA(String, HostName);
   WRITE_DATA(String, HostName);
   WRITE_DATA(Integer, PortNumber);
   WRITE_DATA(Integer, PortNumber);
-  WRITE_DATA_EX(Integer, L"PingInterval", PingInterval / SecsPerMin, );
-  WRITE_DATA_EX(Integer, L"PingIntervalSecs", PingInterval % SecsPerMin, );
+  if ((PingType == ptOff) && PuttyExport)
+  {
+    // Deleting would do too
+    Storage->WriteInteger(L"PingInterval", 0);
+    Storage->WriteInteger(L"PingIntervalSecs", 0);
+  }
+  else
+  {
+    WRITE_DATA_EX(Integer, L"PingInterval", PingInterval / SecsPerMin, );
+    WRITE_DATA_EX(Integer, L"PingIntervalSecs", PingInterval % SecsPerMin, );
+  }
   Storage->DeleteValue(L"PingIntervalSec"); // obsolete
   Storage->DeleteValue(L"PingIntervalSec"); // obsolete
   WRITE_DATA(Integer, PingType);
   WRITE_DATA(Integer, PingType);
   WRITE_DATA(Integer, Timeout);
   WRITE_DATA(Integer, Timeout);