diff --git a/package/lean/amule/Makefile b/package/lean/amule/Makefile index 83299bd03..2431b94a8 100644 --- a/package/lean/amule/Makefile +++ b/package/lean/amule/Makefile @@ -1,37 +1,30 @@ +# Copyright (C) 2021 ImmortalWrt +# # -# Copyright (C) 2007-2009 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. +# This is free software, licensed under the GNU General Public License v3. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk -PKG_NAME:=aMule -PKG_VERSION:=2.3.2 -PKG_RELEASE:=3 -PKG_REV=4b87b20 +PKG_NAME:=amule +PKG_VERSION:=2.3.3 +PKG_RELEASE:=1 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/amule-project/amule/tar.gz/$(PKG_VERSION)? +PKG_HASH:=934f79d4dab41c2d1caea31d6c6e10337c409ba5bb8bd6fac6c63e924e82c9b8 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-r$(PKG_REV).tar.bz2 -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=$(PKG_REV) -PKG_SOURCE_URL:=https://github.com/amule-project/amule.git -PKG_MIRROR_HASH:=1575d31d68f9df881100c9e30f18fc7dec8493a8ae20787f41b6ef23604a78ff +PKG_CONFIG_DEPEDS:= CONFIG_AMULE_CRYPTOPP_STATIC_LINKING -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_BUILD_DEPENDS:=libgd libcryptopp +PKG_FIXUP:=autoreconf +PKG_BUILD_DEPENDS:=libcryptopp libgd +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk -define Package/amule/config -config AMULE_CRYPTOPP_STATIC_LINKING - bool "Link libcryptopp statically" - default n -endef - define Package/amule SUBMENU:=P2P SECTION:=net @@ -42,10 +35,17 @@ define Package/amule $(ICONV_DEPENDS) $(INTL_DEPENDS) +!AMULE_CRYPTOPP_STATIC_LINKING:libcryptopp endef +define Package/amule/config +config AMULE_CRYPTOPP_STATIC_LINKING + bool "Link libcryptopp statically" + default n +endef + +TARGET_LDFLAGS+= -liconv + CONFIGURE_ARGS+= \ --disable-static \ --disable-rpath \ - --with-gnu-ld \ --disable-ccache \ --disable-optimize \ --disable-profile \ @@ -59,11 +59,13 @@ CONFIGURE_ARGS+= \ --disable-ed2k \ --disable-alc \ --disable-alcc \ + --disable-debug \ --disable-fileview \ --disable-plasmamule \ --without-wxdebug \ --enable-dlp \ --enable-upnp \ + --with-gnu-ld \ --with-zlib="$(STAGING_DIR)/usr" \ --with-gdlib-prefix="$(STAGING_DIR)/usr" \ --with-libpng-prefix="$(STAGING_DIR)/usr" \ @@ -72,39 +74,27 @@ CONFIGURE_ARGS+= \ --with-libiconv-prefix="$(ICONV_PREFIX)" \ --with-libintl-prefix="$(INTL_PREFIX)" \ --with-libupnp-prefix="$(STAGING_DIR)/usr" \ - --without-x \ - --disable-debug - -TARGET_LDFLAGS += -liconv + --without-x +MAKE_FLAGS += HOSTCC="$(HOSTCC)" define Build/Configure - cd $(PKG_BUILD_DIR) && sh ./autogen.sh + cd $(PKG_BUILD_DIR); $(SHELL) autogen.sh $(call Build/Configure/Default) -endef - ifeq ($(CONFIG_AMULE_CRYPTOPP_STATIC_LINKING),y) - SED_CMD:=sed -else - SED_CMD:=true -endif - -define Build/Compile - $(SED_CMD) -i 's;^CRYPTOPP_LIBS.*;CRYPTOPP_LIBS \= "$(STAGING_DIR)/usr/lib/libcryptopp.a";g' \ + $(SED) 's;^CRYPTOPP_LIBS.*;CRYPTOPP_LIBS \= "$(STAGING_DIR)/usr/lib/libcryptopp.a";g' \ $(PKG_BUILD_DIR)/src/Makefile - $(MAKE) -C $(PKG_BUILD_DIR) \ - HOSTCC="$(HOSTCC)" \ - DESTDIR="$(PKG_INSTALL_DIR)" \ - all +endif endef define Package/amule/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_DIR) $(1)/usr/share/amule/webserver - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/amule{cmd,d} $(1)/usr/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/webserver/src/amuleweb $(1)/usr/bin/ - $(CP) $(PKG_BUILD_DIR)/src/webserver/default $(1)/usr/share/amule/webserver - + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amulecmd $(1)/usr/bin/amulecmd + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amuled $(1)/usr/bin/amuled + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amuleweb $(1)/usr/bin/amuleweb + + $(INSTALL_DIR) $(1)/usr/share + $(CP) $(PKG_INSTALL_DIR)/usr/share/amule $(1)/usr/share/ endef $(eval $(call BuildPackage,amule)) diff --git a/package/lean/amule/patches/001-amule-dlp.patch b/package/lean/amule/patches/001_amule-dlp.patch similarity index 82% rename from package/lean/amule/patches/001-amule-dlp.patch rename to package/lean/amule/patches/001_amule-dlp.patch index 5a37a27a6..2407d580b 100644 --- a/package/lean/amule/patches/001-amule-dlp.patch +++ b/package/lean/amule/patches/001_amule-dlp.patch @@ -1,7 +1,6 @@ -diff -Naur a/configure.ac b/configure.ac ---- a/configure.ac 2016-10-06 19:01:54.000000000 +0800 -+++ b/configure.ac 2016-10-14 12:33:51.660347919 +0800 -@@ -89,6 +89,14 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -91,6 +91,14 @@ MULE_IF_ENABLED([static], [MULE_APPEND([ KDE_CONFIG_OPTIONS QT_CONFIG_OPTIONS @@ -16,8 +15,8 @@ diff -Naur a/configure.ac b/configure.ac # Default is yes, because they're most likely compatible. # However, this is only used when cross-compiling. AC_ARG_WITH( -@@ -457,6 +465,8 @@ - AM_CONDITIONAL(GENERATE_FLEX_HEADER, test x$HAVE_FLEX_EXTENDED = xyes) +@@ -451,6 +459,8 @@ AM_CONDITIONAL(NEED_CORESERVICES, test x + AM_CONDITIONAL(COMPILE_NLS, test x$USE_NLS = xyes) AM_CONDITIONAL(INSTALL_SKINS, test MULE_IS_ENABLED_ANY([monolithic, amule-gui])) AM_CONDITIONAL(PLASMAMULE, test MULE_IS_ENABLED([plasmamule])) +#Dynamic Leech Protection - Bill Lee @@ -25,18 +24,17 @@ diff -Naur a/configure.ac b/configure.ac AM_CONDITIONAL([COMPILE_LIB_COMMON], [test MULE_IS_ENABLED_ANY([monolithic, amule-daemon, amulecmd, webserver, amule-gui, fileview])]) AM_CONDITIONAL([COMPILE_LIB_EC], [test MULE_IS_ENABLED_ANY([monolithic, amule-daemon, amulecmd, webserver, amule-gui])]) -diff -Naur a/po/zh_CN.po b/po/zh_CN.po ---- a/po/zh_CN.po 2016-10-06 19:01:54.000000000 +0800 -+++ b/po/zh_CN.po 2016-10-14 12:33:51.662347964 +0800 -@@ -5,6 +5,7 @@ +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -7,6 +7,7 @@ # xiaoqiao <29551030@qq.com>, 2007, 2008. # JimHu , 2009. # Xiaoqiao , 2010. +# Bill Lee , 2010, 2011. - # Yi Qi ,2011. + # Yi Qi , 2011. # msgid "" -@@ -467,6 +468,12 @@ +@@ -471,6 +472,12 @@ msgstr " 版权所有 (c) 2002-2011 Peta msgid "http://kademlia.scs.cs.nyu.edu\n" msgstr "http://kademlia.scs.cs.nyu.edu\n" @@ -46,22 +44,22 @@ diff -Naur a/po/zh_CN.po b/po/zh_CN.po +msgid " Homepage: http://amule-dlp.googlecode.com \n" +msgstr " 主页:http://amule-dlp.googlecode.com \n" + - #: src/amuleDlg.cpp:512 src/KadDlg.cpp:193 src/PartFile.cpp:918 - #: src/PartFile.cpp:926 src/PrefsUnifiedDlg.cpp:629 - #: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847 -@@ -3856,6 +3863,9 @@ - msgid "Click on this button to update the nodes list from URL ..." - msgstr "按此更新节点列表自网址..." + #: src/amuleDlg.cpp:509 src/KadDlg.cpp:193 src/PartFile.cpp:919 + #: src/PartFile.cpp:927 src/PrefsUnifiedDlg.cpp:637 src/PrefsUnifiedDlg.cpp:742 + #: src/PrefsUnifiedDlg.cpp:862 +@@ -3824,6 +3831,9 @@ msgstr "按此按钮清空日志." + msgid "Click on this button to update the servers list from URL ..." + msgstr "按此按钮从该网址更新服务器列表 ..." +msgid "DLP Info" +msgstr "动态反吸血信息" + - #: src/muuli_wdr.cpp:2649 - msgid "Nodes (0)" - msgstr "节点(0)" -@@ -7682,6 +7692,48 @@ - #~ "\n" - #~ "此外,浏览器设定已经被重设为系统默认值。如有必要,请重新配置浏览器选项。\n" + #: src/muuli_wdr.cpp:2535 + msgid "Server list" + msgstr "服务器列表" +@@ -7448,6 +7458,48 @@ msgstr "已请求注销\n" + msgid "Processing request [redirected]: " + msgstr "正在处理请求 [已重定向]:" +msgid "Dynamic Leecher Protection Options" +msgstr "动态反吸血保护选项" @@ -105,12 +103,11 @@ diff -Naur a/po/zh_CN.po b/po/zh_CN.po +msgid "Succeed loading antiLeech! Version: %d" +msgstr "成功加载 antiLeech! 版本: %d" + - #~ msgid "Fetching status..." - #~ msgstr "正在获取状态..." - -diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp ---- a/src/BaseClient.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/BaseClient.cpp 2016-10-14 12:35:45.793953665 +0800 + #~ msgid "" + #~ "Invalid URL for HTTP download or HTTP redirection (did you forget " + #~ "'http://' ?)" +--- a/src/BaseClient.cpp ++++ b/src/BaseClient.cpp @@ -1,4 +1,3 @@ -// // This file is part of the aMule Project. @@ -139,7 +136,7 @@ diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp // some client testing variables static wxString crash_name = wxT("[Invalid User Name]"); static wxString empty_name = wxT("[Empty User Name]"); -@@ -290,6 +292,10 @@ +@@ -290,6 +292,10 @@ void CUpDownClient::Init() m_cMessagesReceived = 0; m_cMessagesSent = 0; @@ -150,7 +147,7 @@ diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp } -@@ -635,6 +641,15 @@ +@@ -635,6 +641,15 @@ bool CUpDownClient::ProcessHelloTypePack m_fSharedDirectories = 1; dwEmuleTags |= 4; break; @@ -166,7 +163,7 @@ diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp } } -@@ -717,6 +732,11 @@ +@@ -717,6 +732,11 @@ bool CUpDownClient::ProcessHelloTypePack Kademlia::CKademlia::Bootstrap(wxUINT32_SWAP_ALWAYS(GetIP()), GetKadPort()); } @@ -178,7 +175,7 @@ diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp return bIsMule; } -@@ -966,6 +986,14 @@ +@@ -966,6 +986,14 @@ bool CUpDownClient::ProcessMuleInfoPacke % GetClientFullInfo() ); @@ -193,7 +190,7 @@ diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp break; } } -@@ -1003,6 +1031,11 @@ +@@ -1003,6 +1031,11 @@ bool CUpDownClient::ProcessMuleInfoPacke m_byInfopacketsReceived |= IP_EMULEPROTPACK; } @@ -205,7 +202,7 @@ diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp return (protocol_version == 0xFF); // This was a OS_Info? } -@@ -2302,7 +2335,7 @@ +@@ -2303,7 +2336,7 @@ bool CUpDownClient::CheckHandshakeFinish } @@ -214,9 +211,8 @@ diff -Naur a/src/BaseClient.cpp b/src/BaseClient.cpp wxString CUpDownClient::GetClientFullInfo() { if (m_clientVerString.IsEmpty()) { -diff -Naur a/src/CString_wx.h b/src/CString_wx.h ---- a/src/CString_wx.h 1970-01-01 08:00:00.000000000 +0800 -+++ b/src/CString_wx.h 2016-10-14 12:33:51.664348010 +0800 +--- /dev/null ++++ b/src/CString_wx.h @@ -0,0 +1,59 @@ +/** + * Author: Bill Lee @@ -277,9 +273,8 @@ diff -Naur a/src/CString_wx.h b/src/CString_wx.h + } +}; +#endif -diff -Naur a/src/DLP.cpp b/src/DLP.cpp ---- a/src/DLP.cpp 1970-01-01 08:00:00.000000000 +0800 -+++ b/src/DLP.cpp 2016-10-14 12:33:51.664348010 +0800 +--- /dev/null ++++ b/src/DLP.cpp @@ -0,0 +1,190 @@ +// Copyright (C) 2011 Bill Lee +// @@ -471,9 +466,8 @@ diff -Naur a/src/DLP.cpp b/src/DLP.cpp + antiLeechLib.Load(file); + return antiLeechLib.IsLoaded(); +} -diff -Naur a/src/DLP.h b/src/DLP.h ---- a/src/DLP.h 1970-01-01 08:00:00.000000000 +0800 -+++ b/src/DLP.h 2016-10-14 12:33:51.665348032 +0800 +--- /dev/null ++++ b/src/DLP.h @@ -0,0 +1,45 @@ +// Copyright (C) 2011 Bill Lee +// @@ -520,9 +514,8 @@ diff -Naur a/src/DLP.h b/src/DLP.h + + bool LoadFrom(wxString& file); +}; -diff -Naur a/src/DLPPref.h b/src/DLPPref.h ---- a/src/DLPPref.h 1970-01-01 08:00:00.000000000 +0800 -+++ b/src/DLPPref.h 2016-10-14 12:33:51.665348032 +0800 +--- /dev/null ++++ b/src/DLPPref.h @@ -0,0 +1,15 @@ +#ifndef ANTILEECH_AMULE_H +#define ANTILEECH_AMULE_H @@ -539,10 +532,9 @@ diff -Naur a/src/DLPPref.h b/src/DLPPref.h +#define PF_GHOSTMOD 0x100 + +#endif -diff -Naur a/src/DownloadQueue.cpp b/src/DownloadQueue.cpp ---- a/src/DownloadQueue.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/DownloadQueue.cpp 2016-10-14 12:33:51.665348032 +0800 -@@ -623,6 +623,15 @@ +--- a/src/DownloadQueue.cpp ++++ b/src/DownloadQueue.cpp +@@ -623,6 +623,15 @@ void CDownloadQueue::CheckAndAddSource(C return; } @@ -558,10 +550,9 @@ diff -Naur a/src/DownloadQueue.cpp b/src/DownloadQueue.cpp // Filter sources which are known to be dead/useless if ( theApp->clientlist->IsDeadSource( source ) || sender->IsDeadSource(source) ) { source->Safe_Delete(); -diff -Naur a/src/ExternalConn.cpp b/src/ExternalConn.cpp ---- a/src/ExternalConn.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/ExternalConn.cpp 2016-10-14 12:33:51.666348055 +0800 -@@ -57,6 +57,9 @@ +--- a/src/ExternalConn.cpp ++++ b/src/ExternalConn.cpp +@@ -55,6 +55,9 @@ #include "kademlia/kademlia/UDPFirewallTester.h" #include "Statistics.h" @@ -571,7 +562,7 @@ diff -Naur a/src/ExternalConn.cpp b/src/ExternalConn.cpp //-------------------- File_Encoder -------------------- -@@ -1384,6 +1387,15 @@ +@@ -1388,6 +1391,15 @@ CECPacket *CECServerSocket::ProcessReque } } break; @@ -587,10 +578,9 @@ diff -Naur a/src/ExternalConn.cpp b/src/ExternalConn.cpp // // Status requests // -diff -Naur a/src/Logger.cpp b/src/Logger.cpp ---- a/src/Logger.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/Logger.cpp 2016-10-14 12:40:22.827322335 +0800 -@@ -297,6 +297,8 @@ +--- a/src/Logger.cpp ++++ b/src/Logger.cpp +@@ -297,6 +297,8 @@ void CLogger::FlushApplog() } CLogger theLogger; @@ -599,10 +589,9 @@ diff -Naur a/src/Logger.cpp b/src/Logger.cpp BEGIN_EVENT_TABLE(CLogger, wxEvtHandler) EVT_MULE_LOGGING(CLogger::OnLoggingEvent) -diff -Naur a/src/Logger.h b/src/Logger.h ---- a/src/Logger.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/Logger.h 2016-10-14 12:41:14.694519856 +0800 -@@ -310,6 +310,8 @@ +--- a/src/Logger.h ++++ b/src/Logger.h +@@ -310,6 +310,8 @@ private: }; extern CLogger theLogger; @@ -611,7 +600,7 @@ diff -Naur a/src/Logger.h b/src/Logger.h /** * This class forwards log-lines from wxWidgets to CLogger. -@@ -456,5 +458,8 @@ +@@ -456,5 +458,8 @@ public: #define AddLogLineF(string) theLogger.AddLogLine(__TFILE__, __LINE__, false, logStandard, string, false, false) #endif @@ -620,10 +609,9 @@ diff -Naur a/src/Logger.h b/src/Logger.h + #endif // File_checked_for_headers -diff -Naur a/src/LoggerConsole.cpp b/src/LoggerConsole.cpp ---- a/src/LoggerConsole.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/LoggerConsole.cpp 2016-10-14 12:41:54.805446813 +0800 -@@ -85,6 +85,8 @@ +--- a/src/LoggerConsole.cpp ++++ b/src/LoggerConsole.cpp +@@ -94,6 +94,8 @@ void CLogger::AddLogLine( } CLogger theLogger; @@ -632,10 +620,9 @@ diff -Naur a/src/LoggerConsole.cpp b/src/LoggerConsole.cpp BEGIN_EVENT_TABLE(CLogger, wxEvtHandler) END_EVENT_TABLE() -diff -Naur a/src/Makefile.am b/src/Makefile.am ---- a/src/Makefile.am 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/Makefile.am 2016-10-14 12:33:51.666348055 +0800 -@@ -179,6 +179,13 @@ +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -178,6 +178,13 @@ core_sources = \ kademlia/routing/RoutingZone.cpp @@ -649,10 +636,9 @@ diff -Naur a/src/Makefile.am b/src/Makefile.am gui_sources = \ amule-gui.cpp \ amuleDlg.cpp \ -diff -Naur a/src/Preferences.cpp b/src/Preferences.cpp ---- a/src/Preferences.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/Preferences.cpp 2016-10-14 12:33:51.667348078 +0800 -@@ -51,6 +51,11 @@ +--- a/src/Preferences.cpp ++++ b/src/Preferences.cpp +@@ -49,6 +49,11 @@ #include "UserEvents.h" @@ -664,7 +650,7 @@ diff -Naur a/src/Preferences.cpp b/src/Preferences.cpp #ifndef AMULE_DAEMON #include #include "muuli_wdr.h" -@@ -344,6 +349,19 @@ +@@ -343,6 +348,19 @@ protected: wxWindow* m_widget; }; @@ -684,7 +670,7 @@ diff -Naur a/src/Preferences.cpp b/src/Preferences.cpp /** Cfg class for wxStrings. */ class Cfg_Str : public Cfg_Tmpl -@@ -953,6 +971,11 @@ +@@ -952,6 +970,11 @@ CPreferences::CPreferences() s_userhash[5] = 14; s_userhash[14] = 111; @@ -696,7 +682,7 @@ diff -Naur a/src/Preferences.cpp b/src/Preferences.cpp #ifndef CLIENT_GUI LoadPreferences(); ReloadSharedFolders(); -@@ -1062,6 +1085,20 @@ +@@ -1061,6 +1084,20 @@ void CPreferences::BuildItemList( const NewCfgItem( IDC_NETWORKKAD, (new Cfg_Bool( wxT("/eMule/ConnectToKad"), s_ConnectToKad, true )) ); NewCfgItem( IDC_NETWORKED2K, ( new Cfg_Bool( wxT("/eMule/ConnectToED2K"), s_ConnectToED2K, true ) )); @@ -717,7 +703,7 @@ diff -Naur a/src/Preferences.cpp b/src/Preferences.cpp /** * Files -@@ -1471,6 +1508,11 @@ +@@ -1471,6 +1508,11 @@ void CPreferences::Save() } SavePreferences(); @@ -729,7 +715,7 @@ diff -Naur a/src/Preferences.cpp b/src/Preferences.cpp #ifndef CLIENT_GUI CTextFile sdirfile; -@@ -1483,6 +1525,21 @@ +@@ -1483,6 +1525,21 @@ void CPreferences::Save() #endif } @@ -751,10 +737,9 @@ diff -Naur a/src/Preferences.cpp b/src/Preferences.cpp CPreferences::~CPreferences() { -diff -Naur a/src/Preferences.h b/src/Preferences.h ---- a/src/Preferences.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/Preferences.h 2016-10-14 12:33:51.667348078 +0800 -@@ -579,6 +579,11 @@ +--- a/src/Preferences.h ++++ b/src/Preferences.h +@@ -580,6 +580,11 @@ public: // Sleep static bool GetPreventSleepWhileDownloading() { return s_preventSleepWhileDownloading; } static void SetPreventSleepWhileDownloading(bool status) { s_preventSleepWhileDownloading = status; } @@ -766,7 +751,7 @@ diff -Naur a/src/Preferences.h b/src/Preferences.h protected: static int32 GetRecommendedMaxConnections(); -@@ -599,6 +604,11 @@ +@@ -600,6 +605,11 @@ protected: private: void LoadPreferences(); void SavePreferences(); @@ -778,7 +763,7 @@ diff -Naur a/src/Preferences.h b/src/Preferences.h protected: static wxString s_configDir; -@@ -813,6 +823,20 @@ +@@ -815,6 +825,20 @@ protected: // Stats server static wxString s_StatsServerName; static wxString s_StatsServerURL; @@ -799,9 +784,8 @@ diff -Naur a/src/Preferences.h b/src/Preferences.h }; -diff -Naur a/src/PrefsUnifiedDlg.cpp b/src/PrefsUnifiedDlg.cpp ---- a/src/PrefsUnifiedDlg.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/PrefsUnifiedDlg.cpp 2016-10-14 12:33:51.668348101 +0800 +--- a/src/PrefsUnifiedDlg.cpp ++++ b/src/PrefsUnifiedDlg.cpp @@ -53,6 +53,11 @@ #include "UserEvents.h" #include "PlatformSpecific.h" // Needed for PLATFORMSPECIFIC_CAN_PREVENT_SLEEP_MODE @@ -814,7 +798,7 @@ diff -Naur a/src/PrefsUnifiedDlg.cpp b/src/PrefsUnifiedDlg.cpp BEGIN_EVENT_TABLE(PrefsUnifiedDlg,wxDialog) // Events #define USEREVENTS_EVENT(ID, NAME, VARS) \ -@@ -114,6 +119,11 @@ +@@ -114,6 +119,11 @@ BEGIN_EVENT_TABLE(PrefsUnifiedDlg,wxDial EVT_CHOICE(IDC_COLORSELECTOR, PrefsUnifiedDlg::OnColorCategorySelected) EVT_LIST_ITEM_SELECTED(ID_PREFSLISTCTRL,PrefsUnifiedDlg::OnPrefsPageChange) @@ -826,7 +810,7 @@ diff -Naur a/src/PrefsUnifiedDlg.cpp b/src/PrefsUnifiedDlg.cpp EVT_INIT_DIALOG(PrefsUnifiedDlg::OnInitDialog) EVT_COMMAND_SCROLL(IDC_SLIDER, PrefsUnifiedDlg::OnScrollBarChange) -@@ -187,6 +197,9 @@ +@@ -187,6 +197,9 @@ PrefsPage pages[] = { wxTRANSLATE("Online Signature"), PreferencesOnlineSigTab, 21 }, { wxTRANSLATE("Advanced"), PreferencesaMuleTweaksTab, 12 }, { wxTRANSLATE("Events"), PreferencesEventsTab, 5 } @@ -836,7 +820,7 @@ diff -Naur a/src/PrefsUnifiedDlg.cpp b/src/PrefsUnifiedDlg.cpp #ifdef __DEBUG__ ,{ wxTRANSLATE("Debugging"), PreferencesDebug, 25 } #endif -@@ -1076,6 +1089,21 @@ +@@ -1096,6 +1109,21 @@ void PrefsUnifiedDlg::OnButtonIPFilterUp theApp->ipfilter->Update( CastChild( IDC_IPFILTERURL, wxTextCtrl )->GetValue() ); } @@ -858,10 +842,9 @@ diff -Naur a/src/PrefsUnifiedDlg.cpp b/src/PrefsUnifiedDlg.cpp void PrefsUnifiedDlg::OnPrefsPageChange(wxListEvent& event) { -diff -Naur a/src/PrefsUnifiedDlg.h b/src/PrefsUnifiedDlg.h ---- a/src/PrefsUnifiedDlg.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/PrefsUnifiedDlg.h 2016-10-14 12:33:51.668348101 +0800 -@@ -124,6 +124,9 @@ +--- a/src/PrefsUnifiedDlg.h ++++ b/src/PrefsUnifiedDlg.h +@@ -124,6 +124,9 @@ protected: void OnUserEventSelected(wxListEvent& event); void OnLanguageChoice(wxCommandEvent &event); void CreateEventPanels(const int idx, const wxString& vars, wxWindow* parent); @@ -871,10 +854,9 @@ diff -Naur a/src/PrefsUnifiedDlg.h b/src/PrefsUnifiedDlg.h void OnInitDialog( wxInitDialogEvent& evt ); -diff -Naur a/src/ServerWnd.cpp b/src/ServerWnd.cpp ---- a/src/ServerWnd.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/ServerWnd.cpp 2016-10-14 12:33:51.668348101 +0800 -@@ -46,6 +46,7 @@ +--- a/src/ServerWnd.cpp ++++ b/src/ServerWnd.cpp +@@ -46,6 +46,7 @@ BEGIN_EVENT_TABLE(CServerWnd,wxPanel) EVT_BUTTON(ID_BTN_RESET, CServerWnd::OnBnClickedResetLog) EVT_BUTTON(ID_BTN_RESET_SERVER, CServerWnd::OnBnClickedResetServerLog) EVT_SPLITTER_SASH_POS_CHANGED(ID_SRV_SPLITTER,CServerWnd::OnSashPositionChanged) @@ -882,7 +864,7 @@ diff -Naur a/src/ServerWnd.cpp b/src/ServerWnd.cpp END_EVENT_TABLE() -@@ -152,6 +153,11 @@ +@@ -152,6 +153,11 @@ void CServerWnd::OnBnClickedResetServerL theApp->GetServerLog(true); // Reset it } @@ -894,10 +876,9 @@ diff -Naur a/src/ServerWnd.cpp b/src/ServerWnd.cpp void CServerWnd::UpdateED2KInfo() { -diff -Naur a/src/ServerWnd.h b/src/ServerWnd.h ---- a/src/ServerWnd.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/ServerWnd.h 2016-10-14 12:33:51.668348101 +0800 -@@ -50,6 +50,7 @@ +--- a/src/ServerWnd.h ++++ b/src/ServerWnd.h +@@ -50,6 +50,7 @@ private: void OnBnClickedUpdateservermetfromurl(wxCommandEvent& evt); void OnBnClickedResetLog(wxCommandEvent& evt); void OnBnClickedResetServerLog(wxCommandEvent& evt); @@ -905,10 +886,9 @@ diff -Naur a/src/ServerWnd.h b/src/ServerWnd.h DECLARE_EVENT_TABLE() }; -diff -Naur a/src/TextClient.cpp b/src/TextClient.cpp ---- a/src/TextClient.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/TextClient.cpp 2016-10-14 12:33:51.669348124 +0800 -@@ -73,6 +73,7 @@ +--- a/src/TextClient.cpp ++++ b/src/TextClient.cpp +@@ -67,6 +67,7 @@ enum { CMD_ID_RELOAD_SHARED, CMD_ID_RELOAD_IPFILTER_LOCAL, CMD_ID_RELOAD_IPFILTER_NET, @@ -916,7 +896,7 @@ diff -Naur a/src/TextClient.cpp b/src/TextClient.cpp CMD_ID_SET_IPFILTER_ON, CMD_ID_SET_IPFILTER_OFF, CMD_ID_SET_IPFILTER_CLIENTS_ON, -@@ -106,7 +107,6 @@ +@@ -100,7 +101,6 @@ enum { CMD_ID_DOWNLOAD, // IDs for deprecated commands CMD_ID_SET_IPFILTER @@ -924,7 +904,7 @@ diff -Naur a/src/TextClient.cpp b/src/TextClient.cpp }; // method to create a SearchFile -@@ -240,6 +240,12 @@ +@@ -234,6 +234,12 @@ int CamulecmdApp::ProcessCommand(int Cmd case CMD_ID_DISCONNECT_KAD: request_list.push_back(new CECPacket(EC_OP_KAD_STOP)); break; @@ -937,7 +917,7 @@ diff -Naur a/src/TextClient.cpp b/src/TextClient.cpp case CMD_ID_RELOAD_SHARED: request_list.push_back(new CECPacket(EC_OP_SHAREDFILES_RELOAD)); -@@ -903,6 +909,9 @@ +@@ -904,6 +910,9 @@ void CamulecmdApp::OnInitCommandSet() tmp2->AddCommand(wxT("Net"), CMD_ID_RELOAD_IPFILTER_NET, wxTRANSLATE("Update IP filtering table from URL."), wxTRANSLATE("If URL is omitted the URL from the preferences is used."), CMD_PARAM_OPTIONAL); @@ -947,10 +927,9 @@ diff -Naur a/src/TextClient.cpp b/src/TextClient.cpp tmp = m_commands.AddCommand(wxT("Connect"), CMD_ID_CONNECT, wxTRANSLATE("Connect to the network."), wxTRANSLATE("This will connect to all networks that are enabled in Preferences.\nYou may also optionally specify a server address in IP:Port form, to connect to\nthat server only. The IP must be a dotted decimal IPv4 address,\nor a resolvable DNS name."), CMD_PARAM_OPTIONAL); tmp->AddCommand(wxT("ED2K"), CMD_ID_CONNECT_ED2K, wxTRANSLATE("Connect to eD2k only."), wxEmptyString, CMD_PARAM_NEVER); -diff -Naur a/src/UploadQueue.cpp b/src/UploadQueue.cpp ---- a/src/UploadQueue.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/UploadQueue.cpp 2016-10-14 12:33:51.669348124 +0800 -@@ -390,6 +390,11 @@ +--- a/src/UploadQueue.cpp ++++ b/src/UploadQueue.cpp +@@ -390,6 +390,11 @@ void CUploadQueue::AddClientToQueue(CUpD return; } @@ -962,10 +941,9 @@ diff -Naur a/src/UploadQueue.cpp b/src/UploadQueue.cpp client->AddAskedCount(); client->SetLastUpRequest(); -diff -Naur a/src/amule-gui.cpp b/src/amule-gui.cpp ---- a/src/amule-gui.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/amule-gui.cpp 2016-10-14 12:33:51.669348124 +0800 -@@ -333,6 +333,21 @@ +--- a/src/amule-gui.cpp ++++ b/src/amule-gui.cpp +@@ -333,6 +333,21 @@ wxString CamuleGuiApp::GetLog(bool reset return CamuleApp::GetLog(reset); } @@ -987,9 +965,8 @@ diff -Naur a/src/amule-gui.cpp b/src/amule-gui.cpp wxString CamuleGuiApp::GetServerLog(bool reset) { -diff -Naur a/src/amule.cpp b/src/amule.cpp ---- a/src/amule.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/amule.cpp 2016-10-14 12:33:51.670348146 +0800 +--- a/src/amule.cpp ++++ b/src/amule.cpp @@ -23,7 +23,6 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // @@ -998,7 +975,7 @@ diff -Naur a/src/amule.cpp b/src/amule.cpp #include "amule.h" // Interface declarations. #include -@@ -90,6 +89,11 @@ +@@ -87,6 +86,11 @@ #include // Do_not_auto_remove #endif @@ -1010,7 +987,7 @@ diff -Naur a/src/amule.cpp b/src/amule.cpp #ifndef AMULE_DAEMON #ifdef __WXMAC__ #include // Do_not_auto_remove -@@ -520,6 +524,11 @@ +@@ -517,6 +521,11 @@ bool CamuleApp::OnInit() uploadqueue = new CUploadQueue(); ipfilter = new CIPFilter(); @@ -1022,7 +999,7 @@ diff -Naur a/src/amule.cpp b/src/amule.cpp // Creates all needed listening sockets wxString msg; if (!ReinitializeNetwork(&msg)) { -@@ -2062,3 +2071,8 @@ +@@ -2063,3 +2072,8 @@ DEFINE_LOCAL_EVENT_TYPE(wxEVT_CORE_SOURC DEFINE_LOCAL_EVENT_TYPE(wxEVT_CORE_UDP_DNS_DONE) DEFINE_LOCAL_EVENT_TYPE(wxEVT_CORE_SERVER_DNS_DONE) // File_checked_for_headers @@ -1031,10 +1008,9 @@ diff -Naur a/src/amule.cpp b/src/amule.cpp +#ifdef AMULE_DLP +DLP* theDLP; +#endif -diff -Naur a/src/amule.h b/src/amule.h ---- a/src/amule.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/amule.h 2016-10-14 12:42:22.776093625 +0800 -@@ -135,6 +135,8 @@ +--- a/src/amule.h ++++ b/src/amule.h +@@ -134,6 +134,8 @@ protected: bool m_geometryEnabled; wxString m_geometryString; wxString m_logFile; @@ -1043,7 +1019,7 @@ diff -Naur a/src/amule.h b/src/amule.h wxString m_appName; wxString m_PidFile; -@@ -410,6 +412,7 @@ +@@ -409,6 +411,7 @@ public: wxString GetLog(bool reset = false); wxString GetServerLog(bool reset = false); void AddServerMessageLine(wxString &msg); @@ -1051,7 +1027,7 @@ diff -Naur a/src/amule.h b/src/amule.h DECLARE_EVENT_TABLE() }; -@@ -573,6 +576,8 @@ +@@ -573,6 +576,8 @@ public: virtual int ShowAlert(wxString msg, wxString title, int flags); @@ -1060,7 +1036,7 @@ diff -Naur a/src/amule.h b/src/amule.h DECLARE_EVENT_TABLE() }; -@@ -583,3 +588,8 @@ +@@ -583,3 +588,8 @@ extern CamuleDaemonApp *theApp; #endif // AMULE_H // File_checked_for_headers @@ -1069,10 +1045,9 @@ diff -Naur a/src/amule.h b/src/amule.h +class DLP; //forward declaretion +extern DLP* theDLP; +#endif -diff -Naur a/src/amuleAppCommon.cpp b/src/amuleAppCommon.cpp ---- a/src/amuleAppCommon.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/amuleAppCommon.cpp 2016-10-14 12:44:08.981552362 +0800 -@@ -65,6 +65,9 @@ +--- a/src/amuleAppCommon.cpp ++++ b/src/amuleAppCommon.cpp +@@ -65,6 +65,9 @@ CamuleAppCommon::CamuleAppCommon() m_configFile = wxT("amule.conf"); m_logFile = wxT("logfile"); @@ -1082,7 +1057,7 @@ diff -Naur a/src/amuleAppCommon.cpp b/src/amuleAppCommon.cpp if (IsDaemon()) { m_appName = wxT("aMuleD"); } else { -@@ -443,6 +446,21 @@ +@@ -443,6 +446,21 @@ bool CamuleAppCommon::InitCommon(int arg return false; } @@ -1104,10 +1079,9 @@ diff -Naur a/src/amuleAppCommon.cpp b/src/amuleAppCommon.cpp // Load Preferences CPreferences::BuildItemList(thePrefs::GetConfigDir()); CPreferences::LoadAllItems( wxConfigBase::Get() ); -diff -Naur a/src/amuleDlg.cpp b/src/amuleDlg.cpp ---- a/src/amuleDlg.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/amuleDlg.cpp 2016-10-14 12:44:47.637582726 +0800 -@@ -315,7 +315,7 @@ +--- a/src/amuleDlg.cpp ++++ b/src/amuleDlg.cpp +@@ -311,7 +311,7 @@ m_clientSkinNames(CLIENT_SKIN_SIZE) wxNotebook* logs_notebook = CastChild( ID_SRVLOG_NOTEBOOK, wxNotebook); wxNotebook* networks_notebook = CastChild( ID_NETNOTEBOOK, wxNotebook); @@ -1116,7 +1090,7 @@ diff -Naur a/src/amuleDlg.cpp b/src/amuleDlg.cpp wxASSERT(networks_notebook->GetPageCount() == 2); for (uint32 i = 0; i < logs_notebook->GetPageCount(); ++i) { -@@ -507,7 +507,12 @@ +@@ -503,7 +503,12 @@ void CamuleDlg::OnAboutButton(wxCommandE _("Part of aMule is based on \n") << _("Kademlia: Peer-to-peer routing based on the XOR metric.\n") << _(" Copyright (c) 2002-2011 Petar Maymounkov ( petar@post.harvard.edu )\n") << @@ -1130,7 +1104,7 @@ diff -Naur a/src/amuleDlg.cpp b/src/amuleDlg.cpp if (m_is_safe_state) { wxMessageBox(msg, _("Message"), wxOK | wxICON_INFORMATION, this); -@@ -659,8 +664,24 @@ +@@ -655,8 +660,24 @@ void CamuleDlg::AddServerMessageLine(wxS } cv->ShowPosition(cv->GetLastPosition()-1); } @@ -1155,7 +1129,7 @@ diff -Naur a/src/amuleDlg.cpp b/src/amuleDlg.cpp void CamuleDlg::ShowConnectionState(bool skinChanged) { -@@ -1456,7 +1477,9 @@ +@@ -1435,7 +1456,9 @@ void CamuleDlg::DoNetworkRearrange() if (thePrefs::GetNetworkKademlia()) { logs_notebook->AddPage(m_logpages[3].page, m_logpages[3].name); } @@ -1166,10 +1140,9 @@ diff -Naur a/src/amuleDlg.cpp b/src/amuleDlg.cpp // Set the main window. // If we have both networks active, activate a notebook to select between them. // If only one is active, show the window directly without a surrounding one tab notebook. -diff -Naur a/src/amuleDlg.h b/src/amuleDlg.h ---- a/src/amuleDlg.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/amuleDlg.h 2016-10-14 12:33:51.671348169 +0800 -@@ -114,6 +114,9 @@ +--- a/src/amuleDlg.h ++++ b/src/amuleDlg.h +@@ -114,6 +114,9 @@ public: void AddLogLine(const wxString& line); void AddServerMessageLine(wxString& message); @@ -1179,7 +1152,7 @@ diff -Naur a/src/amuleDlg.h b/src/amuleDlg.h void ResetLog(int id); void ShowUserCount(const wxString& info = wxEmptyString); -@@ -231,7 +234,7 @@ +@@ -222,7 +225,7 @@ private: WX_DECLARE_STRING_HASH_MAP(wxZipEntry*, ZipCatalog); ZipCatalog cat; @@ -1188,10 +1161,9 @@ diff -Naur a/src/amuleDlg.h b/src/amuleDlg.h PageType m_networkpages[2]; bool LoadGUIPrefs(bool override_pos, bool override_size); -diff -Naur a/src/amuled.cpp b/src/amuled.cpp ---- a/src/amuled.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/amuled.cpp 2016-10-14 12:45:23.506600119 +0800 -@@ -749,4 +749,10 @@ +--- a/src/amuled.cpp ++++ b/src/amuled.cpp +@@ -783,4 +783,10 @@ int CamuleDaemonApp::ShowAlert(wxString return 0; // That's neither yes nor no, ok, cancel } @@ -1202,9 +1174,8 @@ diff -Naur a/src/amuled.cpp b/src/amuled.cpp +} + // File_checked_for_headers -diff -Naur a/src/antiLeech.h b/src/antiLeech.h ---- a/src/antiLeech.h 1970-01-01 08:00:00.000000000 +0800 -+++ b/src/antiLeech.h 2016-10-14 12:33:51.672348192 +0800 +--- /dev/null ++++ b/src/antiLeech.h @@ -0,0 +1,48 @@ +#ifndef ANTILEECH_H +#define ANTILEECH_H @@ -1254,9 +1225,8 @@ diff -Naur a/src/antiLeech.h b/src/antiLeech.h +extern "C" int destoryAntiLeechInstant(IantiLeech*); + +#endif -diff -Naur a/src/antiLeech_wx.h b/src/antiLeech_wx.h ---- a/src/antiLeech_wx.h 1970-01-01 08:00:00.000000000 +0800 -+++ b/src/antiLeech_wx.h 2016-10-14 12:33:51.672348192 +0800 +--- /dev/null ++++ b/src/antiLeech_wx.h @@ -0,0 +1,49 @@ +#ifndef ANTILEECH_WX_H +#define ANTILEECH_WX_H @@ -1307,10 +1277,9 @@ diff -Naur a/src/antiLeech_wx.h b/src/antiLeech_wx.h +#define _tcsicmp(a, b) wcscasecmp(a, b) + +#endif -diff -Naur a/src/libs/ec/abstracts/ECCodes.abstract b/src/libs/ec/abstracts/ECCodes.abstract ---- a/src/libs/ec/abstracts/ECCodes.abstract 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/libs/ec/abstracts/ECCodes.abstract 2016-10-14 12:33:51.672348192 +0800 -@@ -148,6 +148,8 @@ +--- a/src/libs/ec/abstracts/ECCodes.abstract ++++ b/src/libs/ec/abstracts/ECCodes.abstract +@@ -148,6 +148,8 @@ EC_OP_SERVER_SET_STATIC_PRIO 0x56 EC_OP_FRIEND 0x57 @@ -1319,10 +1288,9 @@ diff -Naur a/src/libs/ec/abstracts/ECCodes.abstract b/src/libs/ec/abstracts/ECCo [/Section] [Section Content] -diff -Naur a/src/libs/ec/cpp/ECCodes.h b/src/libs/ec/cpp/ECCodes.h ---- a/src/libs/ec/cpp/ECCodes.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/libs/ec/cpp/ECCodes.h 2016-10-14 12:33:51.673348215 +0800 -@@ -121,7 +121,8 @@ +--- a/src/libs/ec/cpp/ECCodes.h ++++ b/src/libs/ec/cpp/ECCodes.h +@@ -121,7 +121,8 @@ enum ECOpCodes { EC_OP_CLIENT_SWAP_TO_ANOTHER_FILE = 0x54, EC_OP_SHARED_FILE_SET_COMMENT = 0x55, EC_OP_SERVER_SET_STATIC_PRIO = 0x56, @@ -1332,7 +1300,7 @@ diff -Naur a/src/libs/ec/cpp/ECCodes.h b/src/libs/ec/cpp/ECCodes.h }; enum ECTagNames { -@@ -556,6 +557,7 @@ +@@ -556,6 +557,7 @@ wxString GetDebugNameECOpCodes(uint8 arg case 0x55: return wxT("EC_OP_SHARED_FILE_SET_COMMENT"); case 0x56: return wxT("EC_OP_SERVER_SET_STATIC_PRIO"); case 0x57: return wxT("EC_OP_FRIEND"); @@ -1340,10 +1308,9 @@ diff -Naur a/src/libs/ec/cpp/ECCodes.h b/src/libs/ec/cpp/ECCodes.h default: return CFormat(wxT("unknown %d 0x%x")) % arg % arg; } } -diff -Naur a/src/libs/ec/java/ECCodes.java b/src/libs/ec/java/ECCodes.java ---- a/src/libs/ec/java/ECCodes.java 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/libs/ec/java/ECCodes.java 2016-10-14 12:33:51.673348215 +0800 -@@ -112,6 +112,7 @@ +--- a/src/libs/ec/java/ECCodes.java ++++ b/src/libs/ec/java/ECCodes.java +@@ -112,6 +112,7 @@ public final static byte EC_OP_CLIENT_SW public final static byte EC_OP_SHARED_FILE_SET_COMMENT = 0x55; public final static byte EC_OP_SERVER_SET_STATIC_PRIO = 0x56; public final static byte EC_OP_FRIEND = 0x57; @@ -1351,10 +1318,9 @@ diff -Naur a/src/libs/ec/java/ECCodes.java b/src/libs/ec/java/ECCodes.java public final static short EC_TAG_STRING = 0x0000; public final static short EC_TAG_PASSWD_HASH = 0x0001; -diff -Naur a/src/muuli_wdr.cpp b/src/muuli_wdr.cpp ---- a/src/muuli_wdr.cpp 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/muuli_wdr.cpp 2016-10-14 12:33:51.676348283 +0800 -@@ -1769,6 +1769,51 @@ +--- a/src/muuli_wdr.cpp ++++ b/src/muuli_wdr.cpp +@@ -1772,6 +1772,51 @@ wxSizer *PreferencesServerTab( wxWindow return item0; } @@ -1406,7 +1372,7 @@ diff -Naur a/src/muuli_wdr.cpp b/src/muuli_wdr.cpp wxSizer *PreferencesFilesTab( wxWindow *parent, bool call_fit, bool set_sizer ) { wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL ); -@@ -2587,6 +2632,42 @@ +@@ -2590,6 +2635,42 @@ wxSizer *serverListDlgUp( wxWindow *pare return item0; } @@ -1449,7 +1415,7 @@ diff -Naur a/src/muuli_wdr.cpp b/src/muuli_wdr.cpp wxSizer *serverListDlgDown( wxWindow *parent, bool call_fit, bool set_sizer ) { wxStaticBox *item1 = new wxStaticBox( parent, -1, wxT("") ); -@@ -2602,7 +2683,7 @@ +@@ -2605,7 +2686,7 @@ wxSizer *serverListDlgDown( wxWindow *pa wxPanel *item4 = new wxPanel( item3, -1 ); aMuleLog( item4, FALSE ); item3->AddPage( item4, _("aMule Log") ); @@ -1458,7 +1424,7 @@ diff -Naur a/src/muuli_wdr.cpp b/src/muuli_wdr.cpp wxPanel *item5 = new wxPanel( item3, -1 ); ServerInfoLog( item5, FALSE ); item3->AddPage( item5, _("Server Info") ); -@@ -2614,6 +2695,10 @@ +@@ -2617,6 +2698,10 @@ wxSizer *serverListDlgDown( wxWindow *pa wxPanel *item7 = new wxPanel( item3, -1 ); Kad_Info( item7, FALSE ); item3->AddPage( item7, _("Kad Info") ); @@ -1469,22 +1435,21 @@ diff -Naur a/src/muuli_wdr.cpp b/src/muuli_wdr.cpp item0->Add( item2, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5 ); -diff -Naur a/src/muuli_wdr.h b/src/muuli_wdr.h ---- a/src/muuli_wdr.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/muuli_wdr.h 2016-10-14 12:33:51.676348283 +0800 -@@ -335,6 +335,10 @@ - #define ID_BTN_RESET_SERVER 10240 +--- a/src/muuli_wdr.h ++++ b/src/muuli_wdr.h +@@ -336,6 +336,10 @@ wxSizer *transferDlg( wxWindow *parent, + #define ID_BTN_RESET_SERVER 10241 wxSizer *ServerInfoLog( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE ); +#define ID_DLPINFO 22001 +#define ID_BTN_RESET_DLP 22002 +wxSizer *DLPInfoLog( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE ); + - #define ID_LOGVIEW 10241 - #define ID_BTN_RESET 10242 + #define ID_LOGVIEW 10242 + #define ID_BTN_RESET 10243 wxSizer *aMuleLog( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE ); -@@ -424,6 +428,21 @@ - #define ID_DEBUGCATS 10307 +@@ -425,6 +429,21 @@ wxSizer *CoreConnect( wxWindow *parent, + #define ID_DEBUGCATS 10308 wxSizer *PreferencesDebug( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE ); +/* Dynamic Leecher Protection */ @@ -1503,12 +1468,11 @@ diff -Naur a/src/muuli_wdr.h b/src/muuli_wdr.h +#endif + extern wxSizer *IDC_CURJOB; - #define IDC_CONV_PB_LABEL 10308 - #define IDC_CONV_PROZENT 10309 -diff -Naur a/src/updownclient.h b/src/updownclient.h ---- a/src/updownclient.h 2016-10-06 19:01:54.000000000 +0800 -+++ b/src/updownclient.h 2016-10-14 12:37:03.224728226 +0800 -@@ -408,7 +408,13 @@ + #define IDC_CONV_PB_LABEL 10309 + #define IDC_CONV_PROZENT 10310 +--- a/src/updownclient.h ++++ b/src/updownclient.h +@@ -408,7 +408,13 @@ public: bool GetSentCancelTransfer() const { return m_fSentCancelTransfer; } void SetSentCancelTransfer(bool bVal) { m_fSentCancelTransfer = bVal; } @@ -1523,7 +1487,7 @@ diff -Naur a/src/updownclient.h b/src/updownclient.h wxString GetClientShortInfo(); const wxString& GetClientOSInfo() const { return m_sClientOSInfo; } -@@ -581,7 +587,10 @@ +@@ -581,7 +587,10 @@ public: bool ShouldReceiveCryptUDPPackets() const; bool HasDisabledSharedFiles() const { return m_fNoViewSharedFiles; } @@ -1535,7 +1499,7 @@ diff -Naur a/src/updownclient.h b/src/updownclient.h private: CClientCredits *credits; -@@ -842,6 +851,10 @@ +@@ -842,6 +851,10 @@ private: #ifdef __DEBUG__ wxString connection_reason; #endif diff --git a/package/lean/amule/patches/003_enable_upnp_cross_compile.patch b/package/lean/amule/patches/002_enable_upnp_cross_compile.patch similarity index 69% rename from package/lean/amule/patches/003_enable_upnp_cross_compile.patch rename to package/lean/amule/patches/002_enable_upnp_cross_compile.patch index 462e490c0..f6bccb9a1 100644 --- a/package/lean/amule/patches/003_enable_upnp_cross_compile.patch +++ b/package/lean/amule/patches/002_enable_upnp_cross_compile.patch @@ -1,15 +1,14 @@ -diff -Naur a/m4/libupnp.m4 b/m4/libupnp.m4 ---- a/m4/libupnp.m4 2016-10-06 19:01:54.000000000 +0800 -+++ b/m4/libupnp.m4 2016-10-11 07:36:39.198318574 +0800 -@@ -52,7 +52,6 @@ - [export PKG_CONFIG_PATH=$withval/lib/pkgconfig]) +--- a/m4/libupnp.m4 ++++ b/m4/libupnp.m4 +@@ -57,7 +57,6 @@ dnl Test for --with-libupnp-prefix + ]) dnl Check for libupnp >= MIN_LIBUPNP_VERSION - AS_IF([test $cross_compiling = no], [ AC_MSG_CHECKING([for libupnp version >= MIN_LIBUPNP_VERSION]) AS_IF([test -n "$PKG_CONFIG"], [ AS_IF([$PKG_CONFIG libupnp --exists], [ -@@ -79,11 +78,6 @@ +@@ -84,11 +83,6 @@ dnl Check for libupnp >= MIN_LIBUPNP_VER ]) AC_MSG_RESULT([$result$resultstr]) libupnp_error="libupnp >= MIN_LIBUPNP_VERSION not found$resultstr" diff --git a/package/lean/amule/patches/004_file_name_conversion.patch b/package/lean/amule/patches/004_file_name_conversion.patch deleted file mode 100644 index 2c511d0ce..000000000 --- a/package/lean/amule/patches/004_file_name_conversion.patch +++ /dev/null @@ -1,78 +0,0 @@ -diff --git a/src/amule.h b/src/amule.h -index f25702f..240c02d 100644 ---- a/src/amule.h -+++ b/src/amule.h -@@ -553,6 +553,13 @@ class CamuleDaemonApp : public CamuleApp - int OnExit(); - - virtual int InitGui(bool geometry_enable, wxString &geometry_string); -+ // The GTK wxApps sets its file name conversion properly -+ // in wxApp::Initialize(), while wxAppConsole::Initialize() -+ // does not, leaving wxConvFile being set to wxConvLibc. File -+ // name conversion should be set otherwise amuled will abort to -+ // handle non-ASCII file names which monolithic amule can handle. -+ // This function are overrided to perform this. -+ virtual bool Initialize(int& argc_, wxChar **argv_); - - #ifdef AMULED_APPTRAITS - struct sigaction m_oldSignalChildAction; -diff --git a/src/amuled.cpp b/src/amuled.cpp -index 486da59..86e1ff8 100644 ---- a/src/amuled.cpp -+++ b/src/amuled.cpp -@@ -704,6 +704,41 @@ int CamuleDaemonApp::InitGui(bool ,wxString &) - return 0; - } - -+bool CamuleDaemonApp::Initialize(int& argc_, wxChar **argv_) -+{ -+ if ( !wxAppConsole::Initialize(argc_, argv_) ) { -+ return false; -+ } -+ -+#ifdef __UNIX__ -+ wxString encName; -+#if wxUSE_INTL -+ // if a non default locale is set, -+ // assume that the user wants his -+ // filenames in this locale too -+ encName = wxLocale::GetSystemEncodingName().Upper(); -+ -+ // But don't consider ASCII in this case. -+ if ( !encName.empty() ) { -+ if ( encName == wxT("US-ASCII") ) { -+ // This means US-ASCII when returned -+ // from GetEncodingFromName(). -+ encName.clear(); -+ } -+ } -+#endif // wxUSE_INTL -+ -+ // in this case, UTF-8 is used by default. -+ if ( encName.empty() ) { -+ encName = wxT("UTF-8"); -+ } -+ -+ static wxConvBrokenFileNames fileconv(encName); -+ wxConvFileName = &fileconv; -+#endif // __UNIX__ -+ -+ return true; -+} - - int CamuleDaemonApp::OnExit() - { -diff --git a/src/libs/common/Path.cpp b/src/libs/common/Path.cpp -index 28152a2..5efefd0 100644 ---- a/src/libs/common/Path.cpp -+++ b/src/libs/common/Path.cpp -@@ -229,7 +229,8 @@ CPath::CPath(const wxString& filename) - } - - wxCharBuffer fn = filename2char(filename); -- if (fn.data()) { -+ // add fn.length() for wx 3.x -+ if (fn.data()) { - // Filename is valid in the current locale. This means that - // it either originated from a (wx)system-call, or from a - // user with a properly setup system. diff --git a/package/lean/amule/patches/005_best_keyword_kad_search.patch b/package/lean/amule/patches/005_best_keyword_kad_search.patch deleted file mode 100644 index c450a9f8e..000000000 --- a/package/lean/amule/patches/005_best_keyword_kad_search.patch +++ /dev/null @@ -1,174 +0,0 @@ -diff --git a/src/SearchList.cpp b/src/SearchList.cpp -index 32b28e9..342a18f 100644 ---- a/src/SearchList.cpp -+++ b/src/SearchList.cpp -@@ -75,7 +75,7 @@ void ParsedSearchExpression(const CSearchExpr* pexpr) - int iOpNot = 0; - - for (unsigned int i = 0; i < pexpr->m_aExpr.GetCount(); i++) { -- wxString str(pexpr->m_aExpr[i]); -+ const wxString& str = pexpr->m_aExpr[i]; - if (str == SEARCHOPTOK_AND) { - iOpAnd++; - } else if (str == SEARCHOPTOK_OR) { -@@ -108,6 +108,25 @@ void ParsedSearchExpression(const CSearchExpr* pexpr) - - // optimize search expression, if no OR nor NOT specified - if (iOpAnd > 0 && iOpOr == 0 && iOpNot == 0) { -+ // figure out if we can use a better keyword than the one the user selected -+ // for example most user will search like this "The oxymoronaccelerator 2", which would ask the node which indexes "the" -+ // This causes higher traffic for such nodes and makes them a viable target to attackers, while the kad result should be -+ // the same or even better if we ask the node which indexes the rare keyword "oxymoronaccelerator", so we try to rearrange -+ // keywords and generally assume that the longer keywords are rarer -+ if (/*thePrefs::GetRearrangeKadSearchKeywords() &&*/ !s_strCurKadKeyword.IsEmpty()) { -+ for (unsigned int i = 0; i < pexpr->m_aExpr.GetCount(); i++) { -+ if (pexpr->m_aExpr[i] != SEARCHOPTOK_AND) { -+ if (pexpr->m_aExpr[i] != s_strCurKadKeyword -+ && pexpr->m_aExpr[i].find_first_of(Kademlia::CSearchManager::GetInvalidKeywordChars()) == wxString::npos -+ && pexpr->m_aExpr[i].Find('"') != 0 // no quoted expressions as keyword -+ && pexpr->m_aExpr[i].length() >= 3 -+ && s_strCurKadKeyword.length() < pexpr->m_aExpr[i].length()) -+ { -+ s_strCurKadKeyword = pexpr->m_aExpr[i]; -+ } -+ } -+ } -+ } - wxString strAndTerms; - for (unsigned int i = 0; i < pexpr->m_aExpr.GetCount(); i++) { - if (pexpr->m_aExpr[i] != SEARCHOPTOK_AND) { -@@ -285,7 +304,7 @@ void CSearchList::RemoveResults(long searchID) - } - - --wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CSearchParams& params) -+wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, CSearchParams& params) - { - // Check that we can actually perform the specified desired search. - if ((type == KadSearch) && !Kademlia::CKademlia::IsRunning()) { -@@ -306,6 +325,16 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS - m_resultType.Clear(); - } - -+ if (type == KadSearch) { -+ Kademlia::WordList words; -+ Kademlia::CSearchManager::GetWords(params.searchString, &words); -+ if (!words.empty()) { -+ params.strKeyword = words.front(); -+ } else { -+ return _("No keyword for Kad search - aborting"); -+ } -+ } -+ - bool supports64bit = type == KadSearch ? true : theApp->serverconnect->GetCurrentServer() != NULL && (theApp->serverconnect->GetCurrentServer()->GetTCPFlags() & SRV_TCPFLG_LARGEFILES); - bool packetUsing64bit; - -@@ -332,8 +361,7 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS - - // searchstring will get tokenized there - // The tab must be created with the Kad search ID, so searchID is updated. -- Kademlia::CSearch* search = Kademlia::CSearchManager::PrepareFindKeywords( -- params.searchString, data->GetLength(), data->GetRawBuffer(), *searchID); -+ Kademlia::CSearch* search = Kademlia::CSearchManager::PrepareFindKeywords(params.strKeyword, data->GetLength(), data->GetRawBuffer(), *searchID); - - *searchID = search->GetSearchID(); - m_currentSearch = *searchID; -@@ -632,7 +660,7 @@ void CSearchList::StopSearch(bool globalOnly) - } - - --CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& params, SearchType WXUNUSED(type), bool supports64bit, bool& packetUsing64bit) -+CSearchList::CMemFilePtr CSearchList::CreateSearchData(CSearchParams& params, SearchType type, bool supports64bit, bool& packetUsing64bit) - { - // Count the number of used parameters - unsigned int parametercount = 0; -@@ -659,14 +687,16 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para - _astrParserErrors.Empty(); - _SearchExpr.m_aExpr.Empty(); - -+ s_strCurKadKeyword.Clear(); -+ if (type == KadSearch) { -+ wxASSERT( !params.strKeyword.IsEmpty() ); -+ s_strCurKadKeyword = params.strKeyword; -+ } -+ - LexInit(params.searchString); - int iParseResult = yyparse(); - LexFree(); - --#ifdef __DEBUG__ -- AddLogLineNS(CFormat(wxT("Search parsing result for \"%s\": %i")) -- % params.searchString % iParseResult); --#endif - if (_astrParserErrors.GetCount() > 0) { - for (unsigned int i=0; i < _astrParserErrors.GetCount(); ++i) { - AddLogLineNS(CFormat(wxT("Error %u: %s\n")) % i % _astrParserErrors[i]); -@@ -681,21 +711,13 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para - return CMemFilePtr(NULL); - } - -- #ifdef __DEBUG__ -- wxString mes(wxT("Search expression:")); -- for (unsigned int i = 0; i < _SearchExpr.m_aExpr.GetCount(); i++) { -- mes << wxT(" ") << _SearchExpr.m_aExpr[i]; -+ if (type == KadSearch && s_strCurKadKeyword != params.strKeyword) { -+ AddDebugLogLineN(logSearch, CFormat(wxT("Keyword was rearranged, using '%s' instead of '%s'")) % s_strCurKadKeyword % params.strKeyword); -+ params.strKeyword = s_strCurKadKeyword; - } -- AddLogLineNS(mes); -- AddLogLineNS(CFormat(wxT("Expression count: %i")) % _SearchExpr.m_aExpr.GetCount()); -- #endif - - parametercount += _SearchExpr.m_aExpr.GetCount(); - -- #ifdef __DEBUG__ -- AddLogLineNS(CFormat(wxT("Parameters: %i")) % parametercount); -- #endif -- - /* Leave the unicode comment there, please... */ - CSearchExprTarget target(data.get(), true /*I assume everyone is unicoded */ ? utf8strRaw : utf8strNone, supports64bit, packetUsing64bit); - -diff --git a/src/SearchList.h b/src/SearchList.h -index 35b0fc6..6db7508 100644 ---- a/src/SearchList.h -+++ b/src/SearchList.h -@@ -64,6 +64,8 @@ class CSearchList : public wxEvtHandler - - //! The actual string to search for. - wxString searchString; -+ //! The keyword selected for Kad search -+ wxString strKeyword; - //! The type of files to search for (may be empty), one of ED2KFTSTR_* - wxString typeText; - //! The filename extension. May be empty. -@@ -90,7 +92,7 @@ class CSearchList : public wxEvtHandler - * @param params The search parameters, see CSearchParams. - * @return An empty string on success, otherwise an error-message. - */ -- wxString StartNewSearch(uint32* searchID, SearchType type, const CSearchParams& params); -+ wxString StartNewSearch(uint32* searchID, SearchType type, CSearchParams& params); - - /** Stops the current search (global or Kad), if any is in progress. */ - void StopSearch(bool globalOnly = false); -@@ -189,7 +191,7 @@ class CSearchList : public wxEvtHandler - typedef std::auto_ptr CMemFilePtr; - - /** Create a basic search-packet for the given search-type. */ -- CMemFilePtr CreateSearchData(const CSearchParams& params, SearchType type, bool supports64bit, bool& packetUsing64bit); -+ CMemFilePtr CreateSearchData(CSearchParams& params, SearchType type, bool supports64bit, bool& packetUsing64bit); - - - //! Timer used for global search intervals. -diff --git a/src/kademlia/kademlia/SearchManager.cpp b/src/kademlia/kademlia/SearchManager.cpp -index e7f25d4..f9ee924 100644 ---- a/src/kademlia/kademlia/SearchManager.cpp -+++ b/src/kademlia/kademlia/SearchManager.cpp -@@ -127,7 +127,7 @@ CSearch* CSearchManager::PrepareFindKeywords(const wxString& keyword, uint32_t s - - wxString wstrKeyword = s->m_words.front(); - -- AddLogLineNS(CFormat(_("Keyword for search: %s")) % wstrKeyword); -+ AddDebugLogLineN(logSearch, CFormat(wxT("Keyword for search: %s")) % wstrKeyword); - - // Kry - I just decided to assume everyone is unicoded - // GonoszTopi - seconded diff --git a/package/lean/amule/patches/006_update-libupnp.patch b/package/lean/amule/patches/006_update-libupnp.patch deleted file mode 100644 index a66c33bad..000000000 --- a/package/lean/amule/patches/006_update-libupnp.patch +++ /dev/null @@ -1,365 +0,0 @@ -diff -Naur a/m4/libupnp.m4 b/m4/libupnp.m4 ---- a/m4/libupnp.m4 2016-10-06 18:49:44.000000000 +0800 -+++ b/m4/libupnp.m4 2019-12-11 22:13:19.008225399 +0800 -@@ -45,11 +45,16 @@ - - dnl Test for --with-libupnp-prefix - AC_ARG_WITH( -- [libupnp-prefix], -- [AS_HELP_STRING( -+ [libupnp-prefix],[ -+ AS_HELP_STRING( - [--with-libupnp-prefix=PREFIX], -- [UPnP library location])], -- [export PKG_CONFIG_PATH=$withval/lib/pkgconfig]) -+ [UPnP library location])],[ -+ AS_IF([test -d "$withval/lib64/pkgconfig"],[ -+ export PKG_CONFIG_PATH=$withval/lib64/pkgconfig -+ ],[ -+ export PKG_CONFIG_PATH=$withval/lib/pkgconfig -+ ]) -+ ]) - - dnl Check for libupnp >= MIN_LIBUPNP_VERSION - AS_IF([test $cross_compiling = no], [ -diff -Naur a/src/UPnPBase.cpp b/src/UPnPBase.cpp ---- a/src/UPnPBase.cpp 2016-10-06 18:49:44.000000000 +0800 -+++ b/src/UPnPBase.cpp 2019-12-11 22:15:04.536768532 +0800 -@@ -1127,7 +1127,11 @@ - - - // This function is static -+#if UPNP_VERSION >= 10800 -+int CUPnPControlPoint::Callback(Upnp_EventType_e EventType, const void *Event, void * /*Cookie*/) -+#else - int CUPnPControlPoint::Callback(Upnp_EventType EventType, void *Event, void * /*Cookie*/) -+#endif - { - std::ostringstream msg; - std::ostringstream msg2; -@@ -1149,24 +1153,47 @@ - msg2<< "UPNP_DISCOVERY_SEARCH_RESULT: "; - // UPnP Discovery - upnpDiscovery: -+#if UPNP_VERSION >= 10800 -+ UpnpDiscovery *d_event = (UpnpDiscovery *)Event; -+#else - struct Upnp_Discovery *d_event = (struct Upnp_Discovery *)Event; -+#endif - IXML_Document *doc = NULL; -+#if UPNP_VERSION >= 10800 -+ int errCode = UpnpDiscovery_get_ErrCode(d_event); -+ if (errCode != UPNP_E_SUCCESS) { -+ msg << UpnpGetErrorMessage(errCode) << "."; -+#else - int ret; - if (d_event->ErrCode != UPNP_E_SUCCESS) { - msg << UpnpGetErrorMessage(d_event->ErrCode) << "."; -+#endif - AddDebugLogLineC(logUPnP, msg); - } - // Get the XML tree device description in doc -+#if UPNP_VERSION >= 10800 -+ const char *location = UpnpDiscovery_get_Location_cstr(d_event); -+ int ret = UpnpDownloadXmlDoc(location, &doc); -+#else - ret = UpnpDownloadXmlDoc(d_event->Location, &doc); -+#endif - if (ret != UPNP_E_SUCCESS) { - msg << "Error retrieving device description from " << -+#if UPNP_VERSION >= 10800 -+ location << ": " << -+#else - d_event->Location << ": " << -+#endif - UpnpGetErrorMessage(ret) << - "(" << ret << ")."; - AddDebugLogLineC(logUPnP, msg); - } else { - msg2 << "Retrieving device description from " << -+#if UPNP_VERSION >= 10800 -+ location << "."; -+#else - d_event->Location << "."; -+#endif - AddDebugLogLineN(logUPnP, msg2); - } - if (doc) { -@@ -1194,8 +1221,14 @@ - AddDebugLogLineC(logUPnP, msg); - } - // Add the root device to our list -+#if UPNP_VERSION >= 10800 -+ int expires = UpnpDiscovery_get_Expires(d_event); -+ upnpCP->AddRootDevice(rootDevice, urlBase, -+ location, expires); -+#else - upnpCP->AddRootDevice(rootDevice, urlBase, - d_event->Location, d_event->Expires); -+#endif - } - // Free the XML doc tree - IXML::Document::Free(doc); -@@ -1216,28 +1249,62 @@ - case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE: { - //fprintf(stderr, "Callback: UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE\n"); - // UPnP Device Removed -+#if UPNP_VERSION >= 10800 -+ UpnpDiscovery *dab_event = (UpnpDiscovery *)Event; -+ int errCode = UpnpDiscovery_get_ErrCode(dab_event); -+ if (errCode != UPNP_E_SUCCESS) { -+#else - struct Upnp_Discovery *dab_event = (struct Upnp_Discovery *)Event; - if (dab_event->ErrCode != UPNP_E_SUCCESS) { -+#endif - msg << "error(UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE): " << -+#if UPNP_VERSION >= 10800 -+ UpnpGetErrorMessage(errCode) << -+#else - UpnpGetErrorMessage(dab_event->ErrCode) << -+#endif - "."; - AddDebugLogLineC(logUPnP, msg); - } -+#if UPNP_VERSION >= 10800 -+ std::string devType = UpnpDiscovery_get_DeviceType_cstr(dab_event); -+#else - std::string devType = dab_event->DeviceType; -+#endif - // Check for an InternetGatewayDevice and removes it from the list -+ - std::transform(devType.begin(), devType.end(), devType.begin(), tolower); -+ - if (stdStringIsEqualCI(devType, UPnP::Device::IGW)) { -+#if UPNP_VERSION >= 10800 -+ const char *deviceID = -+ UpnpDiscovery_get_DeviceID_cstr(dab_event); -+ upnpCP->RemoveRootDevice(deviceID); -+#else - upnpCP->RemoveRootDevice(dab_event->DeviceId); -+#endif - } - break; - } - case UPNP_EVENT_RECEIVED: { - //fprintf(stderr, "Callback: UPNP_EVENT_RECEIVED\n"); - // Event reveived -+#if UPNP_VERSION >= 10800 -+ UpnpEvent *e_event = (UpnpEvent *)Event; -+ int eventKey = UpnpEvent_get_EventKey(e_event); -+ IXML_Document *changedVariables = -+ UpnpEvent_get_ChangedVariables(e_event); -+ const std::string sid = UpnpEvent_get_SID_cstr(e_event); -+#else - struct Upnp_Event *e_event = (struct Upnp_Event *)Event; - const std::string Sid = e_event->Sid; -+#endif - // Parses the event -+#if UPNP_VERSION >= 10800 -+ upnpCP->OnEventReceived(sid, eventKey, changedVariables); -+#else - upnpCP->OnEventReceived(Sid, e_event->EventKey, e_event->ChangedVariables); -+#endif - break; - } - case UPNP_EVENT_SUBSCRIBE_COMPLETE: -@@ -1252,24 +1319,42 @@ - //fprintf(stderr, "Callback: UPNP_EVENT_RENEWAL_COMPLETE\n"); - msg << "error(UPNP_EVENT_RENEWAL_COMPLETE): "; - upnpEventRenewalComplete: -+#if UPNP_VERSION >= 10800 -+ UpnpEventSubscribe *es_event = (UpnpEventSubscribe *)Event; -+ int errCode = UpnpEventSubscribe_get_ErrCode(es_event); -+ if (errCode != UPNP_E_SUCCESS) { -+#else - struct Upnp_Event_Subscribe *es_event = - (struct Upnp_Event_Subscribe *)Event; - if (es_event->ErrCode != UPNP_E_SUCCESS) { -+#endif - msg << "Error in Event Subscribe Callback"; -+#if UPNP_VERSION >= 10800 -+ UPnP::ProcessErrorMessage(msg.str(), errCode, NULL, NULL); -+#else - UPnP::ProcessErrorMessage( - msg.str(), es_event->ErrCode, NULL, NULL); -+#endif - } else { - #if 0 -+#if UPNP_VERSION >= 10800 -+ -+ const UpnpString *publisherUrl = -+ UpnpEventSubscribe_get_PublisherUrl(es_event); -+ const char *sid = UpnpEvent_get_SID_cstr(es_event); -+ int timeOut = UpnpEvent_get_TimeOut(es_event); -+ TvCtrlPointHandleSubscribeUpdate( -+ publisherUrl, sid, timeOut); -+#else - TvCtrlPointHandleSubscribeUpdate( - GET_UPNP_STRING(es_event->PublisherUrl), - es_event->Sid, - es_event->TimeOut ); - #endif -+#endif - } -- - break; - } -- - case UPNP_EVENT_AUTORENEWAL_FAILED: - //fprintf(stderr, "Callback: UPNP_EVENT_AUTORENEWAL_FAILED\n"); - msg << "error(UPNP_EVENT_AUTORENEWAL_FAILED): "; -@@ -1280,29 +1365,56 @@ - msg << "error(UPNP_EVENT_SUBSCRIPTION_EXPIRED): "; - msg2 << "UPNP_EVENT_SUBSCRIPTION_EXPIRED: "; - upnpEventSubscriptionExpired: -+#if UPNP_VERSION >= 10800 -+ UpnpEventSubscribe *es_event = (UpnpEventSubscribe *)Event; -+#else - struct Upnp_Event_Subscribe *es_event = - (struct Upnp_Event_Subscribe *)Event; -+#endif - Upnp_SID newSID; - memset(newSID, 0, sizeof(Upnp_SID)); - int TimeOut = 1801; -+#if UPNP_VERSION >= 10800 -+ const char *publisherUrl = -+ UpnpEventSubscribe_get_PublisherUrl_cstr(es_event); -+#endif - int ret = UpnpSubscribe( - upnpCP->m_UPnPClientHandle, -+#if UPNP_VERSION >= 10800 -+ publisherUrl, -+#else - GET_UPNP_STRING(es_event->PublisherUrl), -+#endif - &TimeOut, - newSID); - if (ret != UPNP_E_SUCCESS) { - msg << "Error Subscribing to EventURL"; -+#if UPNP_VERSION >= 10800 -+ int errCode = UpnpEventSubscribe_get_ErrCode(es_event); -+#endif - UPnP::ProcessErrorMessage( -+#if UPNP_VERSION >= 10800 -+ msg.str(), errCode, NULL, NULL); -+#else - msg.str(), es_event->ErrCode, NULL, NULL); -+#endif - } else { - ServiceMap::iterator it = -+#if UPNP_VERSION >= 10800 -+ upnpCP->m_ServiceMap.find(publisherUrl); -+#else - upnpCP->m_ServiceMap.find(GET_UPNP_STRING(es_event->PublisherUrl)); -+#endif - if (it != upnpCP->m_ServiceMap.end()) { - CUPnPService &service = *(it->second); - service.SetTimeout(TimeOut); - service.SetSID(newSID); - msg2 << "Re-subscribed to EventURL '" << -+#if UPNP_VERSION >= 10800 -+ publisherUrl << -+#else - GET_UPNP_STRING(es_event->PublisherUrl) << -+#endif - "' with SID == '" << - newSID << "'."; - AddDebugLogLineC(logUPnP, msg2); -@@ -1321,17 +1433,34 @@ - case UPNP_CONTROL_ACTION_COMPLETE: { - //fprintf(stderr, "Callback: UPNP_CONTROL_ACTION_COMPLETE\n"); - // This is here if we choose to do this asynchronously -+#if UPNP_VERSION >= 10800 -+ UpnpActionComplete *a_event = (UpnpActionComplete *)Event; -+ int errCode = UpnpActionComplete_get_ErrCode(a_event); -+ IXML_Document *actionResult = -+ UpnpActionComplete_get_ActionResult(a_event); -+ if (errCode != UPNP_E_SUCCESS) { -+#else - struct Upnp_Action_Complete *a_event = - (struct Upnp_Action_Complete *)Event; - if (a_event->ErrCode != UPNP_E_SUCCESS) { -+#endif - UPnP::ProcessErrorMessage( - "UpnpSendActionAsync", -+#if UPNP_VERSION >= 10800 -+ errCode, NULL, -+ actionResult); -+#else - a_event->ErrCode, NULL, - a_event->ActionResult); -+#endif - } else { - // Check the response document - UPnP::ProcessActionResponse( -+#if UPNP_VERSION >= 10800 -+ actionResult, -+#else - a_event->ActionResult, -+#endif - ""); - } - /* No need for any processing here, just print out results. -@@ -1342,22 +1471,43 @@ - case UPNP_CONTROL_GET_VAR_COMPLETE: { - //fprintf(stderr, "Callback: UPNP_CONTROL_GET_VAR_COMPLETE\n"); - msg << "error(UPNP_CONTROL_GET_VAR_COMPLETE): "; -+#if UPNP_VERSION >= 10800 -+ UpnpStateVarComplete *sv_event = (UpnpStateVarComplete *)Event; -+ int errCode = UpnpStateVarComplete_get_ErrCode(sv_event); -+ if (errCode != UPNP_E_SUCCESS) { -+#else - struct Upnp_State_Var_Complete *sv_event = - (struct Upnp_State_Var_Complete *)Event; - if (sv_event->ErrCode != UPNP_E_SUCCESS) { -+#endif - msg << "m_UpnpGetServiceVarStatusAsync"; - UPnP::ProcessErrorMessage( -+#if UPNP_VERSION >= 10800 -+ msg.str(), errCode, NULL, NULL); -+#else - msg.str(), sv_event->ErrCode, NULL, NULL); -+#endif - } else { - #if 0 - // Warning: The use of UpnpGetServiceVarStatus and - // UpnpGetServiceVarStatusAsync is deprecated by the - // UPnP forum. -+#if UPNP_VERSION >= 10800 -+ const char *ctrlUrl = -+ UpnpStateVarComplete_get_CtrlUrl(sv_event); -+ const char *stateVarName = -+ UpnpStateVarComplete_get_StateVarName(sv_event); -+ const DOMString currentVal = -+ UpnpStateVarComplete_get_CurrentVal(sv_event); -+ TvCtrlPointHandleGetVar( -+ ctrlUrl, stateVarName, currentVal); -+#else - TvCtrlPointHandleGetVar( - sv_event->CtrlUrl, - sv_event->StateVarName, - sv_event->CurrentVal ); - #endif -+#endif - } - break; - } -diff -Naur a/src/UPnPBase.h b/src/UPnPBase.h ---- a/src/UPnPBase.h 2016-10-06 18:49:44.000000000 +0800 -+++ b/src/UPnPBase.h 2019-12-11 22:16:28.165063153 +0800 -@@ -489,9 +489,15 @@ - - // Callback function - static int Callback( -+ #if UPNP_VERSION >= 10800 -+ Upnp_EventType_e EventType, -+ const void *Event, -+ void *Cookie); -+ #else - Upnp_EventType EventType, - void* Event, - void* Cookie); -+ #endif - - private: - void OnEventReceived( diff --git a/package/lean/amule/patches/007-binutils.patch b/package/lean/amule/patches/007-binutils.patch deleted file mode 100644 index 600a47620..000000000 --- a/package/lean/amule/patches/007-binutils.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/src/libs/common/MuleDebug.cpp 2016-10-06 18:49:44.000000000 +0800 -+++ b/src/libs/common/MuleDebug.cpp 2021-06-17 02:16:40.000000000 +0800 -@@ -268,14 +268,14 @@ - return; - } - -- bfd_vma vma = bfd_get_section_vma(abfd, section); -+ bfd_vma vma = bfd_section_vma(section); - - unsigned long address = (unsigned long)_address; - if (address < vma) { - return; - } - -- bfd_size_type size = bfd_section_size(abfd, section); -+ bfd_size_type size = bfd_section_size(section); - if (address > (vma + size)) { - return; - } diff --git a/package/lean/amule/patches/008-upnp2.patch b/package/lean/amule/patches/008-upnp2.patch deleted file mode 100644 index 20592509c..000000000 --- a/package/lean/amule/patches/008-upnp2.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/UPnPBase.cpp b/src/UPnPBase.cpp -index 46ac7451e..dd244e5b0 100644 ---- a/src/UPnPBase.cpp -+++ b/src/UPnPBase.cpp -@@ -828,9 +828,9 @@ - int ret; - char *ipAddress = NULL; - unsigned short port = 0; -- ret = UpnpInit(ipAddress, udpPort); -+ ret = UpnpInit2(0, udpPort); - if (ret != UPNP_E_SUCCESS) { -- msg << "error(UpnpInit): Error code "; -+ msg << "error(UpnpInit2): Error code "; - goto error; - } - port = UpnpGetServerPort();