import from minilb repo

This commit is contained in:
2026-03-25 16:55:28 +02:00
parent 8efe7090be
commit 3aa1e52a5d
37 changed files with 1977 additions and 424 deletions

View File

@@ -4,6 +4,7 @@ import (
"helmet/app/logger"
"helmet/app/config"
"helmet/app/rproxy"
)
type OperatorConfig struct {
@@ -13,13 +14,15 @@ type OperatorConfig struct {
type Operator struct {
log *logger.Logger
auths []config.Auth
proxy *rproxy.Proxy
}
func NewOperator(conf *OperatorConfig) (*Operator, error) {
var err error
lg := &Operator{
oper := &Operator{
auths: conf.Auths,
}
lg.log = logger.NewLogger("operator")
return lg, err
oper.log = logger.NewLogger("operator")
oper.proxy = rproxy.NewProxy()
return oper, err
}

44
app/operator/proxy.go Normal file
View File

@@ -0,0 +1,44 @@
package operator
import (
"context"
"helmet/pkg/mlbctl"
)
func (oper *Operator) ListForwarders(ctx context.Context, params *mlbctl.ListForwardersParams) (*mlbctl.ListForwardersResult, error) {
var err error
res := &mlbctl.ListForwardersResult{
Forwarders: make([]*mlbctl.Forwarder, 0),
}
for _, forw := range oper.proxy.Forwarders {
oForw := &mlbctl.Forwarder{
Lport: forw.Lport,
Dport: forw.Dport,
Destinations: make([]*mlbctl.Destination, 0),
}
for _, dest := range forw.Dests {
oDest := &mlbctl.Destination{
Address: dest.Address,
}
oForw.Destinations = append(oForw.Destinations, oDest)
}
res.Forwarders = append(res.Forwarders, oForw)
}
return res, err
}
func (oper *Operator) CreateForwarder(ctx context.Context, params *mlbctl.CreateForwarderParams) (*mlbctl.CreateForwarderResult, error) {
var err error
res := &mlbctl.CreateForwarderResult{}
err = oper.proxy.AddForwarder(ctx, params.Lport, params.Dport, params.Destinations...)
return res, err
}
func (oper *Operator) DeleteForwarder(ctx context.Context, params *mlbctl.DeleteForwarderParams) (*mlbctl.DeleteForwarderResult, error) {
var err error
res := &mlbctl.DeleteForwarderResult{}
err = oper.proxy.DeleteForwarder(ctx, params.Lport)
return res, err
}