Guest User

Untitled

a guest
Dec 19th, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 24.39 KB | None | 0 0
  1. Index: cmake/kvi_sysconfig.h.cmake
  2. ===================================================================
  3. --- cmake/kvi_sysconfig.h.cmake (revision 6406)
  4. +++ cmake/kvi_sysconfig.h.cmake (working copy)
  5. @@ -53,7 +53,7 @@
  6.  #cmakedefine COMPILE_DISABLE_DCC_VIDEO 1
  7.  #cmakedefine COMPILE_DISABLE_OGG_THEORA 1
  8.  
  9. -#cmakedefine COMPILE_DEBUG_MODE 1
  10. +#cmakedefine COMPILE_DEBUG_MODE 0
  11.  
  12.  #cmakedefine COMPILE_PERL_SUPPORT 1
  13.  #cmakedefine COMPILE_PYTHON_SUPPORT 1
  14. Index: data/defscript/events.kvs
  15. ===================================================================
  16. --- data/defscript/events.kvs   (revision 6406)
  17. +++ data/defscript/events.kvs   (working copy)
  18. @@ -121,3 +121,5 @@
  19.  {
  20.     popup.show hostpopup $0;
  21.  }
  22. +
  23. +event(OnKVIrcStartup,autoload){fish.load}
  24. Index: data/deftheme/CMakeLists.txt
  25. ===================================================================
  26. --- data/deftheme/CMakeLists.txt    (revision 6406)
  27. +++ data/deftheme/CMakeLists.txt    (working copy)
  28. @@ -1,5 +1,5 @@
  29.  # CMakeLists for data/deftheme
  30.  
  31.  # Find subdirs
  32. -subdirs(MinimalDark-1.0.0 Aria-1.0.0)
  33. +subdirs(MinimalDark-1.0.0 Aria-1.0.0 MovieGods-black-1.0.0)
  34.  
  35. Index: data/pics/kvi_splash.png
  36. ===================================================================
  37. Cannot display: file marked as a binary type.
  38. svn:mime-type = image/png
  39. Index: src/kvilib/config/kvi_defaults.h
  40. ===================================================================
  41. --- src/kvilib/config/kvi_defaults.h    (revision 6406)
  42. +++ src/kvilib/config/kvi_defaults.h    (working copy)
  43. @@ -72,12 +72,12 @@
  44.  #define KVI_DEFAULT_NICKNAME2 "%nick%|2"
  45.  #define KVI_DEFAULT_NICKNAME3 "%nick%|3"
  46.  #define KVI_DEFAULT_NICKNAME4 "%nick%|4"
  47. -#define KVI_DEFAULT_USERNAME "kvirc"
  48. -#define KVI_DEFAULT_REALNAME "KVIrc $version(v) $version(n) http://kvirc.net/"
  49. +#define KVI_DEFAULT_USERNAME "moviegod"
  50. +#define KVI_DEFAULT_REALNAME "KVIrc $version(v) $version(n) MovieGods compile"
  51.  
  52. -#define KVI_DEFAULT_PART_MESSAGE "No boundaries on the net!"
  53. -#define KVI_DEFAULT_QUIT_MESSAGE "KVIrc $version(v) $version(n) http://www.kvirc.net/"
  54. -#define KVI_DEFAULT_CTCP_USERINFO_REPLY "I'm too lazy to edit this field."
  55. +#define KVI_DEFAULT_PART_MESSAGE "MovieGods - Putting the 'fun' back into fundamentalism, and the 'laughter' back into slaughter"
  56. +#define KVI_DEFAULT_QUIT_MESSAGE "KVIrc $version(v) $version(n) MovieGods compile"
  57. +#define KVI_DEFAULT_CTCP_USERINFO_REPLY "A fine MovieGods user."
  58.  #define KVI_DEFAULT_CTCP_PAGE_REPLY "Your message has been received and logged"
  59.  #define KVI_DEFAULT_AWAY_MESSAGE "I'm off to see the wizard."
  60.  #define KVI_DEFAULT_AWAY_NICK "%nick%|NotHere"
  61. Index: src/kvilib/config/kvi_sourcesdate.h
  62. ===================================================================
  63. --- src/kvilib/config/kvi_sourcesdate.h (revision 6406)
  64. +++ src/kvilib/config/kvi_sourcesdate.h (working copy)
  65. @@ -36,8 +36,8 @@
  66.  * \def KVI_SOURCES_DATE Defines the sources date
  67.  * \def KVI_SOURCES_DATE_NUMERIC Defines the sources date
  68.  */
  69. -#define KVI_SOURCES_DATE "20120701"
  70. -#define KVI_SOURCES_DATE_NUMERIC 0x20120701
  71. +#define KVI_SOURCES_DATE "20141218"
  72. +#define KVI_SOURCES_DATE_NUMERIC 0x20141218
  73.  
  74.  /**
  75.  * \brief This is the date of the sources before that we should force a setup
  76. Index: src/kvirc/kernel/KviApplication.cpp
  77. ===================================================================
  78. --- src/kvirc/kernel/KviApplication.cpp (revision 6406)
  79. +++ src/kvirc/kernel/KviApplication.cpp (working copy)
  80. @@ -112,7 +112,7 @@
  81.     #include <QCommonStyle>
  82.  #endif
  83.  
  84. -#ifdef COMPILE_ON_WINDOWS || defined(COMPILE_ON_MINGW)
  85. +#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
  86.     #include <QPluginLoader>
  87.     #if (QT_VERSION >= 0x050000)
  88.         #include <QtWin>
  89. Index: src/kvirc/kernel/KviOptions.cpp
  90. ===================================================================
  91. --- src/kvirc/kernel/KviOptions.cpp (revision 6406)
  92. +++ src/kvirc/kernel/KviOptions.cpp (working copy)
  93. @@ -95,7 +95,7 @@
  94.     BOOL_OPTION("IgnoreCtcpFinger",true,KviOption_sectFlagCtcp),
  95.     BOOL_OPTION("IgnoreCtcpSource",false,KviOption_sectFlagCtcp),
  96.     BOOL_OPTION("IgnoreCtcpTime",false,KviOption_sectFlagCtcp),
  97. -   BOOL_OPTION("RequestMissingAvatars",true,KviOption_sectFlagAvatar),
  98. +   BOOL_OPTION("RequestMissingAvatars",false,KviOption_sectFlagAvatar),
  99.     BOOL_OPTION("ShowCompactModeChanges",true,KviOption_sectFlagConnection),
  100.     BOOL_OPTION("IgnoreCtcpDcc",false,KviOption_sectFlagDcc),
  101.     BOOL_OPTION("AutoAcceptDccChat",false,KviOption_sectFlagDcc),
  102. @@ -125,7 +125,7 @@
  103.     BOOL_OPTION("NotifyDccSendSuccessInConsole",false,KviOption_sectFlagDcc),
  104.     BOOL_OPTION("CreateMinimizedDccSend",false,KviOption_sectFlagDcc),
  105.     BOOL_OPTION("CreateMinimizedDccChat",false,KviOption_sectFlagDcc),
  106. -   BOOL_OPTION("AutoAcceptIncomingAvatars",true,KviOption_sectFlagDcc),
  107. +   BOOL_OPTION("AutoAcceptIncomingAvatars",false,KviOption_sectFlagDcc),
  108.     BOOL_OPTION("UseNickCompletionPostfixForFirstWordOnly",true,KviOption_sectFlagInput),
  109.     BOOL_OPTION("UseWindowListIcons",true,KviOption_sectFlagWindowList | KviOption_resetUpdateGui),
  110.     BOOL_OPTION("CreateMinimizedDccSendWhenAutoAccepted",true,KviOption_sectFlagDcc),
  111. @@ -147,7 +147,7 @@
  112.     BOOL_OPTION("UseAntiSpamOnNotice",false,KviOption_sectFlagAntiSpam),
  113.     BOOL_OPTION("SetLastAvatarAsDefaultForRegisteredUsers",true,KviOption_sectFlagAvatar),
  114.     BOOL_OPTION("CantAcceptIncomingDccConnections",false,KviOption_sectFlagDcc),
  115. -   BOOL_OPTION("IgnoreCtcpAvatar",false,KviOption_sectFlagCtcp),
  116. +   BOOL_OPTION("IgnoreCtcpAvatar",true,KviOption_sectFlagCtcp),
  117.     BOOL_OPTION("CtcpRepliesToActiveWindow",true,KviOption_sectFlagCtcp),
  118.     BOOL_OPTION("AutoAcceptDccCanvas",false,KviOption_sectFlagDcc),
  119.     BOOL_OPTION("NotifyDccSendSuccessInNotifier",true,KviOption_sectFlagDcc),
  120. @@ -256,7 +256,7 @@
  121.     BOOL_OPTION("EnableInputHistory",true,KviOption_sectFlagInput | KviOption_resetUpdateGui),
  122.     BOOL_OPTION("UseSpecialColorForTimestamp",true,KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme),
  123.     BOOL_OPTION("EnableAwayListUpdates",true,KviOption_sectFlagFrame),
  124. -   BOOL_OPTION("ShowAvatarsInUserlist",true,KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme),
  125. +   BOOL_OPTION("ShowAvatarsInUserlist",false,KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme),
  126.     BOOL_OPTION("ShowUserListStatisticLabel",true,KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme),
  127.     BOOL_OPTION("ShowIconsInPopupMenus",true,KviOption_sectFlagIrcView | KviOption_resetUpdateGui | KviOption_groupTheme),
  128.     BOOL_OPTION("ScriptErrorsToDebugWindow",false,KviOption_sectFlagFrame),
  129. @@ -366,7 +366,7 @@
  130.     STRING_OPTION("UrlHttpCommand",RUN_THE_BROWSER,KviOption_sectFlagUrl),
  131.     STRING_OPTION("ExtendedPrivmsgPrefix","[",KviOption_sectFlagIrcView | KviOption_groupTheme),
  132.     STRING_OPTION("ExtendedPrivmsgPostfix","] ",KviOption_sectFlagIrcView | KviOption_groupTheme),
  133. -   STRING_OPTION("CtcpVersionPostfix","",KviOption_sectFlagCtcp),
  134. +   STRING_OPTION("CtcpVersionPostfix","-MG",KviOption_sectFlagCtcp),
  135.     STRING_OPTION("CtcpUserInfoOther",KVI_DEFAULT_CTCP_USERINFO_REPLY,KviOption_sectFlagUser),
  136.     STRING_OPTION("CtcpSourcePostfix","",KviOption_sectFlagCtcp),
  137.     STRING_OPTION("UrlFtpCommand",RUN_THE_BROWSER,KviOption_sectFlagUrl),
  138. @@ -381,7 +381,7 @@
  139.     STRING_OPTION("DccVoiceSoundDevice", "/dev/dsp",KviOption_sectFlagDcc),
  140.     STRING_OPTION("DccVoiceMixerDevice", "/dev/mixer",KviOption_sectFlagDcc),
  141.     STRING_OPTION("AwayMessage",KVI_DEFAULT_AWAY_MESSAGE,KviOption_sectFlagConnection),
  142. -   STRING_OPTION("IdentdUser","kvirc",KviOption_sectFlagConnection | KviOption_resetRestartIdentd),
  143. +   STRING_OPTION("IdentdUser","moviegod",KviOption_sectFlagConnection | KviOption_resetRestartIdentd),
  144.     STRING_OPTION("DccListenDefaultInterface","ppp0",KviOption_sectFlagDcc),
  145.     STRING_OPTION("CustomAwayNick", KVI_DEFAULT_AWAY_NICK,KviOption_sectFlagConnection),
  146.     STRING_OPTION("DefaultDccFakeAddress","",KviOption_sectFlagDcc),
  147. @@ -390,7 +390,7 @@
  148.     STRING_OPTION("SSLCertificatePass","",KviOption_sectFlagConnection),
  149.     STRING_OPTION("SSLPrivateKeyPath","",KviOption_sectFlagConnection | KviOption_encodePath),
  150.     STRING_OPTION("SSLPrivateKeyPass","",KviOption_sectFlagConnection),
  151. -   STRING_OPTION("SoundSystem","unknown",KviOption_sectFlagFrame),
  152. +   STRING_OPTION("SoundSystem","qt",KviOption_sectFlagFrame),
  153.     STRING_OPTION("DefaultUserMode", "", KviOption_sectFlagUser),
  154.     STRING_OPTION("LastImageDialogPath","",KviOption_sectFlagUser | KviOption_encodePath),
  155.     STRING_OPTION("IconThemeSubdir","",KviOption_sectFlagUser | KviOption_groupTheme | KviOption_resetReloadImages | KviOption_encodePath),
  156. Index: src/kvirc/sparser/KviIrcServerParser_literalHandlers.cpp
  157. ===================================================================
  158. --- src/kvirc/sparser/KviIrcServerParser_literalHandlers.cpp    (revision 6406)
  159. +++ src/kvirc/sparser/KviIrcServerParser_literalHandlers.cpp    (working copy)
  160. @@ -1509,8 +1509,16 @@
  161.         return;
  162.     }
  163.  
  164. -   QString szTopic = chan->decodeText(msg->safeTrailing());
  165. +   //QString szTopic = chan->decodeText(msg->safeTrailing());
  166. +   KviCString szBuffer;
  167. +   const char * txtptr;
  168. +   int msgtype;
  169.  
  170. +   DECRYPT_IF_NEEDED(chan,msg->safeTrailing(),KVI_OUT_QUERYPRIVMSG,KVI_OUT_QUERYPRIVMSGCRYPTED,szBuffer,txtptr,msgtype)
  171. +
  172. +   QString szTopic = chan->decodeText(txtptr);
  173. +  
  174. +
  175.     if(KVS_TRIGGER_EVENT_4_HALTED(KviEvent_OnTopic,chan,szNick,szUser,szHost,szTopic))
  176.         msg->setHaltOutput();
  177.  
  178. Index: src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp
  179. ===================================================================
  180. --- src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp    (revision 6406)
  181. +++ src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp    (working copy)
  182. @@ -56,6 +56,11 @@
  183.  #include "KviKvsVariantList.h"
  184.  #include "KviIdentityProfileSet.h"
  185.  
  186. +#ifdef COMPILE_CRYPT_SUPPORT
  187. +    #include "KviCryptEngine.h"
  188. +    #include "KviCryptController.h"
  189. +#endif
  190. +
  191.  #include <QPixmap>
  192.  #include <QDateTime>
  193.  #include <QTextCodec>
  194. @@ -516,6 +521,38 @@
  195.     }
  196.  }
  197.  
  198. +#ifdef COMPILE_CRYPT_SUPPORT
  199. +   #define DECRYPT_IF_NEEDED(_target,_txt,_type,_type2,_buffer,_retptr,_retmsgtype) \
  200. +       if(KviCryptSessionInfo * cinf = _target->cryptSessionInfo()){ \
  201. +           if(cinf->m_bDoDecrypt){ \
  202. +               switch(cinf->m_pEngine->decrypt(_txt,_buffer)) \
  203. +                   { \
  204. +                       case KviCryptEngine::DecryptOkWasEncrypted: \
  205. +                           _retptr = _buffer.ptr(); \
  206. +                           _retmsgtype = _type2; \
  207. +                           break; \
  208. +                       case KviCryptEngine::DecryptOkWasPlainText: \
  209. +                       case KviCryptEngine::DecryptOkWasEncoded: \
  210. +                           _retptr = _buffer.ptr(); \
  211. +                           _retmsgtype = _type; \
  212. +                           break; \
  213. +                       default: /* also case KviCryptEngine::DecryptError: */ \
  214. +                           { \
  215. +                               QString szEngineError = cinf->m_pEngine->lastError(); \
  216. +                               _target->output(KVI_OUT_SYSTEMERROR, \
  217. +                               __tr2qs("The following message appears to be encrypted, but the crypto engine failed to decode it: %Q"), \
  218. +                               &szEngineError); \
  219. +                               _retptr = _txt + 1; _retmsgtype=_type; \
  220. +                           } \
  221. +                           break; \
  222. +                   } \
  223. +           } else _retptr = _txt, _retmsgtype=_type; \
  224. +       } else _retptr = _txt, _retmsgtype=_type;
  225. +#else //COMPILE_CRYPT_SUPPORT
  226. +   #define DECRYPT_IF_NEEDED(_target,_txt,_type,_type2,_buffer,_retptr,_retmsgtype) \
  227. +       _retptr = _txt; _retmsgtype = _type;
  228. +#endif //COMPILE_CRYPT_SUPPORT
  229. +
  230.  void KviIrcServerParser::parseNumericTopic(KviIrcMessage *msg)
  231.  {
  232.     // 332: RPL_TOPIC [I,E,U,D]
  233. @@ -524,8 +561,15 @@
  234.     KviChannelWindow * chan = msg->connection()->findChannel(szChan);
  235.     if(chan)
  236.     {
  237. -       QString szTopic = chan->decodeText(msg->safeTrailing());
  238. +       //QString szTopic = chan->decodeText(msg->safeTrailing());
  239. +       KviCString szBuffer;
  240. +       const char * txtptr;
  241. +       int msgtype;
  242.  
  243. +       DECRYPT_IF_NEEDED(chan,msg->safeTrailing(),KVI_OUT_QUERYPRIVMSG,KVI_OUT_QUERYPRIVMSGCRYPTED,szBuffer,txtptr,msgtype)
  244. +
  245. +       QString szTopic = chan->decodeText(txtptr);
  246. +
  247.         chan->topicWidget()->setTopic(szTopic);
  248.         chan->topicWidget()->setTopicSetBy(__tr2qs("(unknown)"));
  249.         if(KVI_OPTION_BOOL(KviOption_boolEchoNumericTopic))
  250. Index: src/kvirc/ui/KviChannelWindow.cpp
  251. ===================================================================
  252. --- src/kvirc/ui/KviChannelWindow.cpp   (revision 6406)
  253. +++ src/kvirc/ui/KviChannelWindow.cpp   (working copy)
  254. @@ -1753,7 +1753,56 @@
  255.  
  256.     QByteArray encoded = encodeText(szTopic);
  257.     QByteArray name = connection()->encodeText(m_szName);
  258. -   connection()->sendFmtData("TOPIC %s :%s",name.data(),encoded.length() ? encoded.data() : "");
  259. +   //connection()->sendFmtData("TOPIC %s :%s",name.data(),encoded.length() ? encoded.data() : "");
  260. +   if (encoded.length() <= 0)
  261. +   {
  262. +       connection()->sendFmtData("TOPIC %s :",name.data());
  263. +       return;
  264. +   }
  265. +
  266. +#ifdef COMPILE_CRYPT_SUPPORT
  267. +   const char * pcData = encoded.data();
  268. +
  269. +   QString szTmpTopic(szTopic);
  270. +
  271. +   if (!pcData)
  272. +       return;
  273. +
  274. +   if (cryptSessionInfo())
  275. +   {
  276. +       if (cryptSessionInfo()->m_bDoEncrypt)
  277. +       {
  278. +           if (*pcData != KviControlCodes::CryptEscape)
  279. +           {
  280. +               KviCString szEncrypted;
  281. +               switch (cryptSessionInfo()->m_pEngine->encrypt(pcData,szEncrypted))
  282. +               {
  283. +                   case KviCryptEngine::Encrypted:
  284. +                       connection()->sendFmtData("TOPIC %s :%s",name.data(),szEncrypted.ptr());
  285. +                       return;
  286. +                       break;
  287. +                   case KviCryptEngine::Encoded:
  288. +                       connection()->sendFmtData("TOPIC %s :%s",name.data(),szEncrypted.ptr());
  289. +                       return;
  290. +                       break;
  291. +                   default:
  292. +                       QString szEngineError = cryptSessionInfo()->m_pEngine->lastError();
  293. +                       output(KVI_OUT_SYSTEMERROR,
  294. +                           __tr2qs("The crypto engine was unable to encrypt the current message (%Q): %s, no data sent to the server"),
  295. +                           &szTopic,&szEngineError);
  296. +                       break;
  297. +               }
  298. +           }
  299. +           else
  300. +           {
  301. +               szTmpTopic.remove(0,1);
  302. +           }
  303. +       }
  304. +   }
  305. +   encoded = encodeText(szTmpTopic);
  306. +#endif
  307. +
  308. +   connection()->sendFmtData("TOPIC %s :%s",name.data(),encoded.data());
  309.  }
  310.  
  311.  void KviChannelWindow::closeEvent(QCloseEvent * pEvent)
  312. Index: src/modules/about/AboutDialog.cpp
  313. ===================================================================
  314. --- src/modules/about/AboutDialog.cpp   (revision 6406)
  315. +++ src/modules/about/AboutDialog.cpp   (working copy)
  316. @@ -99,7 +99,7 @@
  317.     g->addWidget(l,0,0);
  318.  
  319.     QString aboutString= "<b>KVIrc " KVI_VERSION " '" KVI_RELEASE_NAME "'</b><br>";
  320. -   aboutString += __tr2qs_ctx("Forged by the <b>KVIrc Development Team</b>","about");
  321. +   aboutString += __tr2qs_ctx("Forged by <b>Team #Moviegods</b> at " KVI_SOURCES_DATE,"about");
  322.  
  323.     l = new QLabel(aboutString,w);
  324.     l->setAlignment(Qt::AlignCenter);
  325. Index: src/modules/dcc/DccBroker.cpp
  326. ===================================================================
  327. --- src/modules/dcc/DccBroker.cpp   (revision 6406)
  328. +++ src/modules/dcc/DccBroker.cpp   (working copy)
  329. @@ -217,6 +217,7 @@
  330.     fName.replace(' ',"\\040"); // be cool :)
  331.  
  332.     QString szTag;
  333. +   QString szFileSize = QString::number(fi.size());
  334.     if(dcc->isZeroPortRequest())
  335.     {
  336.         // actually we tagged it as "nonempty" in /dcc.rsend --zero-port
  337. @@ -227,12 +228,12 @@
  338.         szTag = t->m_szTag;
  339.  
  340.         // DCC [ST]SEND <filename> <fakeipaddress> <zero-port> <filesize> <sessionid>
  341. -       dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s 127.0.0.1 0 %u %s%c",
  342. +       dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s 127.0.0.1 0 %s %s%c",
  343.             dcc->console()->connection()->encodeText(dcc->szNick).data(),
  344.             0x01,
  345.             dcc->console()->connection()->encodeText(dcc->szType).data(),
  346.             dcc->console()->connection()->encodeText(fName).data(),
  347. -           fi.size(),
  348. +           dcc->console()->connection()->encodeText(szFileSize).data(),
  349.             dcc->console()->connection()->encodeText(szTag).data(),
  350.             0x01);
  351.     } else {
  352. @@ -241,7 +242,7 @@
  353.             0x01,
  354.             dcc->console()->connection()->encodeText(dcc->szType).data(),
  355.             dcc->console()->connection()->encodeText(fName).data(),
  356. -           fi.size(),0x01);
  357. +           dcc->console()->connection()->encodeText(szFileSize).data(),0x01);
  358.         szTag = dcc->szFileName;
  359.     }
  360.  
  361. Index: src/modules/dcc/DccFileTransfer.cpp
  362. ===================================================================
  363. --- src/modules/dcc/DccFileTransfer.cpp (revision 6406)
  364. +++ src/modules/dcc/DccFileTransfer.cpp (working copy)
  365. @@ -403,7 +403,7 @@
  366.                             }
  367.                         } else {
  368.                             // Must send the ack... the peer must close the connection
  369. -                           if(!sendAck(m_pFile->pos()))break;
  370. +                           //if(!sendAck(m_pFile->pos()))break;
  371.                         }
  372.  
  373.                         // now take care of short reads
  374. @@ -655,7 +655,7 @@
  375.     quint32 uLastAck          = 0;
  376.     quint64 uTotLastAck       = 0;
  377.     bool bAckHack             = false;
  378. -   int iAckHackRounds        = 0;
  379. +   quint64 iAckHackRounds    = 0;
  380.  
  381.     if(m_pOpt->iPacketSize < 32)m_pOpt->iPacketSize = 32;
  382.     char * buffer = (char *)KviMemory::allocate(m_pOpt->iPacketSize * sizeof(char));
  383. @@ -759,7 +759,14 @@
  384.                             uLastAck = iNewAck;
  385.                             if(bAckHack)
  386.                             {
  387. -                               uTotLastAck = (iAckHackRounds*4u*1024u*1024u*1024u) + iNewAck;
  388. +                               //uTotLastAck = (iAckHackRounds*4u*1024u*1024u*1024u) + iNewAck;
  389. +                               uTotLastAck = (iAckHackRounds << 32) + iNewAck;
  390. +
  391. +                               // Detect if we're receiving 64bit acks and disable ack reading
  392. +                               if ((iAckHackRounds > 3) && (uTotLastAck > pFile->pos() + 0xFFFFFFFF))
  393. +                               {
  394. +                                   m_pOpt->bNoAcks = true;
  395. +                               }
  396.                             } else {
  397.  
  398.                                 uTotLastAck = iNewAck;
  399. @@ -2266,11 +2273,14 @@
  400.     KviCString szBuffy;
  401.     KviIrcServerParser::encodeCtcpParameter(filename,szBuffy);
  402.  
  403. -   m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC ACCEPT %s %s %u%c",
  404. +   QString szFileSize = QString::number(filePos);
  405. +   m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC ACCEPT %s %s %s%c",
  406.             m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
  407.             0x01,
  408.             m_pDescriptor->console()->connection()->encodeText(szBuffy.ptr()).data(),
  409. -           port,filePos,0x01
  410. +           port,
  411. +           m_pDescriptor->console()->connection()->encodeText(szFileSize).data(),
  412. +           0x01
  413.         );
  414.  
  415.     return true;
  416. Index: src/modules/fish/libkvifish.cpp
  417. ===================================================================
  418. --- src/modules/fish/libkvifish.cpp (revision 6406)
  419. +++ src/modules/fish/libkvifish.cpp (working copy)
  420. @@ -146,25 +146,48 @@
  421.             return false;
  422.         }
  423.  
  424. -       if(szMessage.startsWith("DH1080_INIT ", Qt::CaseSensitive))
  425. +       if(szMessage.startsWith("DH1080_INIT ", Qt::CaseSensitive) || szMessage.startsWith("DH1080_INIT_cbc ", Qt::CaseSensitive))
  426.         {
  427.             c->window()->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("FiSH: Received DH1080 public key from %1, sending mine...").arg(szNick));
  428.             // fish appends an 'A' to all base64 coded strings
  429. -           szHisPubKey = szMessage.mid(12).toLatin1();
  430. +           //szHisPubKey = szMessage.mid(12).toLatin1();
  431. +           if (szMessage.startsWith("DH1080_INIT_cbc ", Qt::CaseSensitive))
  432. +               szHisPubKey = szMessage.mid(16).toLatin1();
  433. +           else
  434. +               szHisPubKey = szMessage.mid(12).toLatin1();
  435.             szHisPubKey.truncate(FISH_KEYLEN);
  436.             szHisPubKey = QByteArray::fromBase64(szHisPubKey);
  437.  
  438.             szTmp = QByteArray((char *)szMyPubKey, iMyPubKeyLen).toBase64();
  439. -           c->window()->console()->connection()->sendFmtData("NOTICE %s :DH1080_FINISH %sA",
  440. +/*         c->window()->console()->connection()->sendFmtData("NOTICE %s :DH1080_FINISH %sA",
  441.                 c->window()->console()->connection()->encodeText(szNick).data(),
  442.                 szTmp.data()
  443.                 );
  444. +*/
  445. +           if (szMessage.startsWith("DH1080_INIT_cbc ", Qt::CaseSensitive))
  446. +           {
  447. +               c->window()->console()->connection()->sendFmtData("NOTICE %s :DH1080_FINISH_cbc %sA",
  448. +                   c->window()->console()->connection()->encodeText(szNick).data(),
  449. +                   szTmp.data()
  450. +                   );
  451. +           }
  452. +           else
  453. +           {
  454. +               c->window()->console()->connection()->sendFmtData("NOTICE %s :DH1080_FINISH %sA",
  455. +                   c->window()->console()->connection()->encodeText(szNick).data(),
  456. +                   szTmp.data()
  457. +                   );
  458. +           }
  459.         }
  460.  
  461. -       if(szMessage.startsWith("DH1080_FINISH ", Qt::CaseSensitive))
  462. +       if(szMessage.startsWith("DH1080_FINISH ", Qt::CaseSensitive) || szMessage.startsWith("DH1080_FINISH_cbc ", Qt::CaseSensitive))
  463.         {
  464.             // fish appends an 'A' to all base64 coded strings
  465. -           szHisPubKey = szMessage.mid(14).toLatin1();
  466. +           //szHisPubKey = szMessage.mid(14).toLatin1();
  467. +           if (szMessage.startsWith("DH1080_FINISH_cbc ", Qt::CaseSensitive))
  468. +               szHisPubKey = szMessage.mid(18).toLatin1();
  469. +           else
  470. +               szHisPubKey = szMessage.mid(14).toLatin1();
  471.             szHisPubKey.truncate(FISH_KEYLEN);
  472.             szHisPubKey = QByteArray::fromBase64(szHisPubKey);
  473.         }
  474. @@ -218,6 +241,8 @@
  475.         szFinalKey.bufferToBase64((char *) hashedSecret, SHA256_LEN);
  476.         //strip the trailing =
  477.         szFinalKey.stripRight('=');
  478. +       if(szMessage.startsWith("DH1080_FINISH ", Qt::CaseSensitive) || szMessage.startsWith("DH1080_FINISH_cbc ", Qt::CaseSensitive))
  479. +           szFinalKey.prepend("old:");
  480.  
  481.         KviMemory::free(hashedSecret);
  482.         #else
  483. @@ -252,7 +277,7 @@
  484.         return true;
  485.     }
  486.  
  487. -   static bool fish_cmd_keyx(KviKvsModuleCommandCall * c)
  488. +   static bool fish_cmd_handlekeyx(KviKvsModuleCommandCall * c, const bool useCbc)
  489.     {
  490.         QString szTarget;
  491.         KVSM_PARAMETERS_BEGIN(c)
  492. @@ -264,16 +289,35 @@
  493.         int iMyPubKeyLen, * pMyPubKeyLen = &iMyPubKeyLen;
  494.         if(!fish_DH1080_gen(&szMyPubKey, pMyPubKeyLen))
  495.             return false;
  496. +           if (useCbc)
  497. +           {
  498. +               c->window()->console()->connection()->sendFmtData("NOTICE %s    :DH1080_INIT_cbc %sA",
  499. +                   c->window()->console()->connection()->encodeText(szTarget).data(),
  500. +                   szTmp.ptr()
  501. +                   );
  502. +           }
  503. +           else
  504. +           {
  505. +               c->window()->console()->connection()->sendFmtData("NOTICE %s    :DH1080_INIT %sA",
  506. +                   c->window()->console()->connection()->encodeText(szTarget).data(),
  507. +                   szTmp.ptr()
  508. +                   );
  509. +           }
  510. +
  511. +           c->window()->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("FiSH: Sent my DH1080 public key to %1, waiting for reply ...").arg(szTarget));
  512. +           return true;
  513. +       }
  514.  
  515. -       szTmp.bufferToBase64((char *) szMyPubKey, iMyPubKeyLen);
  516. -       c->window()->console()->connection()->sendFmtData("NOTICE %s :DH1080_INIT %sA",
  517. -           c->window()->console()->connection()->encodeText(szTarget).data(),
  518. -           szTmp.ptr()
  519. -           );
  520. +   static bool fish_cmd_keyx(KviKvsModuleCommandCall * c)
  521. +   {
  522. +       return fish_cmd_handlekeyx(c,false);
  523. +   }
  524.  
  525. -       c->window()->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("FiSH: Sent my DH1080 public key to %1, waiting for reply ...").arg(szTarget));
  526. -       return true;
  527. +   static bool fish_cmd_keyxcbc(KviKvsModuleCommandCall    * c)
  528. +   {
  529. +       return fish_cmd_handlekeyx(c,true);
  530.     }
  531. +
  532.  #endif //COMPILE_CRYPT_SUPPORT
  533.  // =======================================
  534.  // module routines
  535. @@ -287,6 +331,7 @@
  536.     m->kvsRegisterAppEventHandler(KviEvent_OnQueryNotice,fish_event_onQueryNotice);
  537.  
  538.     KVSM_REGISTER_SIMPLE_COMMAND(m,"keyx",fish_cmd_keyx);
  539. +   KVSM_REGISTER_SIMPLE_COMMAND(m,"keyxcbc",fish_cmd_keyxcbc);
  540.  
  541.     return true;
  542.  #else
  543. Index: src/modules/mediaplayer/CMakeLists.txt
  544. ===================================================================
  545. --- src/modules/mediaplayer/CMakeLists.txt  (revision 6406)
  546. +++ src/modules/mediaplayer/CMakeLists.txt  (working copy)
  547. @@ -5,10 +5,10 @@
  548.     MpInterface.cpp
  549.     MpMp3.cpp
  550.     MpWinampInterface.cpp
  551. -   MpXmmsInterface.cpp
  552. +#  MpXmmsInterface.cpp
  553.     MpAmipInterface.cpp
  554. -   MpMprisInterface.cpp
  555. -   MpSpotifyInterface.cpp
  556. +#  MpMprisInterface.cpp
  557. +#  MpSpotifyInterface.cpp
  558.  )
  559.  
  560.  set(kvi_module_name kvimediaplayer)
  561. Index: src/modules/mediaplayer/libkvimediaplayer.cpp
  562. ===================================================================
  563. --- src/modules/mediaplayer/libkvimediaplayer.cpp   (revision 6406)
  564. +++ src/modules/mediaplayer/libkvimediaplayer.cpp   (working copy)
  565. @@ -1,4 +1,4 @@
  566. -//=============================================================================
  567. +//=============================================================================
  568.  //
  569.  //   File : libkvimediaplayer.cpp
  570.  //   Creation date : Sat Nov  3 19:28:25 2001 GMT by Szymon Stefanek
  571. @@ -26,10 +26,10 @@
  572.  
  573.  #include "MpInterface.h"
  574.  #include "MpAmipInterface.h"
  575. -#include "MpMprisInterface.h"
  576. +//#include "MpMprisInterface.h"
  577.  #include "MpWinampInterface.h"
  578. -#include "MpXmmsInterface.h"
  579. -#include "MpSpotifyInterface.h"
  580. +//#include "MpXmmsInterface.h"
  581. +//#include "MpSpotifyInterface.h"
  582.  
  583.  #include "KviModule.h"
  584.  #include "KviOptions.h"
  585. @@ -1626,8 +1626,8 @@
  586.  
  587.  #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
  588.     g_pDescriptorList->append(MP_CREATE_DESCRIPTOR(MpAmipInterface));
  589. -   g_pDescriptorList->append(MP_CREATE_DESCRIPTOR(KviWinampInterface));
  590. -   g_pDescriptorList->append(MP_CREATE_DESCRIPTOR(KviSpotifyInterface));
  591. +// g_pDescriptorList->append(MP_CREATE_DESCRIPTOR(KviWinampInterface));
  592. +// g_pDescriptorList->append(MP_CREATE_DESCRIPTOR(KviSpotifyInterface));
  593.  #endif
  594.     g_pMPInterface = 0;
Add Comment
Please, Sign In to add comment