MCPcopy Index your code
hub / github.com/LissaGreense/GO4SQL / handleSocketClient

Function handleSocketClient

modes/handler.go:87–122  ·  view source on GitHub ↗
(conn net.Conn, engine *engine.DbEngine)

Source from the content-addressed store, hash-verified

85}
86
87func handleSocketClient(conn net.Conn, engine *engine.DbEngine) {
88 defer func(conn net.Conn) {
89 err := conn.Close()
90 if err != nil {
91 log.Fatal("Error:", err)
92 }
93 }(conn)
94
95 buffer := make([]byte, 2048)
96
97 for {
98 n, err := conn.Read(buffer)
99 if err != nil && err.Error() != "EOF" {
100 log.Fatal(err.Error())
101 }
102 sequences, err := bytesToSequences(buffer)
103
104 if err != nil {
105 log.Fatal(err.Error())
106 }
107
108 commandResult, err := engine.Evaluate(sequences)
109
110 if err != nil {
111 _, err = conn.Write([]byte(err.Error()))
112 } else if len(commandResult) > 0 {
113 _, err = conn.Write([]byte(commandResult))
114 }
115
116 if err != nil {
117 log.Fatal(err.Error())
118 }
119
120 log.Printf("Received: %s\n", buffer[:n])
121 }
122}

Callers 1

HandleSocketModeFunction · 0.85

Calls 3

bytesToSequencesFunction · 0.85
EvaluateMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected