def receive_data(response)
      ip, port = peer_info
      log "Response from #{ip}:#{port}:\n#{response}\n"
      parsed_response = parse(response)

      return if parsed_response.has_key? :nts
      return if parsed_response[:man] &&
        parsed_response[:man] =~ /ssdp:discover/

      @discovery_responses << parsed_response
    end
def receive_data(response)
      ip, port = peer_info
      log "Response from #{ip}:#{port}:\n#{response}\n"
      parsed_response = parse(response)

      return if parsed_response.has_key? :nts
      return if parsed_response[:man] &&
        parsed_response[:man] =~ /ssdp:discover/

      @discovery_responses << parsed_response
    end
@param [String] search_target
 @param [Hash] options
 @option options [Fixnum] response_wait_time
 @option options [Fixnum] ttl
 @option options [Fixnum] m_search_count The number of times to send the
   M-SEARCH.  UPnP 1.0 suggests to send the request more than once.
 This is the callback called by EventMachine when it receives data on the
 socket that's been opened for this connection.  In this case, the method
 parses the SSDP responses/notifications into Hashes and adds them to the
 appropriate EventMachine::Channel (provided as accessor methods).  This
 effectively means that in each Channel, you get a Hash that represents
 the headers for each response/notification that comes in on the socket.

 @param [String] response The data received on this connection's socket.