mirror of
https://github.com/znc/znc.git
synced 2026-08-07 01:13:25 +02:00
Add clang-format configuration.
For now, it uses tabs like before, to make the diff easier to read/check. One of following commits will switch it to spaces.
This commit is contained in:
+169
-87
@@ -22,16 +22,22 @@ using std::set;
|
||||
class CBounceDCCMod;
|
||||
|
||||
class CDCCBounce : public CSocket {
|
||||
public:
|
||||
public:
|
||||
CDCCBounce(CBounceDCCMod* pMod, unsigned long uLongIP, unsigned short uPort,
|
||||
const CString& sFileName, const CString& sRemoteNick,
|
||||
const CString& sRemoteIP, bool bIsChat = false);
|
||||
CDCCBounce(CBounceDCCMod* pMod, const CString& sHostname, unsigned short uPort,
|
||||
const CString& sRemoteNick, const CString& sRemoteIP,
|
||||
const CString& sFileName, int iTimeout = 60, bool bIsChat = false);
|
||||
const CString& sFileName, const CString& sRemoteNick,
|
||||
const CString& sRemoteIP, bool bIsChat = false);
|
||||
CDCCBounce(CBounceDCCMod* pMod, const CString& sHostname,
|
||||
unsigned short uPort, const CString& sRemoteNick,
|
||||
const CString& sRemoteIP, const CString& sFileName,
|
||||
int iTimeout = 60, bool bIsChat = false);
|
||||
virtual ~CDCCBounce();
|
||||
|
||||
static unsigned short DCCRequest(const CString& sNick, unsigned long uLongIP, unsigned short uPort, const CString& sFileName, bool bIsChat, CBounceDCCMod* pMod, const CString& sRemoteIP);
|
||||
static unsigned short DCCRequest(const CString& sNick,
|
||||
unsigned long uLongIP,
|
||||
unsigned short uPort,
|
||||
const CString& sFileName, bool bIsChat,
|
||||
CBounceDCCMod* pMod,
|
||||
const CString& sRemoteIP);
|
||||
|
||||
void ReadLine(const CString& sData) override;
|
||||
void ReadData(const char* data, size_t len) override;
|
||||
@@ -46,7 +52,9 @@ public:
|
||||
void Shutdown();
|
||||
void PutServ(const CString& sLine);
|
||||
void PutPeer(const CString& sLine);
|
||||
bool IsPeerConnected() { return (m_pPeer) ? m_pPeer->IsConnected() : false; }
|
||||
bool IsPeerConnected() {
|
||||
return (m_pPeer) ? m_pPeer->IsConnected() : false;
|
||||
}
|
||||
|
||||
// Setters
|
||||
void SetPeer(CDCCBounce* p) { m_pPeer = p; }
|
||||
@@ -64,21 +72,21 @@ public:
|
||||
bool IsRemote() { return m_bIsRemote; }
|
||||
bool IsChat() { return m_bIsChat; }
|
||||
// !Getters
|
||||
private:
|
||||
protected:
|
||||
CString m_sRemoteNick;
|
||||
CString m_sRemoteIP;
|
||||
CString m_sConnectIP;
|
||||
CString m_sLocalIP;
|
||||
CString m_sFileName;
|
||||
CBounceDCCMod* m_pModule;
|
||||
CDCCBounce* m_pPeer;
|
||||
unsigned short m_uRemotePort;
|
||||
bool m_bIsChat;
|
||||
bool m_bIsRemote;
|
||||
private:
|
||||
protected:
|
||||
CString m_sRemoteNick;
|
||||
CString m_sRemoteIP;
|
||||
CString m_sConnectIP;
|
||||
CString m_sLocalIP;
|
||||
CString m_sFileName;
|
||||
CBounceDCCMod* m_pModule;
|
||||
CDCCBounce* m_pPeer;
|
||||
unsigned short m_uRemotePort;
|
||||
bool m_bIsChat;
|
||||
bool m_bIsRemote;
|
||||
|
||||
static const unsigned int m_uiMaxDCCBuffer;
|
||||
static const unsigned int m_uiMinDCCBuffer;
|
||||
static const unsigned int m_uiMaxDCCBuffer;
|
||||
static const unsigned int m_uiMinDCCBuffer;
|
||||
};
|
||||
|
||||
// If we buffer more than this in memory, we will throttle the receiving side
|
||||
@@ -87,7 +95,7 @@ const unsigned int CDCCBounce::m_uiMaxDCCBuffer = 10 * 1024;
|
||||
const unsigned int CDCCBounce::m_uiMinDCCBuffer = 2 * 1024;
|
||||
|
||||
class CBounceDCCMod : public CModule {
|
||||
public:
|
||||
public:
|
||||
void ListDCCsCommand(const CString& sLine) {
|
||||
CTable Table;
|
||||
Table.AddColumn("Type");
|
||||
@@ -99,7 +107,7 @@ public:
|
||||
|
||||
set<CSocket*>::const_iterator it;
|
||||
for (it = BeginSockets(); it != EndSockets(); ++it) {
|
||||
CDCCBounce* pSock = (CDCCBounce*) *it;
|
||||
CDCCBounce* pSock = (CDCCBounce*)*it;
|
||||
CString sSockName = pSock->GetSockName();
|
||||
|
||||
if (!(pSock->IsRemote())) {
|
||||
@@ -142,29 +150,32 @@ public:
|
||||
|
||||
MODCONSTRUCTOR(CBounceDCCMod) {
|
||||
AddHelpCommand();
|
||||
AddCommand("ListDCCs", static_cast<CModCommand::ModCmdFunc>(&CBounceDCCMod::ListDCCsCommand),
|
||||
"", "List all active DCCs");
|
||||
AddCommand("UseClientIP", static_cast<CModCommand::ModCmdFunc>(&CBounceDCCMod::UseClientIPCommand),
|
||||
"<true|false>");
|
||||
AddCommand("ListDCCs", static_cast<CModCommand::ModCmdFunc>(
|
||||
&CBounceDCCMod::ListDCCsCommand),
|
||||
"", "List all active DCCs");
|
||||
AddCommand("UseClientIP", static_cast<CModCommand::ModCmdFunc>(
|
||||
&CBounceDCCMod::UseClientIPCommand),
|
||||
"<true|false>");
|
||||
}
|
||||
|
||||
virtual ~CBounceDCCMod() {}
|
||||
|
||||
CString GetLocalDCCIP() {
|
||||
return GetUser()->GetLocalDCCIP();
|
||||
}
|
||||
CString GetLocalDCCIP() { return GetUser()->GetLocalDCCIP(); }
|
||||
|
||||
bool UseClientIP() {
|
||||
return GetNV("UseClientIP").ToBool();
|
||||
}
|
||||
bool UseClientIP() { return GetNV("UseClientIP").ToBool(); }
|
||||
|
||||
EModRet OnUserCTCP(CString& sTarget, CString& sMessage) override {
|
||||
if (sMessage.StartsWith("DCC ")) {
|
||||
CString sType = sMessage.Token(1, false, " ", false, "\"", "\"", true);
|
||||
CString sFile = sMessage.Token(2, false, " ", false, "\"", "\"", false);
|
||||
unsigned long uLongIP = sMessage.Token(3, false, " ", false, "\"", "\"", true).ToULong();
|
||||
unsigned short uPort = sMessage.Token(4, false, " ", false, "\"", "\"", true).ToUShort();
|
||||
unsigned long uFileSize = sMessage.Token(5, false, " ", false, "\"", "\"", true).ToULong();
|
||||
CString sType =
|
||||
sMessage.Token(1, false, " ", false, "\"", "\"", true);
|
||||
CString sFile =
|
||||
sMessage.Token(2, false, " ", false, "\"", "\"", false);
|
||||
unsigned long uLongIP = sMessage.Token(3, false, " ", false, "\"",
|
||||
"\"", true).ToULong();
|
||||
unsigned short uPort = sMessage.Token(4, false, " ", false, "\"",
|
||||
"\"", true).ToUShort();
|
||||
unsigned long uFileSize = sMessage.Token(5, false, " ", false, "\"",
|
||||
"\"", true).ToULong();
|
||||
CString sIP = GetLocalDCCIP();
|
||||
|
||||
if (!UseClientIP()) {
|
||||
@@ -172,15 +183,22 @@ public:
|
||||
}
|
||||
|
||||
if (sType.Equals("CHAT")) {
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(sTarget, uLongIP, uPort, "", true, this, "");
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(
|
||||
sTarget, uLongIP, uPort, "", true, this, "");
|
||||
if (uBNCPort) {
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC CHAT chat " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + "\001");
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC CHAT chat " +
|
||||
CString(CUtils::GetLongIP(sIP)) + " " +
|
||||
CString(uBNCPort) + "\001");
|
||||
}
|
||||
} else if (sType.Equals("SEND")) {
|
||||
// DCC SEND readme.txt 403120438 5550 1104
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(sTarget, uLongIP, uPort, sFile, false, this, "");
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(
|
||||
sTarget, uLongIP, uPort, sFile, false, this, "");
|
||||
if (uBNCPort) {
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC SEND " + sFile + " " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + " " + CString(uFileSize) + "\001");
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC SEND " + sFile +
|
||||
" " + CString(CUtils::GetLongIP(sIP)) + " " +
|
||||
CString(uBNCPort) + " " + CString(uFileSize) +
|
||||
"\001");
|
||||
}
|
||||
} else if (sType.Equals("RESUME")) {
|
||||
// PRIVMSG user :DCC RESUME "znc.o" 58810 151552
|
||||
@@ -188,20 +206,27 @@ public:
|
||||
|
||||
set<CSocket*>::const_iterator it;
|
||||
for (it = BeginSockets(); it != EndSockets(); ++it) {
|
||||
CDCCBounce* pSock = (CDCCBounce*) *it;
|
||||
CDCCBounce* pSock = (CDCCBounce*)*it;
|
||||
|
||||
if (pSock->GetLocalPort() == uResumePort) {
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetUserPort()) + " " + sMessage.Token(4) + "\001");
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType +
|
||||
" " + sFile + " " +
|
||||
CString(pSock->GetUserPort()) + " " +
|
||||
sMessage.Token(4) + "\001");
|
||||
}
|
||||
}
|
||||
} else if (sType.Equals("ACCEPT")) {
|
||||
// Need to lookup the connection by port, filter the port, and forward to the user
|
||||
// Need to lookup the connection by port, filter the port, and
|
||||
// forward to the user
|
||||
|
||||
set<CSocket*>::const_iterator it;
|
||||
for (it = BeginSockets(); it != EndSockets(); ++it) {
|
||||
CDCCBounce* pSock = (CDCCBounce*) *it;
|
||||
CDCCBounce* pSock = (CDCCBounce*)*it;
|
||||
if (pSock->GetUserPort() == sMessage.Token(3).ToUShort()) {
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetLocalPort()) + " " + sMessage.Token(4) + "\001");
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType +
|
||||
" " + sFile + " " +
|
||||
CString(pSock->GetLocalPort()) + " " +
|
||||
sMessage.Token(4) + "\001");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -216,46 +241,72 @@ public:
|
||||
CIRCNetwork* pNetwork = GetNetwork();
|
||||
if (sMessage.StartsWith("DCC ") && pNetwork->IsUserAttached()) {
|
||||
// DCC CHAT chat 2453612361 44592
|
||||
CString sType = sMessage.Token(1, false, " ", false, "\"", "\"", true);
|
||||
CString sFile = sMessage.Token(2, false, " ", false, "\"", "\"", false);
|
||||
unsigned long uLongIP = sMessage.Token(3, false, " ", false, "\"", "\"", true).ToULong();
|
||||
unsigned short uPort = sMessage.Token(4, false, " ", false, "\"", "\"", true).ToUShort();
|
||||
unsigned long uFileSize = sMessage.Token(5, false, " ", false, "\"", "\"", true).ToULong();
|
||||
CString sType =
|
||||
sMessage.Token(1, false, " ", false, "\"", "\"", true);
|
||||
CString sFile =
|
||||
sMessage.Token(2, false, " ", false, "\"", "\"", false);
|
||||
unsigned long uLongIP = sMessage.Token(3, false, " ", false, "\"",
|
||||
"\"", true).ToULong();
|
||||
unsigned short uPort = sMessage.Token(4, false, " ", false, "\"",
|
||||
"\"", true).ToUShort();
|
||||
unsigned long uFileSize = sMessage.Token(5, false, " ", false, "\"",
|
||||
"\"", true).ToULong();
|
||||
|
||||
if (sType.Equals("CHAT")) {
|
||||
CNick FromNick(Nick.GetNickMask());
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(FromNick.GetNick(), uLongIP, uPort, "", true, this, CUtils::GetIP(uLongIP));
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(
|
||||
FromNick.GetNick(), uLongIP, uPort, "", true, this,
|
||||
CUtils::GetIP(uLongIP));
|
||||
if (uBNCPort) {
|
||||
CString sIP = GetLocalDCCIP();
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC CHAT chat " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + "\001");
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " +
|
||||
pNetwork->GetCurNick() + " :\001DCC CHAT chat " +
|
||||
CString(CUtils::GetLongIP(sIP)) + " " +
|
||||
CString(uBNCPort) + "\001");
|
||||
}
|
||||
} else if (sType.Equals("SEND")) {
|
||||
// DCC SEND readme.txt 403120438 5550 1104
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(Nick.GetNick(), uLongIP, uPort, sFile, false, this, CUtils::GetIP(uLongIP));
|
||||
unsigned short uBNCPort = CDCCBounce::DCCRequest(
|
||||
Nick.GetNick(), uLongIP, uPort, sFile, false, this,
|
||||
CUtils::GetIP(uLongIP));
|
||||
if (uBNCPort) {
|
||||
CString sIP = GetLocalDCCIP();
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC SEND " + sFile + " " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + " " + CString(uFileSize) + "\001");
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " +
|
||||
pNetwork->GetCurNick() + " :\001DCC SEND " + sFile +
|
||||
" " + CString(CUtils::GetLongIP(sIP)) + " " +
|
||||
CString(uBNCPort) + " " + CString(uFileSize) +
|
||||
"\001");
|
||||
}
|
||||
} else if (sType.Equals("RESUME")) {
|
||||
// Need to lookup the connection by port, filter the port, and forward to the user
|
||||
// Need to lookup the connection by port, filter the port, and
|
||||
// forward to the user
|
||||
unsigned short uResumePort = sMessage.Token(3).ToUShort();
|
||||
|
||||
set<CSocket*>::const_iterator it;
|
||||
for (it = BeginSockets(); it != EndSockets(); ++it) {
|
||||
CDCCBounce* pSock = (CDCCBounce*) *it;
|
||||
CDCCBounce* pSock = (CDCCBounce*)*it;
|
||||
|
||||
if (pSock->GetLocalPort() == uResumePort) {
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetUserPort()) + " " + sMessage.Token(4) + "\001");
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " +
|
||||
pNetwork->GetCurNick() + " :\001DCC " + sType +
|
||||
" " + sFile + " " +
|
||||
CString(pSock->GetUserPort()) + " " +
|
||||
sMessage.Token(4) + "\001");
|
||||
}
|
||||
}
|
||||
} else if (sType.Equals("ACCEPT")) {
|
||||
// Need to lookup the connection by port, filter the port, and forward to the user
|
||||
// Need to lookup the connection by port, filter the port, and
|
||||
// forward to the user
|
||||
set<CSocket*>::const_iterator it;
|
||||
for (it = BeginSockets(); it != EndSockets(); ++it) {
|
||||
CDCCBounce* pSock = (CDCCBounce*) *it;
|
||||
CDCCBounce* pSock = (CDCCBounce*)*it;
|
||||
|
||||
if (pSock->GetUserPort() == sMessage.Token(3).ToUShort()) {
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetLocalPort()) + " " + sMessage.Token(4) + "\001");
|
||||
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " +
|
||||
pNetwork->GetCurNick() + " :\001DCC " + sType +
|
||||
" " + sFile + " " +
|
||||
CString(pSock->GetLocalPort()) + " " +
|
||||
sMessage.Token(4) + "\001");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -267,9 +318,11 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
CDCCBounce::CDCCBounce(CBounceDCCMod* pMod, unsigned long uLongIP, unsigned short uPort,
|
||||
const CString& sFileName, const CString& sRemoteNick,
|
||||
const CString& sRemoteIP, bool bIsChat) : CSocket(pMod) {
|
||||
CDCCBounce::CDCCBounce(CBounceDCCMod* pMod, unsigned long uLongIP,
|
||||
unsigned short uPort, const CString& sFileName,
|
||||
const CString& sRemoteNick, const CString& sRemoteIP,
|
||||
bool bIsChat)
|
||||
: CSocket(pMod) {
|
||||
m_uRemotePort = uPort;
|
||||
m_sConnectIP = CUtils::GetIP(uLongIP);
|
||||
m_sRemoteIP = sRemoteIP;
|
||||
@@ -288,9 +341,11 @@ CDCCBounce::CDCCBounce(CBounceDCCMod* pMod, unsigned long uLongIP, unsigned shor
|
||||
}
|
||||
}
|
||||
|
||||
CDCCBounce::CDCCBounce(CBounceDCCMod* pMod, const CString& sHostname, unsigned short uPort,
|
||||
const CString& sRemoteNick, const CString& sRemoteIP, const CString& sFileName,
|
||||
int iTimeout, bool bIsChat) : CSocket(pMod, sHostname, uPort, iTimeout) {
|
||||
CDCCBounce::CDCCBounce(CBounceDCCMod* pMod, const CString& sHostname,
|
||||
unsigned short uPort, const CString& sRemoteNick,
|
||||
const CString& sRemoteIP, const CString& sFileName,
|
||||
int iTimeout, bool bIsChat)
|
||||
: CSocket(pMod, sHostname, uPort, iTimeout) {
|
||||
m_uRemotePort = 0;
|
||||
m_bIsChat = bIsChat;
|
||||
m_pModule = pMod;
|
||||
@@ -328,7 +383,8 @@ void CDCCBounce::ReachedMaxBuffer() {
|
||||
|
||||
CString sType = (m_bIsChat) ? "Chat" : "Xfer";
|
||||
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick + "): Too long line received");
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick +
|
||||
"): Too long line received");
|
||||
Close();
|
||||
}
|
||||
|
||||
@@ -340,14 +396,15 @@ void CDCCBounce::ReadData(const char* data, size_t len) {
|
||||
|
||||
if (BufLen >= m_uiMaxDCCBuffer) {
|
||||
DEBUG(GetSockName() << " The send buffer is over the "
|
||||
"limit (" << BufLen <<"), throttling");
|
||||
"limit (" << BufLen << "), throttling");
|
||||
PauseRead();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CDCCBounce::ReadPaused() {
|
||||
if (!m_pPeer || m_pPeer->GetInternalWriteBuffer().length() <= m_uiMinDCCBuffer)
|
||||
if (!m_pPeer ||
|
||||
m_pPeer->GetInternalWriteBuffer().length() <= m_uiMinDCCBuffer)
|
||||
UnPauseRead();
|
||||
}
|
||||
|
||||
@@ -363,9 +420,13 @@ void CDCCBounce::Timeout() {
|
||||
sHost = ".";
|
||||
}
|
||||
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick + "): Timeout while connecting" + sHost);
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick +
|
||||
"): Timeout while connecting" + sHost);
|
||||
} else {
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick + "): Timeout waiting for incoming connection [" + Csock::GetLocalIP() + ":" + CString(Csock::GetLocalPort()) + "]");
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick +
|
||||
"): Timeout waiting for incoming connection [" +
|
||||
Csock::GetLocalIP() + ":" +
|
||||
CString(Csock::GetLocalPort()) + "]");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -380,7 +441,8 @@ void CDCCBounce::ConnectionRefused() {
|
||||
sHost = ".";
|
||||
}
|
||||
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick + "): Connection Refused while connecting" + sHost);
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick +
|
||||
"): Connection Refused while connecting" + sHost);
|
||||
}
|
||||
|
||||
void CDCCBounce::SockError(int iErrno, const CString& sDescription) {
|
||||
@@ -393,9 +455,13 @@ void CDCCBounce::SockError(int iErrno, const CString& sDescription) {
|
||||
sHost = "[" + sHost + " " + CString(Csock::GetPort()) + "]";
|
||||
}
|
||||
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick + "): Socket error [" + sDescription + "]" + sHost);
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick +
|
||||
"): Socket error [" + sDescription + "]" + sHost);
|
||||
} else {
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick + "): Socket error [" + sDescription + "] [" + Csock::GetLocalIP() + ":" + CString(Csock::GetLocalPort()) + "]");
|
||||
m_pModule->PutModule("DCC " + sType + " Bounce (" + m_sRemoteNick +
|
||||
"): Socket error [" + sDescription + "] [" +
|
||||
Csock::GetLocalIP() + ":" +
|
||||
CString(Csock::GetLocalPort()) + "]");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -421,14 +487,21 @@ Csock* CDCCBounce::GetSockObj(const CString& sHost, unsigned short uPort) {
|
||||
m_sRemoteIP = sHost;
|
||||
}
|
||||
|
||||
CDCCBounce* pSock = new CDCCBounce(m_pModule, sHost, uPort, m_sRemoteNick, m_sRemoteIP, m_sFileName, m_bIsChat);
|
||||
CDCCBounce* pRemoteSock = new CDCCBounce(m_pModule, sHost, uPort, m_sRemoteNick, m_sRemoteIP, m_sFileName, m_bIsChat);
|
||||
CDCCBounce* pSock = new CDCCBounce(m_pModule, sHost, uPort, m_sRemoteNick,
|
||||
m_sRemoteIP, m_sFileName, m_bIsChat);
|
||||
CDCCBounce* pRemoteSock =
|
||||
new CDCCBounce(m_pModule, sHost, uPort, m_sRemoteNick, m_sRemoteIP,
|
||||
m_sFileName, m_bIsChat);
|
||||
pSock->SetPeer(pRemoteSock);
|
||||
pRemoteSock->SetPeer(pSock);
|
||||
pRemoteSock->SetRemote(true);
|
||||
pSock->SetRemote(false);
|
||||
|
||||
CZNC::Get().GetManager().Connect(m_sConnectIP, m_uRemotePort, "DCC::" + CString((m_bIsChat) ? "Chat" : "XFER") + "::Remote::" + m_sRemoteNick, 60, false, m_sLocalIP, pRemoteSock);
|
||||
CZNC::Get().GetManager().Connect(
|
||||
m_sConnectIP, m_uRemotePort,
|
||||
"DCC::" + CString((m_bIsChat) ? "Chat" : "XFER") + "::Remote::" +
|
||||
m_sRemoteNick,
|
||||
60, false, m_sLocalIP, pRemoteSock);
|
||||
|
||||
pSock->SetSockName(GetSockName());
|
||||
return pSock;
|
||||
@@ -447,17 +520,26 @@ void CDCCBounce::PutPeer(const CString& sLine) {
|
||||
}
|
||||
}
|
||||
|
||||
unsigned short CDCCBounce::DCCRequest(const CString& sNick, unsigned long uLongIP, unsigned short uPort, const CString& sFileName, bool bIsChat, CBounceDCCMod* pMod, const CString& sRemoteIP) {
|
||||
CDCCBounce* pDCCBounce = new CDCCBounce(pMod, uLongIP, uPort, sFileName, sNick, sRemoteIP, bIsChat);
|
||||
unsigned short uListenPort = CZNC::Get().GetManager().ListenRand("DCC::" + CString((bIsChat) ? "Chat" : "Xfer") + "::Local::" + sNick,
|
||||
pMod->GetLocalDCCIP(), false, SOMAXCONN, pDCCBounce, 120);
|
||||
unsigned short CDCCBounce::DCCRequest(const CString& sNick,
|
||||
unsigned long uLongIP,
|
||||
unsigned short uPort,
|
||||
const CString& sFileName, bool bIsChat,
|
||||
CBounceDCCMod* pMod,
|
||||
const CString& sRemoteIP) {
|
||||
CDCCBounce* pDCCBounce = new CDCCBounce(pMod, uLongIP, uPort, sFileName,
|
||||
sNick, sRemoteIP, bIsChat);
|
||||
unsigned short uListenPort = CZNC::Get().GetManager().ListenRand(
|
||||
"DCC::" + CString((bIsChat) ? "Chat" : "Xfer") + "::Local::" + sNick,
|
||||
pMod->GetLocalDCCIP(), false, SOMAXCONN, pDCCBounce, 120);
|
||||
|
||||
return uListenPort;
|
||||
}
|
||||
|
||||
template<> void TModInfo<CBounceDCCMod>(CModInfo& Info) {
|
||||
template <>
|
||||
void TModInfo<CBounceDCCMod>(CModInfo& Info) {
|
||||
Info.SetWikiPage("bouncedcc");
|
||||
}
|
||||
|
||||
USERMODULEDEFS(CBounceDCCMod, "Bounces DCC transfers through ZNC instead of sending them directly to the user. ")
|
||||
|
||||
USERMODULEDEFS(CBounceDCCMod,
|
||||
"Bounces DCC transfers through ZNC instead of sending them "
|
||||
"directly to the user. ")
|
||||
|
||||
Reference in New Issue
Block a user