do a few
This commit is contained in:
parent
a6ef3bf1b6
commit
f174c4e02d
14 changed files with 626 additions and 1 deletions
37
cmd/util.go
Normal file
37
cmd/util.go
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net/netip"
|
||||
|
||||
"github.com/charmbracelet/log"
|
||||
)
|
||||
|
||||
func runServer(server func(net.Listener) error) {
|
||||
if proto != "tcp" && proto != "udp" {
|
||||
log.Fatal("unsupported protocol, must be either tcp or udp")
|
||||
}
|
||||
|
||||
if v6 {
|
||||
proto += "6"
|
||||
}
|
||||
|
||||
addr, ok := netip.AddrFromSlice(ip)
|
||||
if !ok {
|
||||
log.Fatal("invalid ip")
|
||||
}
|
||||
|
||||
ap := netip.AddrPortFrom(addr, port)
|
||||
|
||||
listener, err := net.Listen(proto, ap.String())
|
||||
if err != nil {
|
||||
log.Fatal("unable to listen", "err", err)
|
||||
}
|
||||
|
||||
log.Info("starting server", "proto", proto, "ip", ip, "port", port)
|
||||
|
||||
err = server(listener)
|
||||
if err != nil {
|
||||
log.Fatal("error while handling connections", "err", err)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue