Skip to content

Commit fbb6ae9

Browse files
committed
update cli worker
1 parent b7683cc commit fbb6ae9

3 files changed

Lines changed: 24 additions & 2 deletions

File tree

cli/internal/clients/jacfarm/client.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,16 @@ func (c *Client) GetFlagFormat(ctx context.Context) (string, error) {
173173

174174
func (c *Client) SendFlags(ctx context.Context, flags []*ServiceFlag) error {
175175
url := fmt.Sprintf("%s/api/v1/service/flags", c.baseURL)
176-
req, err := http.NewRequestWithContext(ctx, "PUT", url, nil)
176+
req, err := http.NewRequestWithContext(ctx, "POST", url, nil)
177177
if err != nil {
178178
return err
179179
}
180180
req.Header.Set("Authorization", c.token)
181181
req.Header.Set("Content-Type", "application/json")
182182

183-
data, err := json.Marshal(flags)
183+
data, err := json.Marshal(&ServicePutFlagRequest{
184+
Flags: flags,
185+
})
184186
if err != nil {
185187
return err
186188
}

cli/internal/worker/executor.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ func (w *Worker) runExecutor() {
1313
log := w.log.With(slog.String("op", op))
1414

1515
timer := time.NewTimer(w.attackPeriod)
16+
defer timer.Stop()
1617

1718
for {
1819
select {

cli/internal/worker/sender.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,20 @@ import (
44
jacfarm_client "cli_exploit_runner/internal/clients/jacfarm"
55
"context"
66
"log/slog"
7+
"time"
78

89
"github.com/jacute/prettylogger"
910
)
1011

1112
const senderSize = 50
13+
const sendPeriod = 5 * time.Second
1214

1315
func (w *Worker) runSender() {
1416
const op = "worker.startSender"
1517
log := w.log.With(slog.String("op", op))
1618

19+
timer := time.NewTimer(sendPeriod)
20+
defer timer.Stop()
1721
flagBuffer := make([]*jacfarm_client.ServiceFlag, 0, senderSize)
1822

1923
for {
@@ -28,17 +32,32 @@ func (w *Worker) runSender() {
2832
err := w.client.SendFlags(context.Background(), flagBuffer)
2933
if err != nil {
3034
log.Error("error sending flags", prettylogger.Err(err))
35+
} else {
36+
log.Info("flags send successfully", slog.Int("flags_count", len(flagBuffer)), slog.Any("first_flags", flagBuffer[:5]))
3137
}
3238
}
3339
return
3440
}
3541
}
42+
case <-timer.C:
43+
if len(flagBuffer) > 0 {
44+
err := w.client.SendFlags(context.Background(), flagBuffer)
45+
if err != nil {
46+
log.Error("error sending flags", prettylogger.Err(err))
47+
} else {
48+
log.Info("flags send successfully", slog.Int("flags_count", len(flagBuffer)), slog.Any("first_flags", flagBuffer[:5]))
49+
}
50+
flagBuffer = flagBuffer[:0]
51+
}
52+
timer.Reset(sendPeriod)
3653
case flags := <-w.flagQueue:
3754
flagBuffer = append(flagBuffer, flags...)
3855
if len(flagBuffer) >= senderSize {
3956
err := w.client.SendFlags(context.Background(), flagBuffer)
4057
if err != nil {
4158
log.Error("error sending flags", prettylogger.Err(err))
59+
} else {
60+
log.Info("flags send successfully", slog.Int("flags_count", len(flagBuffer)), slog.Any("first_flags", flagBuffer[:5]))
4261
}
4362
flagBuffer = flagBuffer[:0]
4463
}

0 commit comments

Comments
 (0)