diff --git a/cmd/vppn/main.go b/cmd/vppn/main.go index d0e5be0..b52bcff 100644 --- a/cmd/vppn/main.go +++ b/cmd/vppn/main.go @@ -9,7 +9,7 @@ import ( "vppn/peer" - "git.crumpington.com/lib/go/flock" + "git.crumpington.com/lib/flock" ) func main() { @@ -34,9 +34,6 @@ func main() { if err != nil { log.Fatalf("lock: %v", err) } - if lockFile == nil { - log.Fatalf("already running for network %q", *name) - } defer flock.Unlock(lockFile) state, err := peer.LoadOrInit(vppnPath(*name, "state.json"), *hub, apiKey) diff --git a/go.mod b/go.mod index 5014254..deb4a1d 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,13 @@ module vppn go 1.25.1 require ( - git.crumpington.com/lib/go v0.10.0 + git.crumpington.com/lib/flock v1.1.0 + git.crumpington.com/lib/idgen v1.0.0 + git.crumpington.com/lib/keyedmutex v1.1.0 + git.crumpington.com/lib/ratelimiter v1.1.1 + git.crumpington.com/lib/sqliteutil v1.1.1 + git.crumpington.com/lib/webutil v1.1.0 + github.com/mattn/go-sqlite3 v1.14.45 golang.org/x/crypto v0.53.0 golang.org/x/sys v0.46.0 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10 @@ -11,8 +17,6 @@ require ( require ( github.com/google/go-cmp v0.7.0 // indirect - github.com/josharian/native v1.1.0 // indirect - github.com/mattn/go-sqlite3 v1.14.45 // indirect github.com/mdlayher/genetlink v1.4.0 // indirect github.com/mdlayher/netlink v1.11.2 // indirect github.com/mdlayher/socket v0.6.1 // indirect diff --git a/go.sum b/go.sum index 0df1b40..d22223d 100644 --- a/go.sum +++ b/go.sum @@ -1,55 +1,37 @@ -git.crumpington.com/lib/go v0.9.1 h1:xLBzcgiZRB6Ky3Ce9hKE+Ko0YbkA4USF4eJk5i5RJF4= -git.crumpington.com/lib/go v0.9.1/go.mod h1:5nnfjdnUnj/FHhakaliKQKsKeSkUb0GEUKF3PqRgUXg= -git.crumpington.com/lib/go v0.9.2 h1:DZ7tzFM/S+zL5hexNo8zKbH7Ryi+VtvSMRzCMnlz+c4= -git.crumpington.com/lib/go v0.9.2/go.mod h1:5nnfjdnUnj/FHhakaliKQKsKeSkUb0GEUKF3PqRgUXg= -git.crumpington.com/lib/go v0.10.0 h1:4O+o9QBVcre8RYESAXhxJ1kT0w1tIakUdt/rV4v4riw= -git.crumpington.com/lib/go v0.10.0/go.mod h1:8y838PnV7dM6QT0XwLMuG2ulDNtCv4NmdSJIEqGViKg= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +git.crumpington.com/lib/flock v1.1.0 h1:NzPUAXnywikN+ZPabzQw9eXAwvZolGUE3pjnSxnDwFk= +git.crumpington.com/lib/flock v1.1.0/go.mod h1:prUmtkjpGDUakQh6TiEAylrgDTPG0HuBOUe8Lq4HKsc= +git.crumpington.com/lib/idgen v1.0.0 h1:0Jre8R3B+RaMOKmCgagBT659wGM93QNpamuGF2e9SII= +git.crumpington.com/lib/idgen v1.0.0/go.mod h1:Q8kV11Zta4P5WKDpBwsekEsnOe9IysVLsW+gPhbzFTc= +git.crumpington.com/lib/keyedmutex v1.1.0 h1:XOlk9f0rnwmr5yNoIvPteM2W2uakZqT4tnZKficrXho= +git.crumpington.com/lib/keyedmutex v1.1.0/go.mod h1:ova6v/794UCZJ5FKKrLpaol0wfNZZTB3plLObSWaGk4= +git.crumpington.com/lib/ratelimiter v1.1.1 h1:8jVDVK/I0zzE3EHCu+sUeZN8a9Aqzm+PG4WrlnEvLes= +git.crumpington.com/lib/ratelimiter v1.1.1/go.mod h1:TycyPTi/aBfnWW8F51yfo/5fSP/qKywDREqsph7TEns= +git.crumpington.com/lib/sqliteutil v1.1.1 h1:xwfp/l2BL4nfw8Ye0Cex2HdGJQKQ1YBCFtDiMeUhnzk= +git.crumpington.com/lib/sqliteutil v1.1.1/go.mod h1:K8OelqOwhSYAZK42v8hKK6UmafItGf2WcMfNlq9Gfeo= +git.crumpington.com/lib/webutil v1.1.0 h1:S9CaRBbVgYOUsgZ5AU1gAJxkxzr8Zjn2v84MoMOy1+I= +git.crumpington.com/lib/webutil v1.1.0/go.mod h1:+LNLGApoe9InAJ7DCeLfiDmYov87XU3crYRHr/RYv2E= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA= -github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= -github.com/mattn/go-sqlite3 v1.14.32 h1:JD12Ag3oLy1zQA+BNn74xRgaBbdhbNIDYvQUEuuErjs= -github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/mattn/go-sqlite3 v1.14.45 h1:6KA/spDguL3KV8rnybG7ezSaE4SeMR3KC9VbUoAQaIk= github.com/mattn/go-sqlite3 v1.14.45/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= -github.com/mdlayher/genetlink v1.3.2 h1:KdrNKe+CTu+IbZnm/GVUMXSqBBLqcGpRDa0xkQy56gw= -github.com/mdlayher/genetlink v1.3.2/go.mod h1:tcC3pkCrPUGIKKsCsp0B3AdaaKuHtaxoJRz3cc+528o= github.com/mdlayher/genetlink v1.4.0 h1:f/Xs7Y2T+GyX9b3dbiUhnLE9InGs5F9RxJ2JwBMl71o= github.com/mdlayher/genetlink v1.4.0/go.mod h1:d1hrKr8fwZU2JkcAtQUAzeTrI7nbgQSl+5k1cC0biSA= -github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g= -github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw= github.com/mdlayher/netlink v1.11.2 h1:HKh2jqe+omdSWcQ88nrT7INE61B0NXfiSPFdgL4YbNI= github.com/mdlayher/netlink v1.11.2/go.mod h1:uT2Yc/QLaZubzDpZIBi9d4GoeLwtp3x1AMeqSRrK2sA= -github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= -github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= github.com/mdlayher/socket v0.6.1 h1:M7uj2NtuujUY4mYr1C57NmfNiRHbkKpnBxO856lsc3A= github.com/mdlayher/socket v0.6.1/go.mod h1:+/SGtqc9V+5dAuRgQsU0fGBI+oRDiW7O2Obx10OIWfg= github.com/mikioh/ipaddr v0.0.0-20190404000644-d465c8ab6721 h1:RlZweED6sbSArvlE924+mUcZuXKLBHA35U7LN621Bws= github.com/mikioh/ipaddr v0.0.0-20190404000644-d465c8ab6721/go.mod h1:Ickgr2WtCLZ2MDGd4Gr0geeCH5HybhRJbonOgQpvSxc= -golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= -golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= -golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 h1:/jFs0duh4rdb8uIfPMv78iAJGcPKDeqAFnaLBropIC4= -golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173/go.mod h1:tkCQ4FQXmpAgYVh++1cq16/dH4QJtmvpRv19DWGAHSA= golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446 h1:cqHQ3AycTHvM2R7ikgyX57D+XvtcSnGylsLkOVhta/w= golang.zx2c4.com/wireguard v0.0.0-20260522210424-ecfc5a8d5446/go.mod h1:rpwXGsirqLqN2L0JDJQlwOboGHmptD5ZD6T2VmcqhTw= golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10 h1:3GDAcqdIg1ozBNLgPy4SLT84nfcBjr6rhGtXYtrkWLU= diff --git a/hub/api/api.go b/hub/api/api.go index 03d3e1f..73a14fd 100644 --- a/hub/api/api.go +++ b/hub/api/api.go @@ -11,8 +11,8 @@ import ( "vppn/hub/errs" "vppn/m" - "git.crumpington.com/lib/go/idgen" - "git.crumpington.com/lib/go/sqliteutil" + "git.crumpington.com/lib/idgen" + "git.crumpington.com/lib/sqliteutil" "golang.org/x/crypto/bcrypt" ) diff --git a/hub/app.go b/hub/app.go index 516aae9..c8f5faa 100644 --- a/hub/app.go +++ b/hub/app.go @@ -8,8 +8,8 @@ import ( "path/filepath" "vppn/hub/api" - "git.crumpington.com/lib/go/keyedmutex" - "git.crumpington.com/lib/go/webutil" + "git.crumpington.com/lib/keyedmutex" + "git.crumpington.com/lib/webutil" ) //go:embed static diff --git a/hub/form.go b/hub/form.go index 645223d..3bf41f9 100644 --- a/hub/form.go +++ b/hub/form.go @@ -4,7 +4,7 @@ import ( "net/url" "vppn/hub/api" - "git.crumpington.com/lib/go/webutil" + "git.crumpington.com/lib/webutil" ) func (app *App) formGetNetwork(form url.Values) (*api.Network, error) { diff --git a/hub/handler.go b/hub/handler.go index b772da1..83b8462 100644 --- a/hub/handler.go +++ b/hub/handler.go @@ -7,7 +7,7 @@ import ( "vppn/hub/api" "vppn/hub/errs" - "git.crumpington.com/lib/go/webutil" + "git.crumpington.com/lib/webutil" ) type handlerFunc func(s *api.Session, w http.ResponseWriter, r *http.Request) error @@ -29,9 +29,7 @@ func (app *App) handlePub(pattern string, fn handlerFunc) { } } - app.mux.HandleFunc(pattern, - webutil.WithLogging( - wrapped)) + app.mux.HandleFunc(pattern, wrapped) } func (app *App) handleNotSignedIn(pattern string, fn handlerFunc) { diff --git a/hub/handlers.go b/hub/handlers.go index 1f8c8d9..944d81e 100644 --- a/hub/handlers.go +++ b/hub/handlers.go @@ -11,7 +11,7 @@ import ( "vppn/hub/errs" "vppn/m" - "git.crumpington.com/lib/go/webutil" + "git.crumpington.com/lib/webutil" "golang.org/x/crypto/bcrypt" "golang.zx2c4.com/wireguard/wgctrl/wgtypes" ) diff --git a/hub/main.go b/hub/main.go index 8971e41..a92cc86 100644 --- a/hub/main.go +++ b/hub/main.go @@ -7,7 +7,7 @@ import ( "os" "time" - "git.crumpington.com/lib/go/webutil" + "git.crumpington.com/lib/webutil" ) func Main() { diff --git a/peer/hosts.go b/peer/hosts.go index fc47d20..5337759 100644 --- a/peer/hosts.go +++ b/peer/hosts.go @@ -9,7 +9,7 @@ import ( "strings" "syscall" - "git.crumpington.com/lib/go/flock" + "git.crumpington.com/lib/flock" ) const ( diff --git a/peer/multicast/receiver.go b/peer/multicast/receiver.go index 20eca67..86d525b 100644 --- a/peer/multicast/receiver.go +++ b/peer/multicast/receiver.go @@ -8,7 +8,7 @@ import ( "net/netip" "time" - "git.crumpington.com/lib/go/ratelimiter" + "git.crumpington.com/lib/ratelimiter" ) func Receiver(selfVPNIP netip.Addr, ch chan<- Packet) {