diff --git a/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.cpp b/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.cpp
index 3362f4b248edb1d846ce3cfe53e1e7554954bca4..0933c160937347d9614ef28ff67f86612c0c8f05 100644
--- a/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.cpp
+++ b/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.cpp
@@ -410,7 +410,13 @@ void ChChainNetSrvVpn::onPktIn(DapChannelPacket* pkt)
     delete pkt;
 }
 
-
+void ChChainNetSrvVpn::saveCurrentServer(const DapServerInfoList &nodelist)
+{
+    for(auto server : nodelist) {
+        if (server.address == upstreamAddress() && server.name != "Auto")
+            m_currentServer = server;
+    }
+}
 
 
 
diff --git a/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.h b/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.h
index 9802fa59edffff91d826a49c3f903116c01a8366..34a54eef64a60633bfe7f6eca6ba9d4d627183ef 100644
--- a/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.h
+++ b/stream/ch/chain/net/srv/vpn/DapStreamChChainNetSrvVpn.h
@@ -89,6 +89,9 @@ namespace Dap {
             // METHODS
             QString m_addr, m_gw;
             QTcpServer *m_fdListener;
+
+            DapServerInfo m_currentServer;
+
         private slots:
             void onFwServerConnected();
             void onFwClientReadyRead();
@@ -115,6 +118,7 @@ namespace Dap {
             }
 
             QString upstreamAddress(){return tun->upstreamAddress();}
+            DapServerInfo currentServer(){return m_currentServer;}
 
             void tunCreate (const QString& a_addr, const QString& a_gw);
             void workerStart(int a_tunSocket);
@@ -145,6 +149,8 @@ namespace Dap {
             void tunCreate(); // create with all predefined before values
             void tunDestroy();
             void tunStandby();
+
+            void saveCurrentServer(const DapServerInfoList &nodelist);
         };
 
     }