fix(server): change connection method from one-time to full-time
This commit is contained in:
@@ -3,8 +3,10 @@ package socket
|
|||||||
import (
|
import (
|
||||||
"Watchdog_Linux-systemd/command"
|
"Watchdog_Linux-systemd/command"
|
||||||
"Watchdog_Linux-systemd/postLog"
|
"Watchdog_Linux-systemd/postLog"
|
||||||
|
"bufio"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BootSocket(networkType, listenAddr string, listenPort int) error {
|
func BootSocket(networkType, listenAddr string, listenPort int) error {
|
||||||
@@ -27,29 +29,33 @@ func BootSocket(networkType, listenAddr string, listenPort int) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handleRequest(conn net.Conn) {
|
func handleRequest(conn net.Conn) {
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
buffer := make([]byte, 1024)
|
reader := bufio.NewReader(conn)
|
||||||
n, err := conn.Read(buffer)
|
|
||||||
if err != nil {
|
|
||||||
postLog.Error(fmt.Sprintf("Failed to read: %v, err: %v", conn, err))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
recvMsg := string(buffer[:n])
|
for {
|
||||||
postLog.Debug(fmt.Sprintf("Received: %v", recvMsg))
|
data, err := reader.ReadBytes('\n')
|
||||||
responseMsg := ""
|
if err != nil {
|
||||||
if recvMsg == "watchdogAgentConnectionTest" {
|
return
|
||||||
responseMsg = "success"
|
}
|
||||||
} else {
|
|
||||||
err := command.ExecuteCommand(recvMsg)
|
recvMsg := strings.TrimSpace(string(data))
|
||||||
if err != nil {
|
|
||||||
responseMsg = fmt.Sprintf("error: %v", err)
|
responseMsg := ""
|
||||||
} else {
|
if len(recvMsg) != 0 {
|
||||||
responseMsg = "success"
|
postLog.Debug(fmt.Sprintf("Received message: %s", recvMsg))
|
||||||
|
if recvMsg == "watchdogAgentConnectionTest" {
|
||||||
|
responseMsg = "success"
|
||||||
|
} else {
|
||||||
|
err := command.ExecuteCommand(recvMsg)
|
||||||
|
if err != nil {
|
||||||
|
responseMsg = fmt.Sprintf("error: %v", err)
|
||||||
|
} else {
|
||||||
|
responseMsg = "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if _, err := conn.Write([]byte(responseMsg + "\n")); err != nil {
|
conn.Write([]byte(responseMsg + "\n"))
|
||||||
postLog.Error(fmt.Sprintf("Failed to write: %v, err: %v", conn, err))
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user