当前位置: 首页>>代码示例>>C++>>正文


C++ DNSServiceRefDeallocate函数代码示例

本文整理汇总了C++中DNSServiceRefDeallocate函数的典型用法代码示例。如果您正苦于以下问题:C++ DNSServiceRefDeallocate函数的具体用法?C++ DNSServiceRefDeallocate怎么用?C++ DNSServiceRefDeallocate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了DNSServiceRefDeallocate函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: DNSServiceResolve

bool CZeroconfBrowserWIN::doResolveService(CZeroconfBrowser::ZeroconfService& fr_service, double f_timeout)
{
  DNSServiceErrorType err;
  DNSServiceRef sdRef = NULL;

  err = DNSServiceResolve(&sdRef, 0, kDNSServiceInterfaceIndexAny, fr_service.GetName(), fr_service.GetType(), fr_service.GetDomain(), ResolveCallback, &fr_service);

  if( err != kDNSServiceErr_NoError )
  {
    if (sdRef)
      DNSServiceRefDeallocate(sdRef);

    CLog::Log(LOGERROR, "ZeroconfBrowserWIN: DNSServiceResolve returned (error = %ld)", (int) err);
    return false;
  }

  err = DNSServiceProcessResult(sdRef);

  if (err != kDNSServiceErr_NoError)
      CLog::Log(LOGERROR, "ZeroconfBrowserWIN::doResolveService DNSServiceProcessResult returned (error = %ld)", (int) err);

  if (sdRef)
    DNSServiceRefDeallocate(sdRef);

  return true;
}
开发者ID:A600,项目名称:xbmc,代码行数:26,代码来源:ZeroconfBrowserWIN.cpp

示例2: lock

void CZeroconfMDNS::doStop()
{
  {
    CSingleLock lock(m_data_guard);
    CLog::Log(LOGDEBUG, "ZeroconfMDNS: Shutdown services");
    for(tServiceMap::iterator it = m_services.begin(); it != m_services.end(); ++it)
    {
      DNSServiceRefDeallocate(it->second.serviceRef);
      TXTRecordDeallocate(&it->second.txtRecordRef);
      CLog::Log(LOGDEBUG, "ZeroconfMDNS: Removed service %s", it->first.c_str());
    }
    m_services.clear();
  }
  {
    CSingleLock lock(m_data_guard);
#if defined(TARGET_WINDOWS_STORE)
    CLog::Log(LOGERROR, "ZeroconfMDNS: WSAAsyncSelect not yet supported for TARGET_WINDOWS_STORE");
#else
    WSAAsyncSelect( (SOCKET) DNSServiceRefSockFD( m_service ), g_hWnd, BONJOUR_EVENT, 0 );
#endif //TARGET_WINDOWS

    if (m_service)
      DNSServiceRefDeallocate(m_service);
    m_service = NULL;
  }
}
开发者ID:68foxboris,项目名称:xbmc,代码行数:26,代码来源:ZeroconfMDNS.cpp

示例3: FreeOutAll

void FreeOutAll(void)
{
	struct connection_out *next = Outbound_Control.head;
	struct connection_out *now;

	Outbound_Control.head = NULL;
	Outbound_Control.active = 0;
	while (next) {
		now = next;
		next = now->next;
		LEVEL_DEBUG("Freeing outbound %s #%d",now->zero.name,now->index);
		SAFEFREE(now->zero.name) ;
		SAFEFREE(now->zero.type) ;
		SAFEFREE(now->zero.domain) ;
		SAFEFREE(now->name) ;
		SAFEFREE(now->host) ;
		SAFEFREE(now->service) ;
		if (now->ai) {
			freeaddrinfo(now->ai);
			now->ai = NULL;
		}
#if OW_ZERO
		if (libdnssd != NULL) {
			if (now->sref0) {
				DNSServiceRefDeallocate(now->sref0);
			}
			if (now->sref1) {
				DNSServiceRefDeallocate(now->sref1);
			}
		}
#endif
		owfree(now);
	}
}
开发者ID:GrandHsu,项目名称:iicontrollibs,代码行数:34,代码来源:ow_connect_out.c

