aboutsummaryrefslogtreecommitdiff
path: root/connect.go
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2021-09-06 11:03:27 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2021-09-06 11:03:27 +0200
commit18a80c7a57639a540965f9b101db18c6490cd804 (patch)
tree0c25e38ef68706186e10416e790c4ffd832abdf3 /connect.go
parent1de8660e9d4c8f14a3b887e6f137d1c44a2664ef (diff)
Expose ClientConn to plugins
Diffstat (limited to 'connect.go')
-rw-r--r--connect.go16
1 files changed, 12 insertions, 4 deletions
diff --git a/connect.go b/connect.go
index d2a376a..4aa7a5d 100644
--- a/connect.go
+++ b/connect.go
@@ -1,4 +1,4 @@
-package main
+package proxy
import (
"net"
@@ -6,8 +6,16 @@ import (
"github.com/anon55555/mt"
)
-func connect(conn net.Conn, name string, cc *clientConn) *serverConn {
- sc := &serverConn{
+func Connect(conn net.Conn, name string, cc *ClientConn) *ServerConn {
+ cc.mu.RLock()
+ if cc.srv != nil {
+ cc.Log("<->", "already connected to server")
+ cc.mu.RUnlock()
+ return nil
+ }
+ cc.mu.RUnlock()
+
+ sc := &ServerConn{
Peer: mt.Connect(conn),
initCh: make(chan struct{}),
clt: cc,
@@ -18,7 +26,7 @@ func connect(conn net.Conn, name string, cc *clientConn) *serverConn {
huds: make(map[mt.HUDID]mt.HUDType),
playerList: make(map[string]struct{}),
}
- sc.log("-->", "connect")
+ sc.Log("-->", "connect")
cc.mu.Lock()
cc.srv = sc