summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/NetClientConfig.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'StarsEx/NetClientConfig.cpp')
-rw-r--r--StarsEx/NetClientConfig.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/StarsEx/NetClientConfig.cpp b/StarsEx/NetClientConfig.cpp
index 69dda99..061ae89 100644
--- a/StarsEx/NetClientConfig.cpp
+++ b/StarsEx/NetClientConfig.cpp
@@ -62,7 +62,7 @@ void
NetClientConfig::AddServer(const char* name, const char* addr, WORD port, const char* pass, bool save)
{
if (!addr || !*addr || port < 1024 || port > 48000)
- return;
+ return;
char buffer[1024];
if (name && *name)
@@ -87,6 +87,31 @@ NetClientConfig::AddServer(const char* name, const char* addr, WORD port, const
}
void
+NetClientConfig::UpdateServer(int index, const char* name, const char* addr, WORD port, const char* pass)
+{
+ if (index < 0 || index >= servers.size() || !addr || !*addr || port < 1024 || port > 48000)
+ return;
+
+ char buffer[1024];
+ if (name && *name)
+ strcpy_s(buffer, name);
+ else
+ sprintf_s(buffer, "%s:%d", addr, port);
+
+ auto* server = servers[index];
+ server->name = buffer;
+ server->hostname = addr;
+ server->addr = NetAddr(addr, port);
+ server->port = port;
+ server->password = pass;
+
+ if (server->addr.IPAddr() == 0) {
+ Print("NetClientConfig::UpdateServer(%d, %s, %s, %d) failed to resolve IP Addr\n",
+ index, name, addr, port);
+ }
+}
+
+void
NetClientConfig::DelServer(int index)
{
if (index >= 0 && index < servers.size()) {