checker: fix matrix federation test
This commit is contained in:
parent
cd6a63fc57
commit
5d0693180d
@ -170,6 +170,7 @@ func check_https(domain, ip string) (err error) {
|
|||||||
|
|
||||||
type matrix_result struct {
|
type matrix_result struct {
|
||||||
WellKnownResult struct {
|
WellKnownResult struct {
|
||||||
|
Server string `json:"m.server"`
|
||||||
Result string `json:"result"`
|
Result string `json:"result"`
|
||||||
}
|
}
|
||||||
DNSResult struct {
|
DNSResult struct {
|
||||||
@ -187,7 +188,7 @@ type matrix_result struct {
|
|||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Version string `json:"version"`
|
Version string `json:"version"`
|
||||||
}
|
}
|
||||||
FederationOK bool
|
FederationOK bool `json:"FederationOK"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func check_matrix(domain string) (version string, err error) {
|
func check_matrix(domain string) (version string, err error) {
|
||||||
@ -199,16 +200,16 @@ func check_matrix(domain string) (version string, err error) {
|
|||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
if resp.StatusCode >= 300 {
|
if resp.StatusCode >= 300 {
|
||||||
return "", fmt.Errorf("Sorry, the federation tester is broken. Check on https://federationtester.matrix.org/#%s", domain)
|
return "", fmt.Errorf("Sorry, the federation tester is broken. Check on https://federationtester.matrix.org/#%s", strings.TrimSuffix(domain, "."))
|
||||||
}
|
}
|
||||||
|
|
||||||
var federationTest matrix_result
|
var federationTest matrix_result
|
||||||
if federationTest.FederationOK {
|
if err = json.NewDecoder(resp.Body).Decode(&federationTest); err != nil {
|
||||||
|
log.Printf("Error in check_matrix, when decoding json: %w", err.Error())
|
||||||
|
return "", fmt.Errorf("Sorry, the federation tester is broken. Check on https://federationtester.matrix.org/#%s", strings.TrimSuffix(domain, "."))
|
||||||
|
} else if federationTest.FederationOK {
|
||||||
version = federationTest.Version.Name + " " + federationTest.Version.Version
|
version = federationTest.Version.Name + " " + federationTest.Version.Version
|
||||||
return version, nil
|
return version, nil
|
||||||
} else if err = json.NewDecoder(resp.Body).Decode(&federationTest); err != nil {
|
|
||||||
log.Printf("Error in chech_matrix, when decoding json: %w", err.Error())
|
|
||||||
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 != "" {
|
} 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 {
|
} else if len(federationTest.ConnectionErrors) > 0 {
|
||||||
@ -222,8 +223,10 @@ func check_matrix(domain string) (version string, err error) {
|
|||||||
msg.WriteString(cerr.Message)
|
msg.WriteString(cerr.Message)
|
||||||
}
|
}
|
||||||
return "", fmt.Errorf("Connection errors: %s", msg.String())
|
return "", fmt.Errorf("Connection errors: %s", msg.String())
|
||||||
|
} else if federationTest.WellKnownResult.Server != strings.TrimSuffix(domain, ".") {
|
||||||
|
return "", fmt.Errorf("Bad homeserver_name: got %s, expected %s.", federationTest.WellKnownResult.Server, strings.TrimSuffix(domain, "."))
|
||||||
} else {
|
} 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", strings.TrimSuffix(domain, "."))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,7 +351,7 @@ func studentsChecker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check Matrix (only if GLUE Ok and)
|
// Check Matrix (only if GLUE Ok and defer contraint)
|
||||||
if glueErr == nil && istd%10 == check_matrix_for {
|
if glueErr == nil && istd%10 == check_matrix_for {
|
||||||
if v, err := check_matrix(std.MyDelegatedDomain()); err == nil {
|
if v, err := check_matrix(std.MyDelegatedDomain()); err == nil {
|
||||||
if verbose {
|
if verbose {
|
||||||
|
Reference in New Issue
Block a user