From fa287ef791ab99805ffdd3d9c3a70f9e7ebc3cb7 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Fri, 27 Jan 2012 22:51:09 +0700 Subject: [PATCH] Make networks a bit less confusing. If user is connected without network, try "default" network first, if it exists. If not, try "user" network. If it doesn't exist too, just use the first one. Also configs converted from old configs have "default" network instead of "user" one. --- src/Client.cpp | 10 +++++++--- src/User.cpp | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Client.cpp b/src/Client.cpp index 6148938d..3dcc72d0 100644 --- a/src/Client.cpp +++ b/src/Client.cpp @@ -628,9 +628,13 @@ void CClient::AcceptLogin(CUser& User) { if (!m_pNetwork) { PutStatus("Network (" + m_sNetwork + ") doesn't exist."); } - } else { - // If a user didn't supply a network, and they have a network called "user" then automatically use this network. - m_pNetwork = m_pUser->FindNetwork("user"); + } else if (!m_pUser->GetNetworks().empty()) { + // If a user didn't supply a network, and they have a network called "default" then automatically use this network. + m_pNetwork = m_pUser->FindNetwork("default"); + // If no "default" network, try "user" network. It's for compatibility with early network stuff in ZNC, which converted old configs to "user" network. + if (!m_pNetwork) m_pNetwork = m_pUser->FindNetwork("user"); + // Otherwise, just try any network of the user. + if (!m_pNetwork) m_pNetwork = *m_pUser->GetNetworks().begin(); } SetNetwork(m_pNetwork, false); diff --git a/src/User.cpp b/src/User.cpp index bdeb9368..cdf1c8b0 100644 --- a/src/User.cpp +++ b/src/User.cpp @@ -331,9 +331,9 @@ bool CUser::ParseConfig(CConfig* pConfig, CString& sError) { } if (pConfig->FindStringVector("server", vsList, false) || pConfig->FindStringVector("chan", vsList, false) || pConfig->FindSubConfig("chan", subConf, false)) { - CIRCNetwork *pNetwork = FindNetwork("user"); + CIRCNetwork *pNetwork = FindNetwork("default"); if (!pNetwork) { - pNetwork = AddNetwork("user"); + pNetwork = AddNetwork("default"); } if (pNetwork) {