func()

in internal/ingress/types_equals.go [268:336]


func (s1 *Server) Equal(s2 *Server) bool {
	if s1 == s2 {
		return true
	}
	if s1 == nil || s2 == nil {
		return false
	}
	if s1.Hostname != s2.Hostname {
		return false
	}
	if s1.SSLPassthrough != s2.SSLPassthrough {
		return false
	}
	if !s1.SSLCert.Equal(s2.SSLCert) {
		return false
	}

	if len(s1.Aliases) != len(s2.Aliases) {
		return false
	}

	for _, a1 := range s1.Aliases {
		found := false
		for _, a2 := range s2.Aliases {
			if a1 == a2 {
				found = true
				break
			}
		}
		if !found {
			return false
		}
	}

	if s1.RedirectFromToWWW != s2.RedirectFromToWWW {
		return false
	}
	if !(&s1.CertificateAuth).Equal(&s2.CertificateAuth) {
		return false
	}
	if s1.ServerSnippet != s2.ServerSnippet {
		return false
	}
	if s1.SSLCiphers != s2.SSLCiphers {
		return false
	}
	if s1.SSLPreferServerCiphers != s2.SSLPreferServerCiphers {
		return false
	}
	if s1.AuthTLSError != s2.AuthTLSError {
		return false
	}
	if !(&s1.ProxySSL).Equal(&s2.ProxySSL) {
		return false
	}

	if len(s1.Locations) != len(s2.Locations) {
		return false
	}

	// Location are sorted
	for idx, s1l := range s1.Locations {
		if !s1l.Equal(s2.Locations[idx]) {
			return false
		}
	}

	return true
}