mirror of
https://github.com/znc/znc.git
synced 2026-08-07 01:13:25 +02:00
Merge commit 'refs/pull/422/head' of github.com:znc/znc
This commit is contained in:
@@ -482,11 +482,12 @@ void CClient::UserCommand(CString& sLine) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_pUser->AddNetwork(sNetwork)) {
|
||||
CString sNetworkAddError;
|
||||
if (m_pUser->AddNetwork(sNetwork, sNetworkAddError)) {
|
||||
PutStatus("Network added. Use /znc JumpNetwork " + sNetwork + ", or connect to ZNC with username " + m_pUser->GetUserName() + "/" + sNetwork + " (instead of just " + m_pUser->GetUserName() + ") to connect to it.");
|
||||
} else {
|
||||
PutStatus("Unable to add that network");
|
||||
PutStatus("Perhaps that network is already added");
|
||||
PutStatus(sNetworkAddError);
|
||||
}
|
||||
} else if (sCommand.Equals("DELNETWORK")) {
|
||||
CString sNetwork = sLine.Token(1);
|
||||
@@ -614,10 +615,11 @@ void CClient::UserCommand(CString& sLine) {
|
||||
fOldNVFile.Copy(sNewModPath + "/.registry");
|
||||
}
|
||||
|
||||
CIRCNetwork* pNewNetwork = pNewUser->AddNetwork(sNewNetwork);
|
||||
CString sNetworkAddError;
|
||||
CIRCNetwork* pNewNetwork = pNewUser->AddNetwork(sNewNetwork, sNetworkAddError);
|
||||
|
||||
if (!pNewNetwork) {
|
||||
PutStatus("Error adding network.");
|
||||
PutStatus("Error adding network:" + sNetworkAddError);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -600,6 +600,8 @@ CModule::EModRet CModule::OnPrivNotice(CNick& Nick, CString& sMessage) { return
|
||||
CModule::EModRet CModule::OnChanNotice(CNick& Nick, CChan& Channel, CString& sMessage) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnTopic(CNick& Nick, CChan& Channel, CString& sTopic) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnTimerAutoJoin(CChan& Channel) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnAddNetwork(CIRCNetwork& Network, CString& sErrorRet) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnDeleteNetwork(CIRCNetwork& Network) { return CONTINUE; }
|
||||
|
||||
bool CModule::OnServerCapAvailable(const CString& sCap) { return false; }
|
||||
void CModule::OnServerCapResult(const CString& sCap, bool bSuccess) {}
|
||||
@@ -758,6 +760,8 @@ bool CModules::OnPrivNotice(CNick& Nick, CString& sMessage) { MODHALTCHK(OnPrivN
|
||||
bool CModules::OnChanNotice(CNick& Nick, CChan& Channel, CString& sMessage) { MODHALTCHK(OnChanNotice(Nick, Channel, sMessage)); }
|
||||
bool CModules::OnTopic(CNick& Nick, CChan& Channel, CString& sTopic) { MODHALTCHK(OnTopic(Nick, Channel, sTopic)); }
|
||||
bool CModules::OnTimerAutoJoin(CChan& Channel) { MODHALTCHK(OnTimerAutoJoin(Channel)); }
|
||||
bool CModules::OnAddNetwork(CIRCNetwork& Network, CString& sErrorRet) { MODHALTCHK(OnAddNetwork(Network, sErrorRet)); }
|
||||
bool CModules::OnDeleteNetwork(CIRCNetwork& Network) { MODHALTCHK(OnDeleteNetwork(Network)); }
|
||||
bool CModules::OnStatusCommand(CString& sCommand) { MODHALTCHK(OnStatusCommand(sCommand)); }
|
||||
bool CModules::OnModCommand(const CString& sCommand) { MODUNLOADCHK(OnModCommand(sCommand)); return false; }
|
||||
bool CModules::OnModNotice(const CString& sMessage) { MODUNLOADCHK(OnModNotice(sMessage)); return false; }
|
||||
|
||||
+21
-5
@@ -357,7 +357,8 @@ 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("default");
|
||||
if (!pNetwork) {
|
||||
pNetwork = AddNetwork("default");
|
||||
CString sErrorDummy;
|
||||
pNetwork = AddNetwork("default", sErrorDummy);
|
||||
}
|
||||
|
||||
if (pNetwork) {
|
||||
@@ -459,12 +460,23 @@ bool CUser::ParseConfig(CConfig* pConfig, CString& sError) {
|
||||
return true;
|
||||
}
|
||||
|
||||
CIRCNetwork* CUser::AddNetwork(const CString &sNetwork) {
|
||||
CIRCNetwork* CUser::AddNetwork(const CString &sNetwork, CString& sErrorRet) {
|
||||
if (!CIRCNetwork::IsValidNetwork(sNetwork) || FindNetwork(sNetwork)) {
|
||||
sErrorRet = "Network [" + sNetwork.Token(0) + "] already exists";
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return new CIRCNetwork(this, sNetwork);
|
||||
CIRCNetwork* pNetwork = new CIRCNetwork(this, sNetwork);
|
||||
|
||||
bool bCancel = false;
|
||||
USERMODULECALL(OnAddNetwork(*pNetwork, sErrorRet), this, NULL, &bCancel);
|
||||
if(bCancel) {
|
||||
RemoveNetwork(pNetwork);
|
||||
delete pNetwork;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return pNetwork;
|
||||
}
|
||||
|
||||
bool CUser::AddNetwork(CIRCNetwork *pNetwork) {
|
||||
@@ -490,8 +502,12 @@ bool CUser::DeleteNetwork(const CString& sNetwork) {
|
||||
CIRCNetwork *pNetwork = FindNetwork(sNetwork);
|
||||
|
||||
if (pNetwork) {
|
||||
delete pNetwork;
|
||||
return true;
|
||||
bool bCancel = false;
|
||||
USERMODULECALL(OnDeleteNetwork(*pNetwork), this, NULL, &bCancel);
|
||||
if (!bCancel) {
|
||||
delete pNetwork;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user