local-ip.sh/main.go

36 lines
561 B
Go

package main
import (
"flag"
"time"
"local-ip.sh/certs"
"local-ip.sh/http"
"local-ip.sh/xip"
)
func main() {
port := flag.Int("port", 53, "port the DNS server should bind to")
flag.Parse()
n := xip.NewXip(*port)
go func() {
account := certs.LoadAccount()
certsClient := certs.NewCertsClient(n, account)
time.Sleep(5 * time.Second)
certsClient.RequestCertificate()
for {
// try to renew certificate every day
time.Sleep(24 * time.Hour)
certsClient.RequestCertificate()
}
}()
go http.ServeCertificate()
n.StartServer()
}