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