mirror of
https://github.com/znc/znc.git
synced 2026-05-05 13:02:31 +02:00
Receiving DCC transfers fail with certain iroffer daemons. The bouncedcc module ignores file name quotes sent by the server (e.g. when the file name contains spaces) and consequently parses the DCC parameters incorrectly.
Fixes #289
This commit is contained in:
@@ -160,11 +160,11 @@ public:
|
||||
|
||||
virtual EModRet OnUserCTCP(CString& sTarget, CString& sMessage) {
|
||||
if (sMessage.Equals("DCC ", false, 4)) {
|
||||
CString sType = sMessage.Token(1);
|
||||
CString sFile = sMessage.Token(2);
|
||||
unsigned long uLongIP = sMessage.Token(3).ToULong();
|
||||
unsigned short uPort = sMessage.Token(4).ToUShort();
|
||||
unsigned long uFileSize = sMessage.Token(5).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()) {
|
||||
@@ -215,11 +215,11 @@ public:
|
||||
virtual EModRet OnPrivCTCP(CNick& Nick, CString& sMessage) {
|
||||
if (sMessage.Equals("DCC ", false, 4) && m_pNetwork->IsUserAttached()) {
|
||||
// DCC CHAT chat 2453612361 44592
|
||||
CString sType = sMessage.Token(1);
|
||||
CString sFile = sMessage.Token(2);
|
||||
unsigned long uLongIP = sMessage.Token(3).ToULong();
|
||||
unsigned short uPort = sMessage.Token(4).ToUShort();
|
||||
unsigned long uFileSize = sMessage.Token(5).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());
|
||||
|
||||
Reference in New Issue
Block a user