From 9b762a19f28ca1880c78c0d48b2c2588bc2a2a1d Mon Sep 17 00:00:00 2001 From: Garet Halliday <me@garet.holiday> Date: Mon, 18 Sep 2023 19:28:22 -0500 Subject: [PATCH] oh wow it actually works --- lib/gat/pool/flow.go | 12 +++++++++--- lib/middleware/middlewares/ps/sync.go | 8 ++++++-- test/capturer.go | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/gat/pool/flow.go b/lib/gat/pool/flow.go index 3a1c453f..4a1df190 100644 --- a/lib/gat/pool/flow.go +++ b/lib/gat/pool/flow.go @@ -2,6 +2,7 @@ package pool import ( "pggat/lib/bouncer/backends/v0" + "pggat/lib/fed" packets "pggat/lib/fed/packets/v3.0" "pggat/lib/gat/metrics" "pggat/lib/middleware/middlewares/eqp" @@ -42,6 +43,8 @@ func SyncInitialParameters(options Options, client *Client, server *Server) (cli clientParams := client.GetInitialParameters() serverParams := server.GetInitialParameters() + var packet fed.Packet + for key, value := range clientParams { // skip already set params if serverParams[key] == value { @@ -49,7 +52,8 @@ func SyncInitialParameters(options Options, client *Client, server *Server) (cli Key: key.String(), Value: serverParams[key], } - clientErr = client.GetConn().WritePacket(p.IntoPacket(nil)) + packet = p.IntoPacket(packet) + clientErr = client.GetConn().WritePacket(packet) if clientErr != nil { return } @@ -66,7 +70,8 @@ func SyncInitialParameters(options Options, client *Client, server *Server) (cli Key: key.String(), Value: value, } - clientErr = client.GetConn().WritePacket(p.IntoPacket(nil)) + packet = p.IntoPacket(packet) + clientErr = client.GetConn().WritePacket(packet) if clientErr != nil { return } @@ -96,7 +101,8 @@ func SyncInitialParameters(options Options, client *Client, server *Server) (cli Key: key.String(), Value: value, } - clientErr = client.GetConn().WritePacket(p.IntoPacket(nil)) + packet = p.IntoPacket(packet) + clientErr = client.GetConn().WritePacket(packet) if clientErr != nil { return } diff --git a/lib/middleware/middlewares/ps/sync.go b/lib/middleware/middlewares/ps/sync.go index 0b73eb7e..8aea27f8 100644 --- a/lib/middleware/middlewares/ps/sync.go +++ b/lib/middleware/middlewares/ps/sync.go @@ -12,13 +12,16 @@ func sync(tracking []strutil.CIString, client fed.ReadWriter, c *Client, server value, hasValue := c.parameters[name] expected, hasExpected := s.parameters[name] + var packet fed.Packet + if value == expected { if !c.synced { ps := packets.ParameterStatus{ Key: name.String(), Value: expected, } - if err := client.WritePacket(ps.IntoPacket(nil)); err != nil { + packet = ps.IntoPacket(packet) + if err := client.WritePacket(packet); err != nil { return err } } @@ -49,7 +52,8 @@ func sync(tracking []strutil.CIString, client fed.ReadWriter, c *Client, server Key: name.String(), Value: expected, } - if err := client.WritePacket(ps.IntoPacket(nil)); err != nil { + packet = ps.IntoPacket(packet) + if err := client.WritePacket(packet); err != nil { return err } } diff --git a/test/capturer.go b/test/capturer.go index cc301226..c319ed27 100644 --- a/test/capturer.go +++ b/test/capturer.go @@ -13,7 +13,7 @@ type Capturer struct { } func (T *Capturer) WritePacket(packet fed.Packet) error { - T.Packets = append(T.Packets, packet) + T.Packets = append(T.Packets, bytes.Clone(packet)) return nil } -- GitLab