checker: better handle DNS checks
This commit is contained in:
parent
456694c330
commit
07e91271f4
@ -219,6 +219,7 @@ func studentsChecker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dnsIP := stdIP
|
dnsIP := stdIP
|
||||||
|
var glueErr error
|
||||||
// Is GLUE defined?
|
// Is GLUE defined?
|
||||||
if glueIP, err := get_GLUE(std.MyDelegatedDomain()); glueIP != nil {
|
if glueIP, err := get_GLUE(std.MyDelegatedDomain()); glueIP != nil {
|
||||||
dnsIP = glueIP.String()
|
dnsIP = glueIP.String()
|
||||||
@ -228,20 +229,30 @@ func studentsChecker() {
|
|||||||
}
|
}
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
log.Printf("%s and GLUE: %s\n", std.Login, err)
|
log.Printf("%s and GLUE: %s\n", std.Login, err)
|
||||||
|
glueErr = err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check DNS
|
// Check DNS
|
||||||
if addr, err := check_dns(std.MyDelegatedDomain(), dnsIP); err == nil {
|
if addr, err := check_dns(std.MyDelegatedDomain(), dnsIP); err == nil {
|
||||||
|
if addr == nil {
|
||||||
|
dnsAt := " at " + dnsIP
|
||||||
|
if glueErr != nil {
|
||||||
|
dnsAt = " + there is a problem with the GLUE record: " + glueErr.Error()
|
||||||
|
}
|
||||||
|
if errreg := std.RegisterChallengeError(100*(tunnel_version-1)+3, fmt.Errorf("%s: empty response from the server%s", std.MyDelegatedDomain(), dnsAt)); errreg != nil {
|
||||||
|
log.Printf("Unable to register challenge error for %s: %s\n", std.Login, errreg)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if verbose {
|
if verbose {
|
||||||
log.Printf("%s just unlocked DNS challenge\n", std.Login)
|
log.Printf("%s just unlocked DNS challenge\n", std.Login)
|
||||||
}
|
}
|
||||||
if _, err := std.UnlockChallenge(100*(tunnel_version-1)+3, ""); err != nil {
|
if _, err := std.UnlockChallenge(100*(tunnel_version-1)+3, addr.String()); 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())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check HTTP with DNS
|
// Check HTTP with DNS
|
||||||
if addr == nil {
|
if glueErr != nil {
|
||||||
log.Printf("%s and HTTP (with DNS ip=%s): skipped due to empty response\n", std.Login, addr.String())
|
std.RegisterChallengeError(100*(tunnel_version-1)+4, fmt.Errorf("Unable to perform the test due to GLUE problem: %w", err))
|
||||||
} else if err := check_http(addr.String(), std.MyDelegatedDomain()); err == nil {
|
} else if err := check_http(addr.String(), std.MyDelegatedDomain()); err == nil {
|
||||||
if verbose {
|
if verbose {
|
||||||
log.Printf("%s just unlocked HTTP challenge\n", std.Login)
|
log.Printf("%s just unlocked HTTP challenge\n", std.Login)
|
||||||
@ -257,8 +268,8 @@ func studentsChecker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check HTTPs with DNS
|
// Check HTTPs with DNS
|
||||||
if addr == nil {
|
if glueErr != nil {
|
||||||
log.Printf("%s and HTTPS (with DNS ip=%s): skipped due to empty response\n", std.Login, addr.String())
|
std.RegisterChallengeError(100*(tunnel_version-1)+5, fmt.Errorf("Unable to perform the test due to GLUE problem: %w", err))
|
||||||
} else if err := check_https(std.MyDelegatedDomain(), addr.String()); err == nil {
|
} else if err := check_https(std.MyDelegatedDomain(), addr.String()); err == nil {
|
||||||
if verbose {
|
if verbose {
|
||||||
log.Printf("%s just unlocked HTTPS challenge\n", std.Login)
|
log.Printf("%s just unlocked HTTPS challenge\n", std.Login)
|
||||||
@ -272,6 +283,7 @@ func studentsChecker() {
|
|||||||
log.Printf("%s and HTTPS (with DNS ip=%s): %s\n", std.Login, addr.String(), err)
|
log.Printf("%s and HTTPS (with DNS ip=%s): %s\n", std.Login, addr.String(), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if errreg := std.RegisterChallengeError(100*(tunnel_version-1)+3, err); errreg != nil {
|
if errreg := std.RegisterChallengeError(100*(tunnel_version-1)+3, err); errreg != nil {
|
||||||
log.Printf("Unable to register challenge error for %s: %s\n", std.Login, errreg)
|
log.Printf("Unable to register challenge error for %s: %s\n", std.Login, errreg)
|
||||||
|
Reference in New Issue
Block a user