func()

in pkg/filter/http/grpcproxy/descriptor_source.go [163:192]


func (cs *compositeSource) AllExtensionsForType(typeName string) ([]*desc.FieldDescriptor, error) {

	if cs.reflection == nil {
		fileExts, err := cs.file.AllExtensionsForType(typeName)
		if err != nil {
			return fileExts, nil
		}
	} else {
		exts, err := cs.reflection.AllExtensionsForType(typeName)
		if err != nil {
			return cs.file.AllExtensionsForType(typeName)
		}
		tags := make(map[int32]bool)
		for _, ext := range exts {
			tags[ext.GetNumber()] = true
		}

		fileExts, err := cs.file.AllExtensionsForType(typeName)
		if err != nil {
			return exts, nil
		}
		for _, ext := range fileExts {
			if !tags[ext.GetNumber()] {
				exts = append(exts, ext)
			}
		}
		return exts, nil
	}
	return nil, nil
}