use correct connections
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m48s

This commit is contained in:
matst80
2024-11-10 18:51:49 +01:00
parent c72b0f54c7
commit 09e005f0e7

View File

@@ -2,7 +2,6 @@ package main
import (
"fmt"
"net"
"strings"
"sync"
)
@@ -30,31 +29,18 @@ type RemoteGrain struct {
}
func NewRemoteGrain(id CartId, address string) *RemoteGrain {
client, err := CartDial(address)
if err != nil {
return nil
}
return &RemoteGrain{
Id: id,
Address: address,
CartClient: client,
}
}
func (g *RemoteGrain) Connect() error {
if g == nil {
return fmt.Errorf("grain is deleted")
}
if g.connection == nil {
addr := g.Address
if !strings.Contains(addr, ":") {
addr = fmt.Sprintf("%s:1337", addr)
}
client, err := net.Dial("tcp", addr)
if err != nil {
return err
}
g.Conn = client
g.PacketQueue = NewPacketQueue(client)
}
return nil
}
func (g *RemoteGrain) HandleMessage(message *Message, isReplay bool) ([]byte, error) {
data, err := GetData(message.Write)
@@ -92,7 +78,6 @@ func (p *RemoteGrainPool) findRemoteGrain(id CartId) *RemoteGrain {
if !ok || grain == nil {
return nil
}
grain.Connect()
return grain
}
@@ -100,10 +85,10 @@ func (p *RemoteGrainPool) findOrCreateGrain(id CartId) *RemoteGrain {
grain := p.findRemoteGrain(id)
if grain == nil {
grain = NewRemoteGrain(id, p.Host)
p.mu.Lock()
p.grains[id] = grain
p.mu.Unlock()
grain.Connect()
}
return grain
}