Compare commits

..

14 Commits

Author SHA1 Message Date
jdl
3ebfe754e7 Removed accidentially committed compiled file. 2025-09-17 09:59:15 +02:00
jdl
069243e5d4 Cleanup / fixes 2025-09-16 21:05:19 +02:00
jdl
bd78ffd669 Bug fix! 2025-09-16 20:38:43 +02:00
jdl
a90ab3f5d6 Added hosts command 2025-09-16 14:18:18 +02:00
jdl
650c74c013 Added unix socket client timeout 2025-09-15 21:18:27 +02:00
jdl
b308150d21 cleanup 2025-09-15 21:15:25 +02:00
jdl
a0b7ecbfe0 Fix syn-ack bug 2025-09-15 21:15:05 +02:00
jdl
69dff24344 Cleanup. 2025-09-15 15:08:28 +02:00
jdl
257fac67ce Cleanup 2025-09-15 15:05:55 +02:00
jdl
2ff8aaf5c4 Cleanup 2025-09-15 15:05:15 +02:00
jdl
fccc4f7d57 WIP 2025-09-15 04:56:23 +02:00
jdl
c6d35856bc FSM logic cleanup 2025-09-15 04:29:30 +02:00
jdl
5844584219 FSM logic cleanup 2025-09-15 04:24:00 +02:00
jdl
e458e43d83 WIP 2025-09-15 04:07:56 +02:00
8 changed files with 28 additions and 18 deletions

View File

@ -2,8 +2,6 @@
## TO DO
* peer - write status to file instead of using sockets
* peer - improve relay selection
* Double buffering in IFReader and ConnReader ?
## Hub Server Configuration

View File

@ -5,6 +5,8 @@ import (
"errors"
"log"
"net/http"
"net/netip"
"strings"
"vppn/hub/api"
"vppn/m"
@ -246,6 +248,27 @@ func (a *App) _adminPeerDeleteSubmit(s *api.Session, w http.ResponseWriter, r *h
return a.redirect(w, r, "/admin/network/view/?NetworkID=%d", n.NetworkID)
}
func (a *App) _adminNetworkHosts(s *api.Session, w http.ResponseWriter, r *http.Request) error {
n, peers, err := a.formGetNetworkPeers(r.Form)
if err != nil {
return err
}
b := strings.Builder{}
for _, peer := range peers {
ip := n.Network
ip[3] = peer.PeerIP
b.WriteString(netip.AddrFrom4([4]byte(ip)).String())
b.WriteString(" ")
b.WriteString(peer.Name)
b.WriteString("\n")
}
w.Write([]byte(b.String()))
return nil
}
func (a *App) _adminPasswordEdit(s *api.Session, w http.ResponseWriter, r *http.Request) error {
return a.render("/admin-password-edit.html", w, struct{ Session *api.Session }{s})
}

View File

@ -19,6 +19,7 @@ func (a *App) registerRoutes() {
a.handleSignedIn("POST /admin/network/delete/", a._adminNetworkDeleteSubmit)
a.handleSignedIn("GET /admin/network/view/", a._adminNetworkView)
a.handleSignedIn("GET /admin/network/hosts/", a._adminNetworkHosts)
a.handleSignedIn("GET /admin/peer/create/", a._adminPeerCreate)
a.handleSignedIn("POST /admin/peer/create/", a._adminPeerCreateSubmit)
a.handleSignedIn("GET /admin/peer/view/", a._adminPeerView)

View File

@ -1,6 +1,7 @@
{{define "body" -}}
<p>
<a href="/admin/network/delete/?NetworkID={{.Network.NetworkID}}">Delete</a>
<a href="/admin/network/delete/?NetworkID={{.Network.NetworkID}}">Delete</a> /
<a href="/admin/network/hosts/?NetworkID={{.Network.NetworkID}}">Hosts</a>
</p>
<table class="def-list">

View File

@ -108,11 +108,9 @@ func main_status() {
fmt.Printf("\n%s Status\n\n", netName)
if len(report.Network) != 4 {
fmt.Println("ERROR: Network isn't 4 bytes.")
fmt.Printf("Network: %v\n\n", report.Network)
} else {
nw := report.Network
fmt.Printf("%-8s %d.%d.%d.%d\n", "IP", nw[0], nw[1], nw[2], report.LocalPeerIP)
fmt.Printf("%-8s %d.%d.%d.%d/24\n", "Network", nw[0], nw[1], nw[2], nw[3])
}

View File

@ -30,10 +30,6 @@ func newPeerMain(args mainArgs) *peerMain {
log.Printf("[Main] "+s, args...)
}
if err := os.MkdirAll(configDir(args.NetName), 0700); err != nil {
log.Fatalf("Failed to create config directory: %v", err)
}
lockFile, err := flock.TryLock(lockFilePath(args.NetName))
if err != nil {
log.Fatalf("Failed to open lock file: %v", err)

View File

@ -280,11 +280,6 @@ func (r *Remote) handleDataPacket(h Header, data []byte) {
// HandleLocalDiscoveryPacket is called by the MCReader.
func (r *Remote) HandleLocalDiscoveryPacket(h Header, srcAddr netip.AddrPort, data []byte) {
conf := r.conf()
if conf.Peer == nil {
r.logf("No peer for discovery packet.")
return
}
if conf.Peer.PubSignKey == nil {
r.logf("No signing key for discovery packet.")
return

View File

@ -10,7 +10,6 @@ import (
)
type StatusReport struct {
LocalPeerIP byte
Network []byte
RelayPeerIP byte
Remotes []RemoteStatus
@ -33,9 +32,8 @@ func runStatusServer(g Globals, socketPath string) {
handler := func(w http.ResponseWriter, r *http.Request) {
report := StatusReport{
LocalPeerIP: g.LocalPeerIP,
Network: g.Network,
Remotes: make([]RemoteStatus, 0, 255),
Network: g.Network,
Remotes: make([]RemoteStatus, 0, 255),
}
relay := g.RelayHandler.Load()