class QuartzTorrent::UdpTrackerAnnounceResponse
Attributes
interval[RW]
ips[RW]
leechers[RW]
ports[RW]
seeders[RW]
Public Class Methods
new()
click to toggle source
Calls superclass method
QuartzTorrent::UdpTrackerResponse::new
# File lib/quartz_torrent/udptrackermsg.rb, line 215 def initialize super @interval = nil @leechers = nil @seeders = nil @ips = [] @ports = [] end
unserialize(msg)
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 230 def self.unserialize(msg) raise "Invalid connect response: it is #{msg.length} when it must be at least 20" if msg.length < 20 result = UdpTrackerAnnounceResponse.new result.action = UdpTrackerMessage::unpackNetworkOrder(msg,4) result.transactionId = UdpTrackerMessage::unpackNetworkOrder(msg[4,4],4) result.interval = UdpTrackerMessage::unpackNetworkOrder(msg[8,4],4) result.leechers = UdpTrackerMessage::unpackNetworkOrder(msg[12,4],4) result.seeders = UdpTrackerMessage::unpackNetworkOrder(msg[16,4],4) index = 20 while index+6 < msg.length result.ips.push msg[index,4] result.ports.push msg[index+4,2] index += 6 end result end