Some checks failed
Bearer / scan (push) Successful in 9s
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 42s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 44s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 41s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 39s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 1m8s
Go Build Multi-Platform / build (wasm, js) (push) Successful in 1m6s
TinyGo Build / tinygo-build (tinygo-wasm, tinygo-wasm, reticulum-go.wasm, wasm) (pull_request) Failing after 1m2s
TinyGo Build / tinygo-build (tinygo-build, tinygo-default, reticulum-go-tinygo, ) (pull_request) Failing after 1m4s
Go Revive Lint / lint (push) Successful in 1m4s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 1m24s
Run Gosec / tests (push) Successful in 1m29s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 2m31s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 9m28s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 9m28s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 9m30s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m27s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m26s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m29s
Go Build Multi-Platform / Create Release (push) Has been skipped
37 lines
702 B
Go
37 lines
702 B
Go
// SPDX-License-Identifier: 0BSD
|
|
// Copyright (c) 2024-2026 Sudo-Ivan / Quad4.io
|
|
package pathfinder
|
|
|
|
import "time"
|
|
|
|
type PathFinder struct {
|
|
paths map[string]Path
|
|
}
|
|
|
|
type Path struct {
|
|
NextHop []byte
|
|
Interface string
|
|
HopCount byte
|
|
LastUpdated int64
|
|
}
|
|
|
|
func NewPathFinder() *PathFinder {
|
|
return &PathFinder{
|
|
paths: make(map[string]Path),
|
|
}
|
|
}
|
|
|
|
func (p *PathFinder) AddPath(destHash string, nextHop []byte, iface string, hops byte) {
|
|
p.paths[destHash] = Path{
|
|
NextHop: nextHop,
|
|
Interface: iface,
|
|
HopCount: hops,
|
|
LastUpdated: time.Now().Unix(),
|
|
}
|
|
}
|
|
|
|
func (p *PathFinder) GetPath(destHash string) (Path, bool) {
|
|
path, exists := p.paths[destHash]
|
|
return path, exists
|
|
}
|