소스 검색

fix return value parsing

Darien Raymond 7 년 전
부모
커밋
07a7597ee8
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      v2ray.go

+ 6 - 2
v2ray.go

@@ -71,8 +71,12 @@ func (r *resolution) resolve(allFeatures []features.Feature) (bool, error) {
 	ret := callback.Call(input)
 	errInterface := reflect.TypeOf((*error)(nil)).Elem()
 	for i := len(ret) - 1; i >= 0; i-- {
-		if ret[i].Type().Implements(errInterface) {
-			err = ret[i].Interface().(error)
+		if ret[i].Type() == errInterface {
+			v := ret[i].Interface()
+			if v != nil {
+				err = v.(error)
+			}
+			break
 		}
 	}