checker: improve matrix check
This commit is contained in:
parent
78c42e312c
commit
405f3d6395
@ -190,7 +190,7 @@ type matrix_result struct {
|
||||
FederationOK bool
|
||||
}
|
||||
|
||||
func check_matrix(domain string) (err error) {
|
||||
func check_matrix(domain string) (version string, err error) {
|
||||
var resp *http.Response
|
||||
resp, err = http.Get(fmt.Sprintf("https://federation-tester.adlin.nemunai.re/api/report?server_name=%s", strings.TrimSuffix(domain, ".")))
|
||||
if err != nil {
|
||||
@ -199,17 +199,18 @@ func check_matrix(domain string) (err error) {
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode >= 300 {
|
||||
return nil
|
||||
return "", fmt.Errorf("Sorry, the federation tester is broken. Check on https://federationtester.matrix.org/#%s", domain)
|
||||
}
|
||||
|
||||
var federationTest matrix_result
|
||||
if federationTest.FederationOK {
|
||||
return nil
|
||||
version = federationTest.Version.Name + " " + federationTest.Version.Version
|
||||
return version, nil
|
||||
} else if err = json.NewDecoder(resp.Body).Decode(&federationTest); err != nil {
|
||||
log.Printf("Error in chech_matrix, when decoding json:", err.Error())
|
||||
return nil
|
||||
return "", fmt.Errorf("Sorry, the federation tester is broken. Check on https://federationtester.matrix.org/#%s", domain)
|
||||
} else if federationTest.DNSResult.SRVError != nil && federationTest.WellKnownResult.Result != "" {
|
||||
return fmt.Errorf("%s OR %s", federationTest.DNSResult.SRVError.Message, federationTest.WellKnownResult.Result)
|
||||
return "", fmt.Errorf("%s OR %s", federationTest.DNSResult.SRVError.Message, federationTest.WellKnownResult.Result)
|
||||
} else if len(federationTest.ConnectionErrors) > 0 {
|
||||
var msg strings.Builder
|
||||
for srv, cerr := range federationTest.ConnectionErrors {
|
||||
@ -220,9 +221,9 @@ func check_matrix(domain string) (err error) {
|
||||
msg.WriteString(": ")
|
||||
msg.WriteString(cerr.Message)
|
||||
}
|
||||
return fmt.Errorf("Connection errors: %s", msg.String())
|
||||
return "", fmt.Errorf("Connection errors: %s", msg.String())
|
||||
} else {
|
||||
return fmt.Errorf("An unimplemented error occurs. Please report to nemunaire. But know that federation seems to be broken. Check https://federationtester.matrix.org/#%s", domain)
|
||||
return "", fmt.Errorf("An unimplemented error occurs. Please report to nemunaire. But know that federation seems to be broken. Check https://federationtester.matrix.org/#%s", domain)
|
||||
}
|
||||
}
|
||||
|
||||
@ -349,11 +350,11 @@ func studentsChecker() {
|
||||
|
||||
// Check Matrix (only if GLUE Ok and)
|
||||
if glueErr == nil && istd%10 == check_matrix_for {
|
||||
if err := check_matrix(std.MyDelegatedDomain()); err == nil {
|
||||
if v, err := check_matrix(std.MyDelegatedDomain()); err == nil {
|
||||
if verbose {
|
||||
log.Printf("%s just unlocked Matrix challenge\n", std.Login)
|
||||
}
|
||||
if _, err := std.UnlockChallenge(100*(tunnel_version-1)+6, ""); err != nil {
|
||||
if _, err := std.UnlockChallenge(100*(tunnel_version-1)+6, v); err != nil {
|
||||
log.Printf("Unable to register challenge for %s: %s\n", std.Login, err.Error())
|
||||
}
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user