mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-02-14 04:05:22 -05:00
prototype of commander
This commit is contained in:
17
v2ray.go
17
v2ray.go
@@ -46,20 +46,18 @@ func New(config *Config) (*Instance, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ctx := context.WithValue(context.Background(), v2rayKey, server)
|
||||
|
||||
for _, appSettings := range config.App {
|
||||
settings, err := appSettings.GetInstance()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if _, err := common.CreateObject(ctx, settings); err != nil {
|
||||
if _, err := server.CreateObject(settings); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
for _, inbound := range config.Inbound {
|
||||
rawHandler, err := common.CreateObject(ctx, inbound)
|
||||
rawHandler, err := server.CreateObject(inbound)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -67,13 +65,13 @@ func New(config *Config) (*Instance, error) {
|
||||
if !ok {
|
||||
return nil, newError("not an InboundHandler")
|
||||
}
|
||||
if err := server.InboundHandlerManager().AddHandler(ctx, handler); err != nil {
|
||||
if err := server.InboundHandlerManager().AddHandler(context.Background(), handler); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
for _, outbound := range config.Outbound {
|
||||
rawHandler, err := common.CreateObject(ctx, outbound)
|
||||
rawHandler, err := server.CreateObject(outbound)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -81,7 +79,7 @@ func New(config *Config) (*Instance, error) {
|
||||
if !ok {
|
||||
return nil, newError("not an OutboundHandler")
|
||||
}
|
||||
if err := server.OutboundHandlerManager().AddHandler(ctx, handler); err != nil {
|
||||
if err := server.OutboundHandlerManager().AddHandler(context.Background(), handler); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -89,6 +87,11 @@ func New(config *Config) (*Instance, error) {
|
||||
return server, nil
|
||||
}
|
||||
|
||||
func (s *Instance) CreateObject(config interface{}) (interface{}, error) {
|
||||
ctx := context.WithValue(context.Background(), v2rayKey, s)
|
||||
return common.CreateObject(ctx, config)
|
||||
}
|
||||
|
||||
// ID returns an unique ID for this V2Ray instance.
|
||||
func (s *Instance) ID() uuid.UUID {
|
||||
return s.id
|
||||
|
||||
Reference in New Issue
Block a user