讓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