1
0
Fork 0
mirror of https://github.com/postmannen/ctrl.git synced 2025-03-05 14:56:49 +00:00

moved socket listener to server

This commit is contained in:
postmannen 2021-03-30 10:37:16 +02:00
parent a6c49e24ca
commit 26b606d3cf
2 changed files with 17 additions and 13 deletions

View file

@ -5,28 +5,16 @@ import (
"encoding/json"
"fmt"
"log"
"net"
"os"
)
// readSocket will read the .sock file specified.
// It will take a channel of []byte as input, and it is in this
// channel the content of a file that has changed is returned.
func (s *server) readSocket(toRingbufferCh chan []subjectAndMessage) {
err := os.Remove("steward.sock")
if err != nil {
log.Printf("error: could not delete sock file: %v\n", err)
}
l, err := net.Listen("unix", "steward.sock")
if err != nil {
log.Printf("error: failed to open socket: %v\n", err)
os.Exit(1)
}
// Loop, and wait for new connections.
for {
conn, err := l.Accept()
conn, err := s.netListener.Accept()
if err != nil {
er := fmt.Errorf("error: failed to accept conn on socket: %v", err)
sendErrorLogMessage(toRingbufferCh, node(s.nodeName), er)

View file

@ -4,6 +4,7 @@ package steward
import (
"fmt"
"log"
"net"
"os"
"sync"
"time"
@ -46,6 +47,8 @@ type server struct {
configuration *Configuration
// The nats connection to the broker
natsConn *nats.Conn
// net listener for communicating via the socket
netListener net.Listener
// processes holds all the information about running processes
processes *processes
// The name of the node
@ -66,10 +69,23 @@ func NewServer(c *Configuration) (*server, error) {
log.Printf("error: nats.Connect failed: %v\n", err)
}
// Prepare the connection to the socket file
err = os.Remove("steward.sock")
if err != nil {
log.Printf("error: could not delete sock file: %v\n", err)
}
nl, err := net.Listen("unix", "steward.sock")
if err != nil {
log.Printf("error: failed to open socket: %v\n", err)
os.Exit(1)
}
s := &server{
configuration: c,
nodeName: c.NodeName,
natsConn: conn,
netListener: nl,
processes: newProcesses(),
toRingbufferCh: make(chan []subjectAndMessage),
metrics: newMetrics(c.PromHostAndPort),