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) {