explainErrors.go 571 B

1234567891011121314151617181920212223242526
  1. package observatory
  2. import "github.com/xtls/xray-core/common/errors"
  3. type errorCollector struct {
  4. errors *errors.Error
  5. }
  6. func (e *errorCollector) SubmitError(err error) {
  7. if e.errors == nil {
  8. e.errors = errors.New("underlying connection error").Base(err)
  9. return
  10. }
  11. e.errors = e.errors.Base(errors.New("underlying connection error").Base(err))
  12. }
  13. func newErrorCollector() *errorCollector {
  14. return &errorCollector{}
  15. }
  16. func (e *errorCollector) UnderlyingError() error {
  17. if e.errors == nil {
  18. return errors.New("failed to produce report")
  19. }
  20. return e.errors
  21. }