Compare commits
	
		
			3 Commits
		
	
	
		
			client-int
			...
			v0.9.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 5ae075647d | ||
|  | 29bbb442c8 | ||
| 3d93c0206c | 
| @@ -2,6 +2,8 @@ | |||||||
|  |  | ||||||
| ## TO DO | ## TO DO | ||||||
|  |  | ||||||
|  | * peer - write status to file instead of using sockets | ||||||
|  | * peer - improve relay selection | ||||||
| * Double buffering in IFReader and ConnReader ? | * Double buffering in IFReader and ConnReader ? | ||||||
|  |  | ||||||
| ## Hub Server Configuration | ## Hub Server Configuration | ||||||
|   | |||||||
| @@ -5,8 +5,6 @@ import ( | |||||||
| 	"errors" | 	"errors" | ||||||
| 	"log" | 	"log" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"net/netip" |  | ||||||
| 	"strings" |  | ||||||
| 	"vppn/hub/api" | 	"vppn/hub/api" | ||||||
| 	"vppn/m" | 	"vppn/m" | ||||||
|  |  | ||||||
| @@ -248,27 +246,6 @@ func (a *App) _adminPeerDeleteSubmit(s *api.Session, w http.ResponseWriter, r *h | |||||||
| 	return a.redirect(w, r, "/admin/network/view/?NetworkID=%d", n.NetworkID) | 	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 { | 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}) | 	return a.render("/admin-password-edit.html", w, struct{ Session *api.Session }{s}) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -19,7 +19,6 @@ func (a *App) registerRoutes() { | |||||||
| 	a.handleSignedIn("POST /admin/network/delete/", a._adminNetworkDeleteSubmit) | 	a.handleSignedIn("POST /admin/network/delete/", a._adminNetworkDeleteSubmit) | ||||||
|  |  | ||||||
| 	a.handleSignedIn("GET  /admin/network/view/", a._adminNetworkView) | 	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("GET  /admin/peer/create/", a._adminPeerCreate) | ||||||
| 	a.handleSignedIn("POST /admin/peer/create/", a._adminPeerCreateSubmit) | 	a.handleSignedIn("POST /admin/peer/create/", a._adminPeerCreateSubmit) | ||||||
| 	a.handleSignedIn("GET  /admin/peer/view/", a._adminPeerView) | 	a.handleSignedIn("GET  /admin/peer/view/", a._adminPeerView) | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| {{define "body" -}} | {{define "body" -}} | ||||||
| <p> | <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> | </p> | ||||||
|  |  | ||||||
| <table class="def-list"> | <table class="def-list"> | ||||||
|   | |||||||
| @@ -108,9 +108,11 @@ func main_status() { | |||||||
| 	fmt.Printf("\n%s Status\n\n", netName) | 	fmt.Printf("\n%s Status\n\n", netName) | ||||||
|  |  | ||||||
| 	if len(report.Network) != 4 { | 	if len(report.Network) != 4 { | ||||||
|  | 		fmt.Println("ERROR: Network isn't 4 bytes.") | ||||||
| 		fmt.Printf("Network: %v\n\n", report.Network) | 		fmt.Printf("Network: %v\n\n", report.Network) | ||||||
| 	} else { | 	} else { | ||||||
| 		nw := report.Network | 		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]) | 		fmt.Printf("%-8s %d.%d.%d.%d/24\n", "Network", nw[0], nw[1], nw[2], nw[3]) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -30,6 +30,10 @@ func newPeerMain(args mainArgs) *peerMain { | |||||||
| 		log.Printf("[Main] "+s, args...) | 		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)) | 	lockFile, err := flock.TryLock(lockFilePath(args.NetName)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		log.Fatalf("Failed to open lock file: %v", err) | 		log.Fatalf("Failed to open lock file: %v", err) | ||||||
|   | |||||||
| @@ -280,6 +280,11 @@ func (r *Remote) handleDataPacket(h Header, data []byte) { | |||||||
| // HandleLocalDiscoveryPacket is called by the MCReader. | // HandleLocalDiscoveryPacket is called by the MCReader. | ||||||
| func (r *Remote) HandleLocalDiscoveryPacket(h Header, srcAddr netip.AddrPort, data []byte) { | func (r *Remote) HandleLocalDiscoveryPacket(h Header, srcAddr netip.AddrPort, data []byte) { | ||||||
| 	conf := r.conf() | 	conf := r.conf() | ||||||
|  | 	if conf.Peer == nil { | ||||||
|  | 		r.logf("No peer for discovery packet.") | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if conf.Peer.PubSignKey == nil { | 	if conf.Peer.PubSignKey == nil { | ||||||
| 		r.logf("No signing key for discovery packet.") | 		r.logf("No signing key for discovery packet.") | ||||||
| 		return | 		return | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| type StatusReport struct { | type StatusReport struct { | ||||||
|  | 	LocalPeerIP byte | ||||||
| 	Network     []byte | 	Network     []byte | ||||||
| 	RelayPeerIP byte | 	RelayPeerIP byte | ||||||
| 	Remotes     []RemoteStatus | 	Remotes     []RemoteStatus | ||||||
| @@ -32,8 +33,9 @@ func runStatusServer(g Globals, socketPath string) { | |||||||
|  |  | ||||||
| 	handler := func(w http.ResponseWriter, r *http.Request) { | 	handler := func(w http.ResponseWriter, r *http.Request) { | ||||||
| 		report := StatusReport{ | 		report := StatusReport{ | ||||||
| 			Network: g.Network, | 			LocalPeerIP: g.LocalPeerIP, | ||||||
| 			Remotes: make([]RemoteStatus, 0, 255), | 			Network:     g.Network, | ||||||
|  | 			Remotes:     make([]RemoteStatus, 0, 255), | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		relay := g.RelayHandler.Load() | 		relay := g.RelayHandler.Load() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user