示例4: main

int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char*argv[]) {

    DNSServiceRef ref1, ref2, ref3, ref4 = NULL;

    DNSServiceRegister(&ref1, 0, 0, "simple", "_simple._tcp", NULL, NULL, 4711, 0, NULL, NULL, NULL);
    DNSServiceRegister(&ref2, 0, 0, "subtype #1", "_simple._tcp,_subtype1", NULL, NULL, 4711, 0, NULL, NULL, NULL);
    DNSServiceRegister(&ref3, 0, 0, "subtype #2", "_simple._tcp,_subtype1,_subtype2", NULL, NULL, 4711, 0, NULL, NULL, NULL);

    DNSServiceRegister(&ref4, 0, 0, "subtype #3", "_simple._tcp,,", NULL, NULL, 4711, 0, NULL, NULL, NULL);
    assert(!ref4);
    DNSServiceRegister(&ref4, 0, 0, "subtype #3", "", NULL, NULL, 4711, 0, NULL, NULL, NULL);
    assert(!ref4);
    DNSServiceRegister(&ref4, 0, 0, "subtype #3", ",", NULL, NULL, 4711, 0, NULL, NULL, NULL);
    assert(!ref4);
    DNSServiceRegister(&ref4, 0, 0, "subtype #3", ",,", NULL, NULL, 4711, 0, NULL, NULL, NULL);
    assert(!ref4);

    DNSServiceBrowse(&ref4, 0, 0, "_simple._tcp,_gurke", NULL, reply, NULL);

    sleep(20);

    DNSServiceRefDeallocate(ref1);
    DNSServiceRefDeallocate(ref2);
    DNSServiceRefDeallocate(ref3);
    DNSServiceRefDeallocate(ref4);

    return 0;
}
开发者ID:RidgeRun,项目名称:eval-sdk-imx6-hummingboard,代码行数:28,代码来源:null-test.c

示例5: player_sd_fini

void
player_sd_fini(player_sd_t* sd)
{
  int i;
  player_sd_mdns_t* mdns = (player_sd_mdns_t*)(sd->sdRef);

  if(mdns->browseRef_valid)
  {
    DNSServiceRefDeallocate(mdns->browseRef);
    mdns->browseRef_valid = 0;
  }

  for(i=0;i<mdns->mdnsDevs_len;i++)
  {
    if(mdns->mdnsDevs[i].valid)
    {
      DNSServiceRefDeallocate(mdns->mdnsDevs[i].regRef);
      mdns->mdnsDevs[i].valid = 0;
    }
  }
  
  pthread_mutex_destroy(&(mdns->mutex));

  if(mdns->mdnsDevs)
    free(mdns->mdnsDevs);
  free(mdns);
  free(sd);
}
开发者ID:brunoellll,项目名称:player-git-svn,代码行数:28,代码来源:playersd_mdns.c

示例6: WSAAsyncSelect

OSStatus
CConfigPropertySheet::TearDownBrowsing()
{
	OSStatus err = kNoErr;

	if ( m_browseDomainsRef )
	{
		err = WSAAsyncSelect( DNSServiceRefSockFD( m_browseDomainsRef ), m_hWnd, 0, 0 );
		check_noerr( err );

		DNSServiceRefDeallocate( m_browseDomainsRef );
	
		m_browseDomainsRef = NULL;
	}

	if ( m_regDomainsRef )
	{
		err = WSAAsyncSelect( DNSServiceRefSockFD( m_regDomainsRef ), m_hWnd, 0, 0 );
		check_noerr( err );

		DNSServiceRefDeallocate( m_regDomainsRef );
	
		m_regDomainsRef = NULL;
	}

	return err;
}
开发者ID:StephenMacras,项目名称:dsl-n55u-bender,代码行数:27,代码来源:ConfigPropertySheet.cpp

示例7: TerminateGameService

void TerminateGameService() {
	if ( localServer ) {
		localServer = false;
	}
	DNSServiceRefDeallocate( serviceRef );
	memset( serviceInterfaces, 0, sizeof( serviceInterfaces ) );
}
开发者ID:KoalaWarfare,项目名称:DOOM-IOS2,代码行数:7,代码来源:iphone_net.c

