From e6d8cb6c5abe9d7ba616f7a1a36e44229b36da4d Mon Sep 17 00:00:00 2001 From: mountain Date: Wed, 10 Sep 2025 01:11:08 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20=EC=A0=84=EC=86=A1=20body?= =?UTF-8?q?=EC=97=90=20=EB=B2=84=ED=8D=BC=20=EB=B3=B5=EC=82=AC=EA=B0=80=20?= =?UTF-8?q?=EC=A0=9C=EB=8C=80=EB=A1=9C=20=EC=95=88=EB=90=98=EB=8D=98=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- opensearch/client.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/opensearch/client.go b/opensearch/client.go index 5051407..910775a 100644 --- a/opensearch/client.go +++ b/opensearch/client.go @@ -76,21 +76,23 @@ func (c *Client) SendBulk(ds map[string]*LogDocument) { } type stringSliceReader struct { - src [][]byte - pointer int + src [][]byte } func (b *stringSliceReader) Read(p []byte) (n int, err error) { - for b.pointer < len(b.src) { - sbt := b.src[b.pointer] + for len(b.src) > 0 { + sbt := b.src[0] if len(p) < len(sbt) { - return + b.src[0] = sbt[len(p):] + sbt = sbt[:len(p)] + copy(p, sbt) + return n + len(sbt), nil } + copy(p, sbt) - p = p[len(sbt):] - b.pointer++ n += len(sbt) - err = nil + p = p[len(sbt):] + b.src = b.src[1:] } err = io.EOF return @@ -134,7 +136,7 @@ func (c *Client) sendLoop(ctx context.Context) { } }() - reader := &stringSliceReader{src: sending, pointer: 0} + reader := &stringSliceReader{src: sending} req := osapi.BulkReq{ Body: reader, Header: c.bulkHeader,