InetAddress addr, int port, DNSOutgoing out )
InetAddress addr, int port, DNSOutgoing out, Vector additionals )
  private DNSOutgoing findService( DNSQuestion q, DNSIncoming in,                             InetAddress addr, int port, DNSOutgoing out )     throws IOException   {    ServiceInfo info = (ServiceInfo)services.get( q.name.toLowerCase() );    if( info != null )     {      if( ( q.type == DNSConstants.TYPE_SRV ) || ( q.type == DNSConstants.TYPE_ANY ) )       {        out = addAnswer( in, addr, port, out,                          new DNSRecord.Service( q.name, DNSConstants.TYPE_SRV,                                                DNSConstants.CLASS_IN | DNSConstants.CLASS_UNIQUE,                                                 DNSConstants.DNS_TTL, info.priority,                                                 info.weight, info.port, host.name ) );      }      if( ( q.type == DNSConstants.TYPE_TXT ) || ( q.type == DNSConstants.TYPE_ANY ) )       {        out = addAnswer( in, addr, port, out,                          new DNSRecord.Text(q.name, DNSConstants.TYPE_TXT,                                             DNSConstants.CLASS_IN | DNSConstants.CLASS_UNIQUE,                                            DNSConstants.DNS_TTL, info.text ) );      }    }    if( q.type == DNSConstants.TYPE_ANY )     {            //    System.err.println("Any Type: " + q);      // Also check for Address Records.      if( ( host != null ) && q.name.equalsIgnoreCase( host.name ) )       {        out = addAnswer(in, addr, port, out, host);      }      else            //lets  look at services        for( Enumeration tt = serviceTypes.elements(); tt.hasMoreElements(); ) {          String tname = (String) tt.nextElement();          if( tname.equalsIgnoreCase( q.name ) ) {            waitInterval( DNSConstants.SHARED_QUERY_TIME );                out = addAnswer( in, addr, port, out,                              new DNSRecord.Pointer( q.name, DNSConstants.TYPE_PTR,                                                     DNSConstants.CLASS_IN, DNSConstants.DNS_TTL, tname ) );          }        }          }    return out;  }