@@ -3,58 +3,58 @@ import { Bonjour } from "bonjour-service"
33
44const log = Log . create ( { service : "mdns" } )
55
6- export namespace MDNS {
7- let bonjour : Bonjour | undefined
8- let currentPort : number | undefined
9-
10- export function publish ( port : number , domain ?: string ) {
11- if ( currentPort === port ) return
12- if ( bonjour ) unpublish ( )
13-
14- try {
15- const host = domain ?? "opencode.local"
16- const name = `opencode-${ port } `
17- bonjour = new Bonjour ( )
18- const service = bonjour . publish ( {
19- name,
20- type : "http" ,
21- host,
22- port,
23- txt : { path : "/" } ,
24- } )
25-
26- service . on ( "up" , ( ) => {
27- log . info ( "mDNS service published" , { name, port } )
28- } )
29-
30- service . on ( "error" , ( err ) => {
31- log . error ( "mDNS service error" , { error : err } )
32- } )
33-
34- currentPort = port
35- } catch ( err ) {
36- log . error ( "mDNS publish failed" , { error : err } )
37- if ( bonjour ) {
38- try {
39- bonjour . destroy ( )
40- } catch { }
41- }
42- bonjour = undefined
43- currentPort = undefined
44- }
45- }
46-
47- export function unpublish ( ) {
6+ let bonjour : Bonjour | undefined
7+ let currentPort : number | undefined
8+
9+ export function publish ( port : number , domain ?: string ) {
10+ if ( currentPort === port ) return
11+ if ( bonjour ) unpublish ( )
12+
13+ try {
14+ const host = domain ?? "opencode.local"
15+ const name = `opencode-${ port } `
16+ bonjour = new Bonjour ( )
17+ const service = bonjour . publish ( {
18+ name,
19+ type : "http" ,
20+ host,
21+ port,
22+ txt : { path : "/" } ,
23+ } )
24+
25+ service . on ( "up" , ( ) => {
26+ log . info ( "mDNS service published" , { name, port } )
27+ } )
28+
29+ service . on ( "error" , ( err ) => {
30+ log . error ( "mDNS service error" , { error : err } )
31+ } )
32+
33+ currentPort = port
34+ } catch ( err ) {
35+ log . error ( "mDNS publish failed" , { error : err } )
4836 if ( bonjour ) {
4937 try {
50- bonjour . unpublishAll ( )
5138 bonjour . destroy ( )
52- } catch ( err ) {
53- log . error ( "mDNS unpublish failed" , { error : err } )
54- }
55- bonjour = undefined
56- currentPort = undefined
57- log . info ( "mDNS service unpublished" )
39+ } catch { }
5840 }
41+ bonjour = undefined
42+ currentPort = undefined
5943 }
6044}
45+
46+ export function unpublish ( ) {
47+ if ( bonjour ) {
48+ try {
49+ bonjour . unpublishAll ( )
50+ bonjour . destroy ( )
51+ } catch ( err ) {
52+ log . error ( "mDNS unpublish failed" , { error : err } )
53+ }
54+ bonjour = undefined
55+ currentPort = undefined
56+ log . info ( "mDNS service unpublished" )
57+ }
58+ }
59+
60+ export * as MDNS from "./mdns"
0 commit comments