(conn net.Conn, engine *engine.DbEngine)
| 85 | } |
| 86 | |
| 87 | func 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 | } |
no test coverage detected