function UDPTracker (client, announceUrl, opts) {
  var self = this
  Tracker.call(self, client, announceUrl)
  debug('new udp tracker %s', announceUrl)

  self.cleanupFns = []
  self.maybeDestroyCleanup = null
}
/**
 * UDP torrent tracker client (for an individual tracker)
 *
 * @param {Client} client       parent bittorrent tracker client
 * @param {string} announceUrl  announce url of tracker
 * @param {Object} opts         options object
 */
UDP torrent tracker client (for an individual tracker)
@param {Client} client       parent bittorrent tracker client
@param {string} announceUrl  announce url of tracker
@param {Object} opts         options object
UDP torrent tracker client ( for an individual tracker ) @param { Client } client parent bittorrent tracker client @param { string } announceUrl announce url of tracker @param { Object } opts options object
function UDPTracker (client, announceUrl, opts) {
  var self = this
  Tracker.call(self, client, announceUrl)
  debug('new udp tracker %s', announceUrl)
  self.cleanupFns = []
  self.maybeDestroyCleanup = null
}
function UDPTracker ( client , announceUrl , opts ) { var self = this Tracker . call ( self , client , announceUrl ) debug ( 'new udp tracker %s' , announceUrl ) self . cleanupFns = [ ] self . maybeDestroyCleanup = null }
UDP torrent tracker client (for an individual tracker)
 @param {Client} client       parent bittorrent tracker client
 @param {string} announceUrl  announce url of tracker
 @param {Object} opts         options object
UDP torrent tracker client ( for an individual tracker ) @param { Client } client parent bittorrent tracker client @param { string } announceUrl announce url of tracker @param { Object } opts options object