让aMule For Linux支持DLP的源码补丁 v3903

作者:greensea
原文:gsea.com.cncnbeta.com
该文使用CC-by-nc-sa 2.5 cn进行许可。
更多帖子参见forum.ubuntu.org.cn上的:这里这里
googlecode上的libantixunlei项目

Linux下一直没有能支持DLP的电驴客户端,为了避免被吸血,一直以来只好使用wine来运行Windows下支持DLP的电驴客户端,或者是忍受被吸血的痛苦。现在广大Linux用户可以不在为被吸血而头疼了,aMule的DLP源码补丁可以让aMule支持反吸血。不过稍显麻烦的是,aMule没有提供接口,所以DLP是直接编译到aMule里面去的,也就是说想要让aMule用上DLP的话,还得重新编译aMule。目前aMule的源码补丁使用的是官方的DLP39版本。

aMule没有提供接口的功能,于是就直接修改其源码将DLP编译进去。但是这样做会导致DLP升级困难啊……不管了,这种事情以后再说,反正也不是什么难事,我已经把DLP中的几个函数统一成一个函数了,不过这样也就不支持自定义需要屏蔽的对象了。

DLP39版本,从源码中看到,Xunlei和TUOTU已在其列,但似乎没有发现某哇嘎嘎,记得其特征应该是eMule 0.47c和3-5长度的随机用户名,可能对哇嘎嘎的判断写在那个逻辑比较复杂的我没有仔细看的函数里面了。

DLP源码是满眼的MFC数据类型,为了能在Linux下编译出DLP,我把数据类型都定义成了Linux下面的等同的数据类型,并找了一个CString类库,还修改了DLP源码的部分地方,才总算成功地在Linux下把DLP编译出来。

接下来是补丁地址,最后是效果截图,第二图重点看右边靠下的蓝字。(注:以下aMule版本均为最新的2.2.6 For Linux,DLP版本为v39官方版,补丁版本为v3903)

aMule (Linux) DLP支持的源码补丁

已经打上DLP支持补丁的源码

更新:
aMule (Linux) DLP支持的源码补丁 v3904

GoogleCode上的libantixunlei反迅雷项目页:
http://code.google.com/p/libantixunlei/

支持DLP的aMule截图

支持DLP的aMule截图

11条评论隐藏

  1. #1 chengr28
    2009年10月19日 周一 17:13 | 回复

    尽管可能存在不完善的地方,不过能制作出来已经很不错
    牛人,支持一个 😀

  2. #2 mikeven
    2009年10月19日 周一 17:23 | 回复

    在中国,Linux和mac用户终于有能用的电驴了,。。。
    感动

  3. #3 fdhh
    2009年10月19日 周一 19:31 | 回复

    IED2K和中國驢都訪問不了了。。。。

  4. #4 chengr28
    2009年10月20日 周二 01:18 | 回复

    @fdhh
    ieD2k因为换服务器所以暂时不能访问,不过现在似乎OK了
    中国驴是机房的问题,估计也很快会解决

  5. #5 hardcore
    2009年10月21日 周三 08:03 | 回复

    这个是个大好消息阿…….可惜我现在不能P2P…天天只能上上网页了….

  6. 2009年10月28日 周三 18:26 | 回复

    几天不来,又有新鲜重磅好消息啊。

    希望AMULE越来越好,能够提供更多的扩展接口! 😀

  7. 2009年12月10日 周四 13:05 | 回复

    有编译好的mac版的吗?
    我不会编译啊…… :mrgreen:

  8. #8 五十年
    2009年12月12日 周六 18:37 | 回复

    有没有编译好的for mss的版本?

  9. #9 PhoenixEmik
    2010年2月2日 周二 11:43 | 回复

    @歪歪儿
    您不是自己编译了一个吗。。。这里 :mrgreen: 真是卧虎藏龙

  10. #10 TylerTemp
    2014年9月6日 周六 12:00 | 回复

    支持DLP的aMule截图 图挂了……

  11. #11 TylerTemp
    2014年9月6日 周六 12:18 | 回复

    Compiling RemoteConnect.cpp
    ECMuleSocket.cpp: In member function ‘virtual int CECMuleSocket::InternalGetLastError()’:
    ECMuleSocket.cpp:136:8: error: ‘wxSOCKET_DUMMY’ was not declared in this scope
    case wxSOCKET_DUMMY:
    ^
    make[7]: *** [ECMuleSocket.o] Error 1
    make[7]: *** Waiting for unfinished jobs….
    make[6]: *** [all] Error 2
    make[5]: *** [all-recursive] Error 1
    make[4]: *** [all] Error 2
    make[3]: *** [all-recursive] Error 1
    make[2]: *** [all-recursive] Error 1
    make[1]: *** [all-recursive] Error 1
    make: *** [all] Error 2
    … 为嘛会有”未声明”错误orz… 😥

发表评论

您的Email将不会显示出来。头像请至Gravatar.com注册上传。*号标注项为必填。

*
*
*
标签用法
字数:0