Files
ippserver/packages/mdnsserver/server.go
henrik 04a4b4157f 2-add-keyword-support (#6)
More development.

More types.
Fixed attribute groups in requests.
Started on client.
Saving data to file.

More types. Printing from chromeos works a little bit.

More types.

Spelling corrections.

WIP: Fix keyword handling

Move request to a separate file and add test.

Co-authored-by: Henrik Sölver <henrik.solver@gmail.com>
Reviewed-on: #6
Co-Authored-By: henrik <henrik.solver@gmail.com>
Co-Committed-By: henrik <henrik.solver@gmail.com>
2020-12-27 09:16:32 +01:00

57 lines
1.2 KiB
Go

package mdnsserver
import (
"context"
log "github.com/sirupsen/logrus"
"github.com/godbus/dbus/v5"
"github.com/holoplot/go-avahi"
)
func Run(ctx context.Context) {
conn, err := dbus.SystemBus()
if err != nil {
return
}
a, err := avahi.ServerNew(conn)
if err != nil {
log.Fatalf("Avahi new failed: %v", err)
}
eg, err := a.EntryGroupNew()
if err != nil {
log.Fatalf("EntryGroupNew() failed: %v", err)
}
//hostname, err := a.GetHostName()
if err != nil {
log.Fatalf("GetHostName() failed: %v", err)
}
fqdn, err := a.GetHostNameFqdn()
if err != nil {
log.Fatalf("GetHostNameFqdn() failed: %v", err)
}
var txt [][]byte
txt = append(txt, []byte("note=burken"))
txt = append(txt, []byte("product=coola-skrivaren"))
txt = append(txt, []byte("Color=T"))
txt = append(txt, []byte("rp=ipp/print"))
txt = append(txt, []byte("ty=ChroBro 001"))
err = eg.AddService(avahi.InterfaceUnspec, avahi.ProtoUnspec, 0, "ChroBro 1000", "_ipp._tcp", "local", fqdn, 1234, txt)
if err != nil {
log.Fatalf("AddService() failed: %v", err)
}
err = eg.Commit()
if err != nil {
log.Fatalf("Commit() failed: %v", err)
}
<-ctx.Done()
eg.Reset()
conn.Close()
}