| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- package registry
 
- import (
 
- 	"v2ray.com/core/common/loader"
 
- 	"github.com/golang/protobuf/proto"
 
- 	"github.com/golang/protobuf/ptypes"
 
- 	"github.com/golang/protobuf/ptypes/any"
 
- )
 
- var (
 
- 	inboundConfigCreatorCache  = loader.ConfigCreatorCache{}
 
- 	outboundConfigCreatorCache = loader.ConfigCreatorCache{}
 
- )
 
- func RegisterInboundConfig(protocol string, creator loader.ConfigCreator) error {
 
- 	return inboundConfigCreatorCache.RegisterCreator(protocol, creator)
 
- }
 
- func RegisterOutboundConfig(protocol string, creator loader.ConfigCreator) error {
 
- 	return outboundConfigCreatorCache.RegisterCreator(protocol, creator)
 
- }
 
- func MarshalInboundConfig(protocol string, settings *any.Any) (interface{}, error) {
 
- 	config, err := inboundConfigCreatorCache.CreateConfig(protocol)
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	if err := ptypes.UnmarshalAny(settings, config.(proto.Message)); err != nil {
 
- 		return nil, err
 
- 	}
 
- 	return config, nil
 
- }
 
- func MarshalOutboundConfig(protocol string, settings *any.Any) (interface{}, error) {
 
- 	config, err := outboundConfigCreatorCache.CreateConfig(protocol)
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	if err := ptypes.UnmarshalAny(settings, config.(proto.Message)); err != nil {
 
- 		return nil, err
 
- 	}
 
- 	return config, nil
 
- }
 
 
  |