示例8: mdns_main_free

static int
mdns_main_free(void)
{
  struct mdns_service *s;
  struct mdns_browser *mb;
  struct mdns_record *r;

  for(s = mdns_services; mdns_services; s = mdns_services)
    {
      mdns_services = s->next;
      mdns_service_free(s);
    }

  for (mb = mdns_browsers; mdns_browsers; mb = mdns_browsers)
    {
      mdns_browsers = mb->next;
      mdns_browser_free(mb);
    }

  for (r = mdns_records; mdns_records; r = mdns_records)
    {
      mdns_records = r->next;
      mdns_record_free(r);
    }

  if(mdns_ev_main)
    event_free(mdns_ev_main);
  mdns_ev_main = NULL;
  if(mdns_sdref_main)
    DNSServiceRefDeallocate(mdns_sdref_main);
  mdns_sdref_main = NULL;

  return -1;
}
开发者ID:ejurgensen,项目名称:forked-daapd,代码行数:34,代码来源:mdns_dnssd.c

示例9: mdns_resolver_free

static int
mdns_resolver_free(struct mdns_resolver *rs) {

  struct mdns_addr_lookup *lu;

  if (! rs)
    return -1;

  /* free/cancel all lookups */
  for(lu = rs->lookups; lu; lu = rs->lookups)
    {
      rs->lookups = lu->next;
      mdns_addr_lookup_free(lu);
    }

  if(rs->timer)
    event_free(rs->timer);
  if(rs->sdref)
    DNSServiceRefDeallocate(rs->sdref);
  free(rs->service);
  free(rs->regtype);
  free(rs->domain);
  free(rs);

  return -1;
}
开发者ID:ejurgensen,项目名称:forked-daapd,代码行数:26,代码来源:mdns_dnssd.c

示例10: OW_Browse_Bonjour

// Called in a thread
static void * OW_Browse_Bonjour(void * v)
{
	struct connection_in * in = v ;
	DNSServiceErrorType dnserr;

	DETACH_THREAD;
	MONITOR_RLOCK ;
	dnserr = DNSServiceBrowse(&in->master.browse.bonjour_browse, 0, 0, "_owserver._tcp", NULL, BrowseBack, NULL);

	if (dnserr != kDNSServiceErr_NoError) {
		LEVEL_CONNECT("DNSServiceBrowse error = %d", dnserr);
		MONITOR_RUNLOCK ;
		return VOID_RETURN ;
	}

	// Blocks, which is why this is in it's own thread
	while (DNSServiceProcessResult(in->master.browse.bonjour_browse) == kDNSServiceErr_NoError) {
		//printf("DNSServiceProcessResult ref %ld\n",(long int)rs->sref) ;
		continue;
	}
	DNSServiceRefDeallocate(in->master.browse.bonjour_browse);
	in->master.browse.bonjour_browse = 0 ;
	MONITOR_RUNLOCK ;
	return VOID_RETURN;
}
开发者ID:M-o-a-T,项目名称:owfs,代码行数:26,代码来源:ow_browse.c

示例11: registration

  void registration(Thread *thread) {
    //  release calling thread semaphore
    thread->thread_ready();

    DNSServiceErrorType error;
    DNSServiceRef service;

    error = DNSServiceRegister(&service,
      0,                    // no flags
      0,                    // all network interfaces
      master_->name_.c_str(),         // name
      master_->service_type_.c_str(), // service type
      "",                   // register in default domain(s)
      NULL,                 // use default host name
      htons(master_->port_),// port number
      0,                    // length of TXT record
      NULL,                 // no TXT record
      Implementation::register_callback,  // callback function
      (void*)master_);         // context

    if (error == kDNSServiceErr_NoError) {
      pthread_cleanup_push(registration_cleanup, &service);
        register_service(service);
      pthread_cleanup_pop(0); // 0 = do not execute on pop
    } else {
      fprintf(stderr,"Could not register service %s.%s on port %u (error %d)\n", master_->name_.c_str(), master_->service_type_.c_str(), master_->port_, error);//, strerror(errno));
    }

    DNSServiceRefDeallocate(service);
  }
