mirror of
https://github.com/v2ray/v2ray-core.git
synced 2026-11-13 22:45:13 +00:00
vray
This commit is contained in:
1 parent
f09d65b2e5
commit
1c618e93b1
4 files changed
+67
-17
No files matched your search
@@ -6,8 +6,9 @@ import (
|
||||
|
||||
// VPoint is an single server in V2Ray system.
|
||||
type VPoint struct {
|
||||
config VConfig
|
||||
connHandler ConnectionHandler
|
||||
config VConfig
|
||||
ichFactory InboundConnectionHandlerFactory
|
||||
ochFactory OutboundConnectionHandlerFactory
|
||||
}
|
||||
|
||||
// NewVPoint returns a new VPoint server based on given configuration.
|
||||
@@ -18,16 +19,32 @@ func NewVPoint(config *VConfig) (*VPoint, error) {
|
||||
return vpoint, nil
|
||||
}
|
||||
|
||||
type ConnectionHandler interface {
|
||||
type InboundConnectionHandlerFactory interface {
|
||||
Create(vPoint *VPoint) (InboundConnectionHandler, error)
|
||||
}
|
||||
|
||||
type InboundConnectionHandler interface {
|
||||
Listen(port uint16) error
|
||||
}
|
||||
|
||||
type OutboundConnectionHandlerFactory interface {
|
||||
Create(vPoint *VPoint) (OutboundConnectionHandler, error)
|
||||
}
|
||||
|
||||
type OutboundConnectionHandler interface {
|
||||
Start(vray *OutboundVRay) error
|
||||
}
|
||||
|
||||
// Start starts the VPoint server, and return any error during the process.
|
||||
// In the case of any errors, the state of the server is unpredicatable.
|
||||
func (vp *VPoint) Start() error {
|
||||
if vp.config.Port <= 0 {
|
||||
return fmt.Errorf("Invalid port %d", vp.config.Port)
|
||||
}
|
||||
vp.connHandler.Listen(vp.config.Port)
|
||||
inboundConnectionHandler, err := vp.ichFactory.Create(vp)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = inboundConnectionHandler.Listen(vp.config.Port)
|
||||
return nil
|
||||
}
|
||||
Reference in new issue
Block a user