Skip to content

Commit a1fcdc8

Browse files
committed
avahi: fix device list not shown when avahi is not running
This adds a D-Bus call in the avahi backend getDaemon() function. This will cause an exception to be thrown if avahi is not installed or running, in which case the extension will fall back to the native js implementation of bonjour. Issue #83
1 parent d9da187 commit a1fcdc8

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/dnssd/avahi.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,25 @@ import * as events from 'events';
88
import * as dnssd from '../dnssd';
99

1010

11-
let _daemon: avahi.Daemon;
11+
let cachedDaemon: avahi.Daemon;
1212

1313
async function getDaemon(): Promise<avahi.Daemon> {
14-
if (_daemon) {
15-
return Promise.resolve(_daemon);
14+
if (cachedDaemon) {
15+
return Promise.resolve(cachedDaemon);
1616
}
1717

1818
return new Promise((resolve, reject) => {
1919
const bus = dbus.systemBus();
2020
bus.connection.on('connect', () => {
21-
_daemon = new avahi.Daemon(bus);
22-
resolve(_daemon);
23-
21+
const daemon = new avahi.Daemon(bus);
22+
daemon.GetAPIVersion((err, _version) => {
23+
if (err) {
24+
reject(err);
25+
}
26+
else {
27+
resolve(cachedDaemon = daemon);
28+
}
29+
});
2430
});
2531
bus.connection.on('error', err => {
2632
reject(err);

0 commit comments

Comments
 (0)