0
Как можно напрямую поговорить с rtorrent через интерфейс scgi? Клиент XMLRPC от Ruby от stdlib может связываться только через HTTP-протокол, а rtorrent - только SCGI.Клиент Ruby SCGI/XMLRPC
Как можно напрямую поговорить с rtorrent через интерфейс scgi? Клиент XMLRPC от Ruby от stdlib может связываться только через HTTP-протокол, а rtorrent - только SCGI.Клиент Ruby SCGI/XMLRPC
как стартер:
#!ruby
require "xmlrpc/client"
class XMLRPC::RTorrent < XMLRPC::Client
def do_rpc(xml, async=false)
headers = {
'CONTENT_LENGTH' => xml.size,
'SCGI' => 1
}
header = "#{headers.to_a.flatten.join("\x00")}"
request = "#{header.size}:#{header},#{xml}"
TCPSocket.open(@host, @port) do |s|
s.write(request)
s.read.split(/\n\s*?\n/, 2)[1]
end
end
end
server = XMLRPC::RTorrent.new("127.0.0.1", '', 5000)
p server.call("system.listMethods")
игнорирует асинхр, rtorrent RPC находится на порту 5000.
более