开发者ID:aspeteRakete,项目名称:oscit,代码行数:30,代码来源:zeroconf_registration.cpp

示例12: publish_main_service

static int publish_main_service(struct userdata *u) {
    DNSServiceErrorType err;
    TXTRecordRef txt;

    pa_assert(u);

    if (u->main_service) {
        DNSServiceRefDeallocate(u->main_service);
        u->main_service = NULL;
    }

    TXTRecordCreate(&txt, 0, NULL);
    txt_record_server_data(u->core, &txt);

    err = DNSServiceRegister(&u->main_service,
                             0, /* flags */
                             kDNSServiceInterfaceIndexAny,
                             u->service_name,
                             SERVICE_TYPE_SERVER,
                             NULL, /* domain */
                             NULL, /* host */
                             compute_port(u),
                             TXTRecordGetLength(&txt),
                             TXTRecordGetBytesPtr(&txt),
                             NULL, NULL);

    if (err != kDNSServiceErr_NoError) {
        pa_log("%s(): DNSServiceRegister() returned err %d", __func__, err);
        return err;
    }

    TXTRecordDeallocate(&txt);

    return 0;
}
开发者ID:Elemecca,项目名称:pulseaudio,代码行数:35,代码来源:module-bonjour-publish.c

示例13: socket_callback

/*
 * CFRunloop callback that calls DNSServiceProcessResult() when
 * there's new data on the socket.
 */
static void
socket_callback(CFSocketRef s, CFSocketCallBackType callbackType, CFDataRef address, const void *data, void *context)
{
	struct cbinfo *info = context;
	DNSServiceErrorType err;

	if (callbackType == kCFSocketNoCallBack) {
		printf("socket_callback: kCFSocketNoCallBack?\n");
		return;
	}

	if ((err = DNSServiceProcessResult(info->sdref)) != kDNSServiceErr_NoError) {
		printf("DNSServiceProcessResult() returned an error! %d\n", err);
		if (err == kDNSServiceErr_BadReference) {
			printf("bad reference?: %p, %d, %p, %p %p\n", s, (int)callbackType, address, data, context);
			return;
		}
		if ((context == &nfsinfo) || (context == &mountdinfo)) {
			/* bail if there's a problem with the main browse connection */
			exit(1);
		}
		/* dump the troublesome service connection */
		CFRunLoopRemoveSource(CFRunLoopGetCurrent(), info->rls, kCFRunLoopDefaultMode);
		CFRelease(info->rls);
		CFSocketInvalidate(info->sockref);
		CFRelease(info->sockref);
		DNSServiceRefDeallocate(info->sdref);
		free(info);
	}
}
开发者ID:Leon555,项目名称:Mac-src-essentials,代码行数:34,代码来源:mshow.c

示例14: dnssd_service_free_client

static void
dnssd_service_free_client(DNSServiceRef *client) {
  if (*client) {
    DNSServiceRefDeallocate(*client);
    *client = NULL;
  }
}
开发者ID:brianwells,项目名称:dnssd,代码行数:7,代码来源:service.c

示例15: PR_CancelJob

void
CBFDNSSDService::Cleanup()
{
	m_stopped = PR_TRUE;
	if ( m_job )
	{
		PR_CancelJob( m_job );
		m_job = NULL;
	}
	
	if ( m_threadPool != NULL )
	{
		PR_ShutdownThreadPool( m_threadPool );
		m_threadPool = NULL;
	}
	
	if ( m_fileDesc != NULL )
	{
		PR_Close( m_fileDesc );
		m_fileDesc = NULL;
	}
	
	if ( m_sdRef )
	{
		DNSServiceRefDeallocate( m_sdRef );
		m_sdRef = NULL;
	}
}
开发者ID:slmnhq,项目名称:bonjourfoxy,代码行数:28,代码来源:CBFDNSSDService.cpp


注:本文中的DNSServiceRefDeallocate函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。