直接觀看文章

為 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

尚無迴響

發表迴響

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

連結到 %s

Follow

Get every new post delivered to your Inbox.