Introduce overrideID option to allow multiple tunnels in parellel
This commit is contained in:
parent
9043bafe3d
commit
7187a7d187
6 changed files with 32 additions and 30 deletions
|
|
@ -31,7 +31,7 @@ func init() {
|
|||
})
|
||||
router.GET("/api/wg/", apiAuthHandler(showWgTunnel))
|
||||
router.GET("/api/wginfo", apiAuthHandler(func(student *adlin.Student, ps httprouter.Params, body []byte) (interface{}, error) {
|
||||
return getTunnelInfo(student.Id), nil
|
||||
return getTunnelInfo(student.Id, 0), nil
|
||||
}))
|
||||
router.POST("/api/wg/", apiAuthHandler(genWgToken))
|
||||
router.GET("/api/wg/:token", getWgTunnelInfo)
|
||||
|
|
@ -59,13 +59,13 @@ type TunnelInfo struct {
|
|||
SrvGW6 string `json:"srv_gw6"`
|
||||
}
|
||||
|
||||
func getTunnelInfo(student int64) TunnelInfo {
|
||||
func getTunnelInfo(student int64, idoverride int) TunnelInfo {
|
||||
srv_pubkey, _ := base64.StdEncoding.DecodeString("uSpqyYovvP4OG6wDxZ0Qkq45MfyK58PMUuPaLesY8FI=")
|
||||
return TunnelInfo{
|
||||
Status: "OK",
|
||||
SrvPubKey: srv_pubkey,
|
||||
SrvPort: 42912,
|
||||
CltIPv6: adlin.StudentIP(student),
|
||||
CltIPv6: adlin.StudentIP(student, idoverride),
|
||||
CltRange: adlin.StdNetmask,
|
||||
SrvGW6: "2a01:e0a:2b:2252::1",
|
||||
}
|
||||
|
|
@ -133,7 +133,7 @@ func getWgTunnelInfo(w http.ResponseWriter, r *http.Request, ps httprouter.Param
|
|||
|
||||
syncWgConf()
|
||||
|
||||
tinfo := getTunnelInfo(token.IdStudent)
|
||||
tinfo := getTunnelInfo(token.IdStudent, token.OverrideID)
|
||||
|
||||
var student *adlin.Student
|
||||
student, err = adlin.GetStudent(int(token.IdStudent))
|
||||
|
|
@ -218,7 +218,7 @@ func GenWGConfig(w io.Writer) error {
|
|||
#IdStudent = %d
|
||||
PublicKey = %s
|
||||
AllowedIPs = %s/%d
|
||||
`, t.IdStudent, base64.StdEncoding.EncodeToString(t.PubKey), adlin.StudentIP(t.IdStudent), 80)))
|
||||
`, t.IdStudent, base64.StdEncoding.EncodeToString(t.PubKey), adlin.StudentIP(t.IdStudent, t.OverrideID), 80)))
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
Reference in a new issue