mirror of https://github.com/v2ray/v2ray-core
parent
530f749aa3
commit
a45498da45
@ -1,38 +1,37 @@
|
||||
package io
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
_ "fmt"
|
||||
"github.com/v2ray/v2ray-core"
|
||||
"encoding/json"
|
||||
_ "fmt"
|
||||
"github.com/v2ray/v2ray-core"
|
||||
)
|
||||
|
||||
type JsonVUser struct {
|
||||
id string `json:"id"`
|
||||
email string `json:"email"`
|
||||
id string `json:"id"`
|
||||
email string `json:"email"`
|
||||
}
|
||||
|
||||
type JsonVConfig struct {
|
||||
RunAs string `json:"runas"`
|
||||
Port uint8 `json:"port"`
|
||||
Clients []JsonVUser `json:"users"`
|
||||
Protocol string `json:"protocol"`
|
||||
RunAs string `json:"runas"`
|
||||
Port uint8 `json:"port"`
|
||||
Clients []JsonVUser `json:"users"`
|
||||
Protocol string `json:"protocol"`
|
||||
}
|
||||
|
||||
type JsonVConfigUnmarshaller struct {
|
||||
|
||||
}
|
||||
|
||||
func StringToVUser(id string) (u core.VUser, err error) {
|
||||
return
|
||||
return
|
||||
}
|
||||
|
||||
func (*JsonVConfigUnmarshaller) Unmarshall(data []byte) (*core.VConfig, error) {
|
||||
var jsonConfig JsonVConfig
|
||||
err := json.Unmarshal(data, &jsonConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var vconfig = new(core.VConfig)
|
||||
vconfig.RunAs = core.VUser{}
|
||||
return vconfig, nil
|
||||
}
|
||||
var jsonConfig JsonVConfig
|
||||
err := json.Unmarshal(data, &jsonConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var vconfig = new(core.VConfig)
|
||||
vconfig.RunAs = core.VUser{}
|
||||
return vconfig, nil
|
||||
}
|
||||
|
@ -1,32 +1,32 @@
|
||||
package io
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net"
|
||||
)
|
||||
|
||||
type VMessInput struct {
|
||||
version byte
|
||||
userHash [16]byte
|
||||
randHash [256]byte
|
||||
respKey [32]byte
|
||||
iv [16]byte
|
||||
command byte
|
||||
port uint16
|
||||
target [256]byte
|
||||
data []byte
|
||||
version byte
|
||||
userHash [16]byte
|
||||
randHash [256]byte
|
||||
respKey [32]byte
|
||||
iv [16]byte
|
||||
command byte
|
||||
port uint16
|
||||
target [256]byte
|
||||
data []byte
|
||||
}
|
||||
|
||||
type VMessReader struct {
|
||||
conn *net.Conn
|
||||
conn *net.Conn
|
||||
}
|
||||
|
||||
func NewVMessReader(conn *net.Conn) (VMessReader, error) {
|
||||
var reader VMessReader
|
||||
reader.conn = conn
|
||||
return reader, nil
|
||||
var reader VMessReader
|
||||
reader.conn = conn
|
||||
return reader, nil
|
||||
}
|
||||
|
||||
func (*VMessReader) Read() (VMessInput, error) {
|
||||
var input VMessInput
|
||||
return input, nil
|
||||
}
|
||||
var input VMessInput
|
||||
return input, nil
|
||||
}
|
||||
|
@ -1,19 +1,17 @@
|
||||
package net
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net"
|
||||
)
|
||||
|
||||
type VMessHandler struct {
|
||||
|
||||
}
|
||||
|
||||
func (*VMessHandler) Listen(port uint8) error {
|
||||
listener, err := net.Listen("tcp", ":" + string(port))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
return nil
|
||||
listener, err := net.Listen("tcp", ":"+string(port))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -1,20 +1,20 @@
|
||||
package core
|
||||
|
||||
type VUser struct {
|
||||
id VID
|
||||
id VID
|
||||
}
|
||||
|
||||
type VConfig struct {
|
||||
RunAs VUser
|
||||
Port uint16
|
||||
AllowedClients []VUser
|
||||
AllowedProtocol string
|
||||
RunAs VUser
|
||||
Port uint16
|
||||
AllowedClients []VUser
|
||||
AllowedProtocol string
|
||||
}
|
||||
|
||||
type VConfigMarshaller interface {
|
||||
Marshal(config VConfig) ([]byte, error)
|
||||
Marshal(config VConfig) ([]byte, error)
|
||||
}
|
||||
|
||||
type VConfigUnmarshaller interface {
|
||||
Unmarshal(data []byte) (VConfig, error)
|
||||
Unmarshal(data []byte) (VConfig, error)
|
||||
}
|
||||
|
@ -1,27 +1,27 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type VPoint struct {
|
||||
config VConfig
|
||||
connHandler ConnectionHandler
|
||||
config VConfig
|
||||
connHandler ConnectionHandler
|
||||
}
|
||||
|
||||
func NewVPoint(config *VConfig) (*VPoint, error) {
|
||||
var vpoint *VPoint
|
||||
return vpoint, nil
|
||||
var vpoint *VPoint
|
||||
return vpoint, nil
|
||||
}
|
||||
|
||||
type ConnectionHandler interface {
|
||||
Listen(port uint16) error
|
||||
Listen(port uint16) error
|
||||
}
|
||||
|
||||
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)
|
||||
return nil
|
||||
}
|
||||
if vp.config.Port <= 0 {
|
||||
return fmt.Errorf("Invalid port %d", vp.config.Port)
|
||||
}
|
||||
vp.connHandler.Listen(vp.config.Port)
|
||||
return nil
|
||||
}
|
||||
|
Loading…
Reference in new issue