1
0
Fork 0
mirror of https://github.com/eosswedenorg/eth-healthcheck synced 2026-06-16 05:04:55 +02:00

replace local tcp_server with github.com/eosswedenorg-go/tcp_server

This commit is contained in:
Henrik Hautakoski 2022-01-03 15:40:20 +01:00
parent ed14f96813
commit b8216817f7
7 changed files with 4 additions and 126 deletions

4
go.mod
View file

@ -4,6 +4,7 @@ go 1.14
require (
github.com/eosswedenorg-go/haproxy v0.0.0-20220101140534-fccfdd93a8cd
github.com/eosswedenorg-go/tcp_server v0.1.0
github.com/go-stack/stack v1.8.0 // indirect
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac
github.com/jarcoal/httpmock v1.1.0 // indirect
@ -13,7 +14,4 @@ require (
github.com/pborman/getopt/v2 v2.1.0
github.com/stretchr/testify v1.7.0 // indirect
github.com/tidwall/gjson v1.12.1 // indirect
internal/tcp_server v1.0.0
)
replace internal/tcp_server => ./src/tcp_server

2
go.sum
View file

@ -2,6 +2,8 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/eosswedenorg-go/haproxy v0.0.0-20220101140534-fccfdd93a8cd h1:e59v3HnnG60uE50OtziOxyiSNDADr1lDbzn33btn3yE=
github.com/eosswedenorg-go/haproxy v0.0.0-20220101140534-fccfdd93a8cd/go.mod h1:l5DTEb0dcTZyATo2cuaYQPqwBRuzDw0UgupNo8SAgXo=
github.com/eosswedenorg-go/tcp_server v0.1.0 h1:nbXJK4sPSGn3zGPGWR2vdmj+s/Ywp58k7dZ9fuYNZlI=
github.com/eosswedenorg-go/tcp_server v0.1.0/go.mod h1:PZd1z/KzNlEpmKtW0Zu9dHJLs5PAMTNR3jPbMGWhZIw=
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac h1:n1DqxAo4oWPMvH1+v+DLYlMCecgumhhgnxAPdqDIFHI=

View file

@ -8,7 +8,7 @@ import (
"github.com/pborman/getopt/v2"
"github.com/onrik/ethrpc"
"github.com/eosswedenorg-go/haproxy"
"internal/tcp_server"
"github.com/eosswedenorg-go/tcp_server"
)
var logger log.Logger

View file

@ -1,44 +0,0 @@
package tcp_server
import (
"bufio"
"net"
)
// Read client messages.
func (c *Client) read() {
reader := bufio.NewReader(c.conn)
for {
message, err := reader.ReadString('\n')
if err != nil {
c.conn.Close()
c.Server.onDisconnect(c, err)
return
}
c.Server.onMessage(c, message)
}
}
// Write string to client.
func (c *Client) WriteString(message string) error {
return c.Write([]byte(message))
}
// Write bytes to client
func (c *Client) Write(b []byte) error {
_, err := c.conn.Write(b)
if err != nil {
c.conn.Close()
c.Server.onDisconnect(c, err)
}
return err
}
func (c *Client) Conn() net.Conn {
return c.conn
}
func (c *Client) Close() error {
return c.conn.Close()
}

View file

@ -1,3 +0,0 @@
module internal/tcp_server
go 1.14

View file

@ -1,56 +0,0 @@
package tcp_server
import (
"net"
)
func New(address string) *server {
server := &server{
address: address,
}
server.OnConnect(func(c *Client) {})
server.OnMessage(func(c *Client, message string) {})
server.OnDisconnect(func(c *Client, err error) {})
return server
}
// Called when a client connects
func (s *server) OnConnect(callback func(c *Client)) {
s.onConnect = callback
}
// Called the server gets a message from a client.
func (s *server) OnMessage(callback func(c *Client, message string)) {
s.onMessage = callback
}
// Called when a connection is closed.
func (s *server) OnDisconnect(callback func(c *Client, err error)) {
s.onDisconnect = callback
}
func (s *server) Listen() error {
sock, err := net.Listen("tcp", s.address)
if err != nil {
return err
}
defer sock.Close()
for {
conn, _ := sock.Accept()
c := &Client{
conn: conn,
Server: s,
Addr: conn.RemoteAddr(),
}
s.onConnect(c)
go c.read()
}
return nil
}

View file

@ -1,19 +0,0 @@
package tcp_server
import (
"net"
)
type Client struct {
conn net.Conn
Addr net.Addr
Server *server
}
type server struct {
address string
onConnect func(c *Client)
onDisconnect func(c *Client, err error)
onMessage func(c *Client, message string)
}