diff --git a/TGS.Interface/IServer.cs b/TGS.Interface/IServer.cs
index a81c6de744..e9234f9a58 100644
--- a/TGS.Interface/IServer.cs
+++ b/TGS.Interface/IServer.cs
@@ -35,5 +35,10 @@ namespace TGS.Interface
/// The name of the to get
/// The named on success, on failure
IInstance GetInstance(string name);
+
+ ///
+ /// Rebuilds the internal cached list
+ ///
+ void RebuildInstanceList();
}
}
diff --git a/TGS.Interface/Server.cs b/TGS.Interface/Server.cs
index d934528832..d5c953ee1f 100644
--- a/TGS.Interface/Server.cs
+++ b/TGS.Interface/Server.cs
@@ -15,7 +15,7 @@ namespace TGS.Interface
{
lock (this)
if (knownInstances == null)
- knownInstances = serverInterface.GetComponent(null).ListInstances();
+ RebuildInstanceList();
foreach (var I in knownInstances)
{
IInstance nextInstance;
@@ -92,5 +92,12 @@ namespace TGS.Interface
{
return new Instance(serverInterface, new InstanceMetadata { Name = name, Enabled = false });
}
+
+ ///
+ public void RebuildInstanceList()
+ {
+ lock (this)
+ knownInstances = serverInterface.GetComponent(null).ListInstances();
+ }
}
}