feat(agent): tie up

This commit is contained in:
2026-04-04 04:44:52 +03:00
parent a2c71da3a0
commit f578b6eb51
2 changed files with 24 additions and 7 deletions
+6 -7
View File
@@ -17,17 +17,16 @@ import (
)
type CommanderClient struct {
cmder *commander.CommandExecutor
wg *sync.WaitGroup
id string
cmder *commander.CommandExecutor
wg *sync.WaitGroup
id, label string
}
func New(
cmder *commander.CommandExecutor,
wg *sync.WaitGroup,
id string,
id, label string,
) CommanderClient {
return CommanderClient{cmder, wg, id}
return CommanderClient{cmder, new(sync.WaitGroup), id, label}
}
func (self *CommanderClient) HandleCommands(ctx context.Context, srvAddr string, tc credentials.TransportCredentials) error {
@@ -36,7 +35,7 @@ func (self *CommanderClient) HandleCommands(ctx context.Context, srvAddr string,
return fmt.Errorf("Failed to connect to gRPC: %w", err)
}
ccli := proto.NewCommanderClient(cli)
bidi, err := ccli.Stream(metadata.NewOutgoingContext(ctx, metadata.MD{"agentid": []string{self.id}}))
bidi, err := ccli.Stream(metadata.NewOutgoingContext(ctx, metadata.MD{"agentid": []string{self.id}, "label": []string{self.label}}))
if err != nil {
return err
}
+18
View File
@@ -1,10 +1,14 @@
package main
import (
"context"
"log"
"os"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/client"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/commander"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/config"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/mtls"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/registration"
)
@@ -46,4 +50,18 @@ func main() {
log.Printf("Certificates saved to %s", cfg.CertDir)
log.Println("Agent registration complete")
err = func() error {
creds, err := mtls.LoadMTLSCredentials(certs.CACertPEM, certs.ClientCertPEM, certs.ClientKeyPEM)
if err != nil {
return err
}
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
cmdexe := new(commander.CommandExecutor)
ccli := client.New(cmdexe, cfg.RegistrationToken)
return ccli.HandleCommands(ctx, cfg.BackendURL, creds)
}()
if err != nil {
log.Fatalf("Failed to generate key and CSR: %v", err)
}
}