]> git.r.bdr.sh - rbdr/mobius/commitdiff
Register server address on local network with Bonjour
authorJeff Halter <redacted>
Fri, 26 Jul 2024 22:25:11 +0000 (15:25 -0700)
committerJeff Halter <redacted>
Fri, 26 Jul 2024 22:25:11 +0000 (15:25 -0700)
cmd/mobius-hotline-server/main.go
go.mod
go.sum

index 6b82764280ba1b480f6947502bffb5d24d8922b0..e2c7789b19877cd1313792e39f5121e4e070b66a 100644 (file)
@@ -7,6 +7,7 @@ import (
        "fmt"
        "github.com/jhalter/mobius/hotline"
        "github.com/jhalter/mobius/internal/mobius"
+       "github.com/oleksandr/bonjour"
        "io"
        "log"
        "os"
@@ -168,6 +169,12 @@ func main() {
        // Assign functions to handle specific Hotline transaction types
        mobius.RegisterHandlers(srv)
 
+       s, err := bonjour.Register(srv.Config.Name, "_hotline._tcp", "", *basePort, []string{"txtv=1", "app=hotline"}, nil)
+       if err != nil {
+               slogger.Error("Error registering Hotline server with Bonjour", "err", err)
+       }
+       defer s.Shutdown()
+
        // Serve Hotline requests until program exit
        log.Fatal(srv.ListenAndServe(ctx))
 }
diff --git a/go.mod b/go.mod
index 65a454d9b292b2581a2711ef87d8b8726894a56e..1eed026a3131ddb0a0ad7e1d9f62838afae7679f 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,10 @@ module github.com/jhalter/mobius
 go 1.22
 
 require (
+       github.com/davecgh/go-spew v1.1.1
        github.com/go-playground/validator/v10 v10.22.0
+       github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915
+       github.com/pkg/xattr v0.4.10
        github.com/stretchr/testify v1.9.0
        golang.org/x/crypto v0.25.0
        golang.org/x/text v0.16.0
@@ -13,13 +16,16 @@ require (
 )
 
 require (
-       github.com/davecgh/go-spew v1.1.1 // indirect
        github.com/gabriel-vasile/mimetype v1.4.4 // indirect
        github.com/go-playground/locales v0.14.1 // indirect
        github.com/go-playground/universal-translator v0.18.1 // indirect
        github.com/leodido/go-urn v1.4.0 // indirect
+       github.com/miekg/dns v1.1.61 // indirect
        github.com/pmezard/go-difflib v1.0.0 // indirect
        github.com/stretchr/objx v0.5.2 // indirect
+       golang.org/x/mod v0.18.0 // indirect
        golang.org/x/net v0.27.0 // indirect
+       golang.org/x/sync v0.7.0 // indirect
        golang.org/x/sys v0.22.0 // indirect
+       golang.org/x/tools v0.22.0 // indirect
 )
diff --git a/go.sum b/go.sum
index aed79d00359ac3556eeb76bca2abfab1b675cf51..ffe71b63ee3bef7d0e2c6657e62b718e3dc366a0 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -12,6 +12,12 @@ github.com/go-playground/validator/v10 v10.22.0 h1:k6HsTZ0sTnROkhS//R0O+55JgM8C4
 github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
 github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
 github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
+github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs=
+github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ=
+github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 h1:d291KOLbN1GthTPA1fLKyWdclX3k1ZP+CzYtun+a5Es=
+github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c=
+github.com/pkg/xattr v0.4.10 h1:Qe0mtiNFHQZ296vRgUjRCoPHPqH7VdTOrZx3g0T+pGA=
+github.com/pkg/xattr v0.4.10/go.mod h1:di8WF84zAKk8jzR1UBTEWh9AUlIZZ7M/JNt8e9B6ktU=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
@@ -20,14 +26,21 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
 github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
 golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
+golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
+golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
 golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
 golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
+golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
+golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
 golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
 golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
 golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
 golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
+golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=