def DNSServiceQueryRecord(flags=0, interfaceIndex=kDNSServiceInterfaceIndexAny, fullname=_NO_DEFAULT, rrtype=_NO_DEFAULT, rrclass=kDNSServiceClass_IN, callBack=None):
 _NO_DEFAULT.check(fullname)
 _NO_DEFAULT.check(rrtype)
 @_DNSServiceQueryRecordReply
 def _callback(sdRef, flags, interfaceIndex, errorCode, fullname, rrtype, rrclass, rdlen, rdata, ttl, context):
  if (callBack is not None):
   rdata = _length_and_void_p_to_string(rdlen, rdata)
   callBack(sdRef, flags, interfaceIndex, errorCode, fullname.decode(), rrtype, rrclass, rdata, ttl)
 _global_lock.acquire()
 try:
  sdRef = _DNSServiceQueryRecord(flags, interfaceIndex, fullname, rrtype, rrclass, _callback, None)
 finally:
  _global_lock.release()
 sdRef._add_callback(_callback)
 return sdRef

def DNSServiceQueryRecord ( flags = 0 , interfaceIndex = kDNSServiceInterfaceIndexAny , fullname = _NO_DEFAULT , rrtype = _NO_DEFAULT , rrclass = kDNSServiceClass_IN , callBack = None ) : _NO_DEFAULT . check ( fullname ) _NO_DEFAULT . check ( rrtype ) @ _DNSServiceQueryRecordReply def _callback ( sdRef , flags , interfaceIndex , errorCode , fullname , rrtype , rrclass , rdlen , rdata , ttl , context ) : if ( callBack is not None ) : rdata = _length_and_void_p_to_string ( rdlen , rdata ) callBack ( sdRef , flags , interfaceIndex , errorCode , fullname . decode ( ) , rrtype , rrclass , rdata , ttl ) _global_lock . acquire ( ) try : sdRef = _DNSServiceQueryRecord ( flags , interfaceIndex , fullname , rrtype , rrclass , _callback , None ) finally : _global_lock . release ( ) sdRef . _add_callback ( _callback ) return sdRef
query for an arbitrary dns record .