From ac3537491a7e5793eb43012b965dd3f7ea0c8d1c Mon Sep 17 00:00:00 2001
From: a <a@tuxpa.in>
Date: Sun, 16 Jun 2024 20:18:02 -0500
Subject: [PATCH] noot

---
 lib/fed/conn.go                  |  6 ++++++
 lib/gat/handlers/pool/dialer.go  |  5 +++--
 lib/gat/listen.go                |  3 ++-
 lib/gat/matchers/localaddress.go |  2 +-
 lib/gsql/pair.go                 | 13 +++++++++++--
 lib/gsql/query_test.go           |  3 ++-
 6 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/lib/fed/conn.go b/lib/fed/conn.go
index 848a0bb9..892a219b 100644
--- a/lib/fed/conn.go
+++ b/lib/fed/conn.go
@@ -2,6 +2,7 @@ package fed
 
 import (
 	"crypto/tls"
+	"net"
 
 	"gfx.cafe/gfx/pggat/lib/util/decorator"
 	"gfx.cafe/gfx/pggat/lib/util/strutil"
@@ -157,6 +158,11 @@ func (T *Conn) WriteByte(b byte) error {
 	return T.codec.WriteByte(b)
 }
 
+func (T *Conn) LocalAddr() net.Addr {
+	return T.codec.LocalAddr()
+
+}
+
 func (T *Conn) ReadByte() (byte, error) {
 	return T.codec.ReadByte()
 }
diff --git a/lib/gat/handlers/pool/dialer.go b/lib/gat/handlers/pool/dialer.go
index ba902c94..1da5d9fe 100644
--- a/lib/gat/handlers/pool/dialer.go
+++ b/lib/gat/handlers/pool/dialer.go
@@ -14,6 +14,7 @@ import (
 	"gfx.cafe/gfx/pggat/lib/bouncer"
 	"gfx.cafe/gfx/pggat/lib/bouncer/backends/v0"
 	"gfx.cafe/gfx/pggat/lib/fed"
+	"gfx.cafe/gfx/pggat/lib/fed/codecs/netconncodec"
 	"gfx.cafe/gfx/pggat/lib/gat"
 	"gfx.cafe/gfx/pggat/lib/util/strutil"
 )
@@ -65,7 +66,7 @@ func (T *Dialer) Dial() (*fed.Conn, error) {
 	if err != nil {
 		return nil, err
 	}
-	conn := fed.NewConn(c)
+	conn := fed.NewConn(netconncodec.NewCodec(c))
 	conn.User = T.Username
 	conn.Database = T.Database
 	err = backends.Accept(
@@ -89,7 +90,7 @@ func (T *Dialer) Cancel(key fed.BackendKey) {
 	if err != nil {
 		return
 	}
-	conn := fed.NewConn(c)
+	conn := fed.NewConn(netconncodec.NewCodec(c))
 	defer func() {
 		_ = conn.Close()
 	}()
diff --git a/lib/gat/listen.go b/lib/gat/listen.go
index 9a4e22b8..fb47fd97 100644
--- a/lib/gat/listen.go
+++ b/lib/gat/listen.go
@@ -15,6 +15,7 @@ import (
 	"go.uber.org/zap"
 
 	"gfx.cafe/gfx/pggat/lib/fed"
+	"gfx.cafe/gfx/pggat/lib/fed/codecs/netconncodec"
 )
 
 type ListenerConfig struct {
@@ -40,7 +41,7 @@ func (T *Listener) accept() (*fed.Conn, error) {
 	if err != nil {
 		return nil, err
 	}
-	return fed.NewConn(raw), nil
+	return fed.NewConn(netconncodec.NewCodec(raw)), nil
 }
 
 func (T *Listener) Provision(ctx caddy.Context) error {
diff --git a/lib/gat/matchers/localaddress.go b/lib/gat/matchers/localaddress.go
index 920d2852..b89e6699 100644
--- a/lib/gat/matchers/localaddress.go
+++ b/lib/gat/matchers/localaddress.go
@@ -48,7 +48,7 @@ func (T *LocalAddress) Provision(ctx caddy.Context) error {
 }
 
 func (T *LocalAddress) Matches(conn *fed.Conn) bool {
-	switch addr := conn.NetConn.LocalAddr().(type) {
+	switch addr := conn.LocalAddr().(type) {
 	case *net.TCPAddr:
 		expected, ok := T.addr.(*net.TCPAddr)
 		if !ok {
diff --git a/lib/gsql/pair.go b/lib/gsql/pair.go
index e6ceb79c..10e9ed0c 100644
--- a/lib/gsql/pair.go
+++ b/lib/gsql/pair.go
@@ -2,14 +2,23 @@ package gsql
 
 import (
 	"gfx.cafe/gfx/pggat/lib/fed"
+	"gfx.cafe/gfx/pggat/lib/fed/codecs/netconncodec"
 	"gfx.cafe/gfx/pggat/lib/util/mio"
 )
 
 func NewPair() (*fed.Conn, *fed.Conn) {
 	conn := new(mio.Conn)
-	inward := fed.NewConn(mio.InwardConn{Conn: conn})
+	inward := fed.NewConn(
+		netconncodec.NewCodec(
+			mio.InwardConn{Conn: conn},
+		),
+	)
 	inward.Ready = true
-	outward := fed.NewConn(mio.OutwardConn{Conn: conn})
+	outward := fed.NewConn(
+		netconncodec.NewCodec(
+			mio.OutwardConn{Conn: conn},
+		),
+	)
 	outward.Ready = true
 
 	return inward, outward
diff --git a/lib/gsql/query_test.go b/lib/gsql/query_test.go
index 3839029d..9b1d24b3 100644
--- a/lib/gsql/query_test.go
+++ b/lib/gsql/query_test.go
@@ -11,6 +11,7 @@ import (
 	"gfx.cafe/gfx/pggat/lib/bouncer/backends/v0"
 	"gfx.cafe/gfx/pggat/lib/bouncer/bouncers/v2"
 	"gfx.cafe/gfx/pggat/lib/fed"
+	"gfx.cafe/gfx/pggat/lib/fed/codecs/netconncodec"
 	"gfx.cafe/gfx/pggat/lib/gsql"
 	"gfx.cafe/gfx/pggat/lib/util/flip"
 )
@@ -30,7 +31,7 @@ func TestQuery(t *testing.T) {
 		t.Error(err)
 		return
 	}
-	server := fed.NewConn(s)
+	server := fed.NewConn(netconncodec.NewCodec(s))
 	err = backends.Accept(
 		server,
 		"",
-- 
GitLab