Skip to content

為 rtorrent 加上 XMLRPC 支援

三月 27, 2008

昨晚深夜某個學弟打電話來求救問說了不了解 rotrrent 的程式碼,然後順便聽聽他自己研究所兩年的心酸血淚史,都快不能畢業了,還得拼了老命去幫老闆完成案子,重點是像 P2P 這類領域的東西,很難一個人去獨力完成的,而偏偏好死不死這個學弟為了求畢業,也只能硬著頭皮扛了下來。

就這樣長談了快一個小時,我只能加以道德勸說,剩下的時間不多,就種種層面來看,再這樣糊裡糊塗看那些像天書般的 C++ 程式碼,倒不如引用 XMLRPC 的好處,藉由外部來控制 rtorrent 還比較靈活點。

丟給他文件的 link 後,於是學弟決定再花點時間看怎麼開啟 rtorrent 的 XMLRPC 功能,在互道晚安後我也累翻睡倒了。

不幸的是,就在今晚,學弟還是沒辦法如願的透過 XMLRPC 連線 rtorrent,只好自己下海試試囉。

首先前提是 libtorrent 要先編繹 & 安裝好,接著請 apt-get 來幫我們裝上 libapache2-mod-scgi 與 libxmlrpc-c3 這兩個套件,而 rtorrent 則是在 configure 時多加上 –with-xmlrpc-c 的 flag 再進行編繹與安裝的動作。

在一切軟體環境都準備好後,執行 a2enmod scgi 以便啟動 scgi 模組,再修改 apache.conf 檔,加上如下的設定︰

SCGIMount /RPC2 127.0.0.1:5000

而自家目錄下的 .rtorrent.rc 檔則是加上如下的設定︰

scgi_port = localhost:5000

雖然官方文件說用 “scgi_local = /foo/bar" 是 the recommended way of using XMLRPC with rtorrent 但很抱歉我怎麼試都不成,所以還是沿用最保守的設定。

軟體、設定檔都準備好後,就可以先啟動 rtorrent 來測試啦,執行 rtorrent 時,如果沒意外,它會告訴你這段訊息︰

XMLRPC initialized with 409 functions.

就代表 rtorrent 這端沒問題,有開啟 XMLRPC 介面支援了,接下來再用 xmlrpc 指令來做測試,在 console 下執行 xmlrpc 並跟著兩個參數︰

$ xmlrpc localhost:8080 system.listMethods

因為我的 apache 是鎖在 8080 port 所以上面的 host 參數會加上 8080,而第二個參數則是請 rtorrent 列出目前的 method 列表回傳。更多的指令說明列表 (但看起來不完整) 可以在 這裡找到

簡單的測試就到此為止,相信學弟應該信心倍增可以繼續向前衝了,也期待他早日畢業趕快來我這裡上班 XD

廣告
No comments yet

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: