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
}