token-validator: Avoid .254 address and add tests
continuous-integration/drone/push Build is passing Details

This commit is contained in:
nemunaire 2023-02-20 11:52:37 +01:00
parent e763716802
commit b2de685e24
3 changed files with 58 additions and 2 deletions

View File

@ -14,6 +14,7 @@ steps:
- apk --no-cache add build-base
- go vet -v -buildvcs=false ./checker
- go vet -v -buildvcs=false ./token-validator
- cd ./pkg/token-validator && go test && cd -
- cd ./pkg/minichecker/cmd && go vet -v -buildvcs=false . && cd -
- cd ./pkg/arp-spoofer/cmd && go vet -v -buildvcs=false . && go build -buildvcs=false -v -ldflags="-s -w" . && cd -
- cd ./pkg/login-validator/cmd && go vet -v -buildvcs=false . && go build -buildvcs=false -v -ldflags="-s -w" . && cd -
@ -46,6 +47,7 @@ steps:
- apk --no-cache add build-base
- go vet -v -buildvcs=false ./checker
- go vet -v -buildvcs=false ./token-validator
- cd ./pkg/token-validator && go test && cd -
- cd ./pkg/minichecker/cmd && go vet -v -buildvcs=false . && cd -
- cd ./pkg/arp-spoofer/cmd && go vet -v -buildvcs=false . && go build -buildvcs=false -v -ldflags="-s -w" . && cd -
- cd ./pkg/login-validator/cmd && go vet -v -buildvcs=false . && go build -buildvcs=false -v -ldflags="-s -w" . && cd -

View File

@ -18,9 +18,10 @@ func init() {
}
func IPSuffix(s *adlin.Student, network net.IPNet) net.IP {
ipshift := s.Id*4 + 10
ipshift := s.Id*4 + 7
myIP := network.IP
myIP := make(net.IP, len(network.IP))
copy(myIP, network.IP)
if ipshift > 254 {
myIP[len(myIP)-2] += byte(ipshift / 254)

View File

@ -0,0 +1,53 @@
package main
import (
"log"
"net"
"testing"
"git.nemunai.re/srs/adlin/libadlin"
)
func TestIPSuffix(t *testing.T) {
network := net.IPNet{IP: net.ParseIP("172.23.0.0"), Mask: net.CIDRMask(17, 32)}
std := &adlin.Student{Id: 1}
ip := IPSuffix(std, network)
log.Println(ip)
if ip.String() != "172.23.0.11" {
t.Fatalf(`IPSuffix(%v, %q) = %q, expected %q`, std, network.String(), ip.String(), "172.23.0.11")
}
std = &adlin.Student{Id: 60}
ip = IPSuffix(std, network)
if ip.String() != "172.23.0.247" {
t.Fatalf(`IPSuffix(%v, %q) = %q, expected %q`, std, network.String(), ip.String(), "172.23.0.247")
}
std = &adlin.Student{Id: 62}
ip = IPSuffix(std, network)
if ip.String() != "172.23.1.1" {
t.Fatalf(`IPSuffix(%v, %q) = %q, expected %q`, std, network.String(), ip.String(), "172.23.1.1")
}
std = &adlin.Student{Id: 70}
ip = IPSuffix(std, network)
if ip.String() != "172.23.1.33" {
t.Fatalf(`IPSuffix(%v, %q) = %q, expected %q`, std, network.String(), ip.String(), "172.23.1.33")
}
// Other network
network = net.IPNet{IP: net.ParseIP("192.168.42.0"), Mask: net.CIDRMask(17, 32)}
std = &adlin.Student{Id: 70}
ip = IPSuffix(std, network)
if ip.String() != "192.168.43.33" {
t.Fatalf(`IPSuffix(%v, %q) = %q, expected %q`, std, network.String(), ip.String(), "192.168.43.33")
}
}