mirror of
https://github.com/wyx2685/V2bX.git
synced 2025-01-22 09:58:14 -05:00
62 lines
1.0 KiB
Go
62 lines
1.0 KiB
Go
package hy2
|
|
|
|
import (
|
|
"github.com/InazumaV/V2bX/conf"
|
|
vCore "github.com/InazumaV/V2bX/core"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
var _ vCore.Core = (*Hysteria2)(nil)
|
|
|
|
type Hysteria2 struct {
|
|
Hy2nodes map[string]Hysteria2node
|
|
Auth *V2bX
|
|
Logger *zap.Logger
|
|
}
|
|
|
|
func init() {
|
|
vCore.RegisterCore("hysteria2", New)
|
|
}
|
|
|
|
func New(c *conf.CoreConfig) (vCore.Core, error) {
|
|
loglever := "error"
|
|
if c.Hysteria2Config.LogConfig.Level != "" {
|
|
loglever = c.Hysteria2Config.LogConfig.Level
|
|
}
|
|
log, err := initLogger(loglever, "console")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &Hysteria2{
|
|
Hy2nodes: make(map[string]Hysteria2node),
|
|
Auth: &V2bX{
|
|
usersMap: make(map[string]int),
|
|
},
|
|
Logger: log,
|
|
}, nil
|
|
}
|
|
|
|
func (h *Hysteria2) Protocols() []string {
|
|
return []string{
|
|
"hysteria2",
|
|
}
|
|
}
|
|
|
|
func (h *Hysteria2) Start() error {
|
|
return nil
|
|
}
|
|
|
|
func (h *Hysteria2) Close() error {
|
|
for _, n := range h.Hy2nodes {
|
|
err := n.Hy2server.Close()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (h *Hysteria2) Type() string {
|
|
return "hysteria2"
|
|
}
|