From 7ff98f64a8ed0d50a6513c4cb8c593da8609709b Mon Sep 17 00:00:00 2001
From: Garet Halliday <me@garet.holiday>
Date: Wed, 13 Sep 2023 15:49:19 -0500
Subject: [PATCH] need to rewrite eqp :( it can cause packets to be sent out of
 order

---
 lib/middleware/middlewares/eqp/client.go      |  2 --
 lib/middleware/middlewares/eqp/server.go      |  2 --
 lib/middleware/middlewares/eqp2/client.go     | 21 +++++++++++++++++++
 lib/middleware/middlewares/ps/client.go       |  6 ++++--
 lib/middleware/middlewares/ps/server.go       |  6 ++++--
 .../middlewares/unterminate/unterminate.go    |  8 ++++---
 lib/middleware/nil.go                         | 15 -------------
 7 files changed, 34 insertions(+), 26 deletions(-)
 create mode 100644 lib/middleware/middlewares/eqp2/client.go
 delete mode 100644 lib/middleware/nil.go

diff --git a/lib/middleware/middlewares/eqp/client.go b/lib/middleware/middlewares/eqp/client.go
index 2f8efee5..b439d154 100644
--- a/lib/middleware/middlewares/eqp/client.go
+++ b/lib/middleware/middlewares/eqp/client.go
@@ -11,8 +11,6 @@ import (
 type Client struct {
 	preparedStatements map[string]PreparedStatement
 	portals            map[string]Portal
-
-	middleware.Nil
 }
 
 func NewClient() *Client {
diff --git a/lib/middleware/middlewares/eqp/server.go b/lib/middleware/middlewares/eqp/server.go
index a7c8884d..10f00b56 100644
--- a/lib/middleware/middlewares/eqp/server.go
+++ b/lib/middleware/middlewares/eqp/server.go
@@ -23,8 +23,6 @@ type Server struct {
 	pendingCloses             ring.Ring[Close]
 
 	peer *Client
-
-	middleware.Nil
 }
 
 func NewServer() *Server {
diff --git a/lib/middleware/middlewares/eqp2/client.go b/lib/middleware/middlewares/eqp2/client.go
new file mode 100644
index 00000000..b15458cd
--- /dev/null
+++ b/lib/middleware/middlewares/eqp2/client.go
@@ -0,0 +1,21 @@
+package eqp2
+
+import (
+	"pggat/lib/fed"
+	"pggat/lib/middleware"
+)
+
+type Client struct {
+}
+
+func (T *Client) Read(ctx middleware.Context, packet fed.Packet) error {
+	// TODO implement me
+	panic("implement me")
+}
+
+func (T *Client) Write(ctx middleware.Context, packet fed.Packet) error {
+	// TODO implement me
+	panic("implement me")
+}
+
+var _ middleware.Middleware = (*Client)(nil)
diff --git a/lib/middleware/middlewares/ps/client.go b/lib/middleware/middlewares/ps/client.go
index e3970c8f..eaf0cbf2 100644
--- a/lib/middleware/middlewares/ps/client.go
+++ b/lib/middleware/middlewares/ps/client.go
@@ -12,8 +12,6 @@ import (
 type Client struct {
 	synced     bool
 	parameters map[strutil.CIString]string
-
-	middleware.Nil
 }
 
 func NewClient(parameters map[strutil.CIString]string) *Client {
@@ -22,6 +20,10 @@ func NewClient(parameters map[strutil.CIString]string) *Client {
 	}
 }
 
+func (T *Client) Read(_ middleware.Context, _ fed.Packet) error {
+	return nil
+}
+
 func (T *Client) Write(ctx middleware.Context, packet fed.Packet) error {
 	switch packet.Type() {
 	case packets.TypeParameterStatus:
diff --git a/lib/middleware/middlewares/ps/server.go b/lib/middleware/middlewares/ps/server.go
index 187d46e1..b397f07d 100644
--- a/lib/middleware/middlewares/ps/server.go
+++ b/lib/middleware/middlewares/ps/server.go
@@ -11,8 +11,6 @@ import (
 
 type Server struct {
 	parameters map[strutil.CIString]string
-
-	middleware.Nil
 }
 
 func NewServer(parameters map[strutil.CIString]string) *Server {
@@ -37,4 +35,8 @@ func (T *Server) Read(_ middleware.Context, packet fed.Packet) error {
 	return nil
 }
 
+func (T *Server) Write(_ middleware.Context, _ fed.Packet) error {
+	return nil
+}
+
 var _ middleware.Middleware = (*Server)(nil)
diff --git a/lib/middleware/middlewares/unterminate/unterminate.go b/lib/middleware/middlewares/unterminate/unterminate.go
index 3850e667..036ed9d3 100644
--- a/lib/middleware/middlewares/unterminate/unterminate.go
+++ b/lib/middleware/middlewares/unterminate/unterminate.go
@@ -12,9 +12,7 @@ import (
 // Useful if you don't want to forward to the server and close the connection.
 var Unterminate = unterm{}
 
-type unterm struct {
-	middleware.Nil
-}
+type unterm struct{}
 
 func (unterm) Read(_ middleware.Context, packet fed.Packet) error {
 	if packet.Type() == packets.TypeTerminate {
@@ -23,4 +21,8 @@ func (unterm) Read(_ middleware.Context, packet fed.Packet) error {
 	return nil
 }
 
+func (unterm) Write(_ middleware.Context, _ fed.Packet) error {
+	return nil
+}
+
 var _ middleware.Middleware = unterm{}
diff --git a/lib/middleware/nil.go b/lib/middleware/nil.go
deleted file mode 100644
index 4d838bb0..00000000
--- a/lib/middleware/nil.go
+++ /dev/null
@@ -1,15 +0,0 @@
-package middleware
-
-import "pggat/lib/fed"
-
-type Nil struct{}
-
-func (Nil) Read(_ Context, _ fed.Packet) error {
-	return nil
-}
-
-func (Nil) Write(_ Context, _ fed.Packet) error {
-	return nil
-}
-
-var _ Middleware = Nil{}
-- 
GitLab