checker: add a base number for challenges
This commit is contained in:
parent
bd64e70ba3
commit
7adbd4402a
|
@ -13,6 +13,8 @@ import (
|
||||||
"git.nemunai.re/lectures/adlin/libadlin"
|
"git.nemunai.re/lectures/adlin/libadlin"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var baseChallenge = 100
|
||||||
|
|
||||||
// ICMP
|
// ICMP
|
||||||
|
|
||||||
func check_ping(ip string, cb func(pkt *ping.Packet)) (err error) {
|
func check_ping(ip string, cb func(pkt *ping.Packet)) (err error) {
|
||||||
|
@ -88,8 +90,8 @@ func studentsChecker() {
|
||||||
|
|
||||||
// Check HTTP
|
// Check HTTP
|
||||||
if err := check_http(stdIP); err == nil {
|
if err := check_http(stdIP); err == nil {
|
||||||
if _, err := std.UnlockNewChallenge(100, ""); err != nil {
|
if _, err := std.UnlockNewChallenge(baseChallenge+0, ""); err != nil {
|
||||||
if _, err := std.UpdateUnlockedChallenge(100, ""); err != nil {
|
if _, err := std.UpdateUnlockedChallenge(baseChallenge+0, ""); err != nil {
|
||||||
log.Printf("Unable to register challenge for %s: %s\n", std.Login, err.Error())
|
log.Printf("Unable to register challenge for %s: %s\n", std.Login, err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,8 +99,8 @@ func studentsChecker() {
|
||||||
|
|
||||||
// Check HTTPs
|
// Check HTTPs
|
||||||
if err := check_https(std.MyAssociatedDomain(), stdIP); err == nil {
|
if err := check_https(std.MyAssociatedDomain(), stdIP); err == nil {
|
||||||
if _, err := std.UnlockNewChallenge(101, ""); err != nil {
|
if _, err := std.UnlockNewChallenge(baseChallenge+1, ""); err != nil {
|
||||||
if _, err := std.UpdateUnlockedChallenge(101, ""); err != nil {
|
if _, err := std.UpdateUnlockedChallenge(baseChallenge+1, ""); err != nil {
|
||||||
log.Printf("Unable to register challenge for %s: %s\n", std.Login, err.Error())
|
log.Printf("Unable to register challenge for %s: %s\n", std.Login, err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,8 +108,8 @@ func studentsChecker() {
|
||||||
|
|
||||||
// Check DNS
|
// Check DNS
|
||||||
if err := check_dns(std.MyDelegatedDomain(), stdIP); err == nil {
|
if err := check_dns(std.MyDelegatedDomain(), stdIP); err == nil {
|
||||||
if _, err := std.UnlockNewChallenge(102, ""); err != nil {
|
if _, err := std.UnlockNewChallenge(baseChallenge+2, ""); err != nil {
|
||||||
if _, err := std.UpdateUnlockedChallenge(102, ""); err != nil {
|
if _, err := std.UpdateUnlockedChallenge(baseChallenge+2, ""); err != nil {
|
||||||
log.Printf("Unable to register challenge for %s: %s\n", std.Login, err.Error())
|
log.Printf("Unable to register challenge for %s: %s\n", std.Login, err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
48
checker/main.go
Normal file
48
checker/main.go
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"os/signal"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"git.nemunai.re/lectures/adlin/libadlin"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var dsn = flag.String("dsn", adlin.DSNGenerator(), "DSN to connect to the MySQL server")
|
||||||
|
flag.IntVar(&baseChallenge, "basechallenge", baseChallenge, "Base number for current challenges")
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
// Initialize contents
|
||||||
|
log.Println("Opening database...")
|
||||||
|
if err := adlin.DBInit(*dsn); err != nil {
|
||||||
|
log.Fatal("Cannot open the database: ", err)
|
||||||
|
}
|
||||||
|
defer adlin.DBClose()
|
||||||
|
|
||||||
|
log.Println("Creating database...")
|
||||||
|
if err := adlin.DBCreate(); err != nil {
|
||||||
|
log.Fatal("Cannot create database: ", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prepare graceful shutdown
|
||||||
|
interrupt := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(interrupt, os.Interrupt, syscall.SIGTERM)
|
||||||
|
|
||||||
|
ticker := time.NewTicker(30 * time.Second)
|
||||||
|
defer ticker.Stop()
|
||||||
|
|
||||||
|
// Launch checker
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-interrupt:
|
||||||
|
break
|
||||||
|
case <-ticker.C:
|
||||||
|
studentsChecker()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user