switch to new syntax
This commit is contained in:
@@ -97,15 +97,18 @@ CFString2utf8(CFStringRef string)
|
|||||||
static void
|
static void
|
||||||
retry_timer(void)
|
retry_timer(void)
|
||||||
{
|
{
|
||||||
dispatch_source_timer_create(DISPATCH_TIMER_ONESHOT,
|
dispatch_source_t s;
|
||||||
5ull * NSEC_PER_SEC,
|
dispatch_time_t t;
|
||||||
0,
|
|
||||||
NULL,
|
s = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,
|
||||||
g_queue,
|
0, 0, g_queue);
|
||||||
^(dispatch_event_t event){
|
t = dispatch_time(DISPATCH_TIME_NOW, 5ull * NSEC_PER_SEC);
|
||||||
create_dns_sd();
|
dispatch_source_set_timer(s, t, 0, NSEC_PER_SEC);
|
||||||
dispatch_release(dispatch_event_get_source(event));
|
dispatch_source_set_event_handler(s, ^{
|
||||||
});
|
create_dns_sd();
|
||||||
|
dispatch_release(s);
|
||||||
|
});
|
||||||
|
dispatch_resume(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -116,6 +119,7 @@ static void
|
|||||||
create_dns_sd(void)
|
create_dns_sd(void)
|
||||||
{
|
{
|
||||||
DNSServiceErrorType error;
|
DNSServiceErrorType error;
|
||||||
|
dispatch_source_t s;
|
||||||
|
|
||||||
error = DNSServiceCreateConnection(&g_dnsRef);
|
error = DNSServiceCreateConnection(&g_dnsRef);
|
||||||
if (error) {
|
if (error) {
|
||||||
@@ -124,22 +128,26 @@ create_dns_sd(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
dispatch_suspend(g_queue);
|
dispatch_suspend(g_queue);
|
||||||
dispatch_source_read_create(DNSServiceRefSockFD(g_dnsRef),
|
|
||||||
NULL,
|
s = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ,
|
||||||
g_queue,
|
DNSServiceRefSockFD(g_dnsRef),
|
||||||
^(dispatch_source_t ds){
|
0, g_queue);
|
||||||
if (dispatch_source_get_error(ds, NULL)) {
|
|
||||||
dispatch_release(ds);
|
dispatch_source_set_event_handler(s, ^{
|
||||||
return;
|
DNSServiceErrorType ret = DNSServiceProcessResult(g_dnsRef);
|
||||||
}
|
/* on error tear down and set timer to recreate */
|
||||||
DNSServiceErrorType ret = DNSServiceProcessResult(g_dnsRef);
|
if (ret != kDNSServiceErr_NoError && ret != kDNSServiceErr_Transient) {
|
||||||
/* on error tear down and set timer to recreate */
|
dispatch_source_cancel(s);
|
||||||
if (ret != kDNSServiceErr_NoError && ret != kDNSServiceErr_Transient) {
|
}
|
||||||
destroy_dns_sd();
|
});
|
||||||
retry_timer();
|
|
||||||
dispatch_cancel(ds);
|
dispatch_source_set_cancel_handler(s, ^{
|
||||||
}
|
destroy_dns_sd();
|
||||||
});
|
retry_timer();
|
||||||
|
dispatch_release(s);
|
||||||
|
});
|
||||||
|
|
||||||
|
dispatch_resume(s);
|
||||||
|
|
||||||
/* Do the first update ourself */
|
/* Do the first update ourself */
|
||||||
update_all(g_store, NULL, NULL);
|
update_all(g_store, NULL, NULL);
|
||||||
|
Reference in New Issue
Block a user