diff options
| -rw-r--r-- | cmd/server.go | 4 | ||||
| -rw-r--r-- | main.go | 2 | ||||
| -rw-r--r-- | pkg/server/unix.go | 13 |
3 files changed, 12 insertions, 7 deletions
diff --git a/cmd/server.go b/cmd/server.go index 45fe197..9de8dbc 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -28,14 +28,14 @@ func SetupServerFlags(args []string, fs *flag.FlagSet, flags *ServerFlags) { fs.Parse(args) } -func RunServer(sFlags ServerFlags, db *data.Query) byte { +func RunServer(gFlags GlobalFlags, sFlags ServerFlags, db *data.Query) byte { var addr string var s server.Server if after, ok := strings.CutPrefix(sFlags.Address, "unix:"); ok { slog.Debug("Preparing unix domain socket") addr = after - s = &server.UnixServer{Addr: addr, Db: db} + s = &server.UnixServer{Addr: addr, Db: db, WorkersPerConn: gFlags.NumWorkers} } else { slog.Debug("Preparing http server") addr = fmt.Sprintf("%s:%d", sFlags.Address, sFlags.Port) @@ -137,7 +137,7 @@ func main() { case "index", "i": exitCode = int(cmd.RunIndex(globalFlags, indexFlags, querier)) case "server": - exitCode = int(cmd.RunServer(serverFlags, querier)) + exitCode = int(cmd.RunServer(globalFlags, serverFlags, querier)) case "completions": lang := completionsFs.Arg(0) switch lang { diff --git a/pkg/server/unix.go b/pkg/server/unix.go index 9d8c266..e9c4b20 100644 --- a/pkg/server/unix.go +++ b/pkg/server/unix.go @@ -73,7 +73,7 @@ func (s *UnixServer) writeError(conn *net.UnixConn, msg string) { conn.Write([]byte{END_MSG}) } -func (s *UnixServer) writeResults(conn *net.UnixConn, docs map[string]*index.Document) { +func (s *UnixServer) writeResults(conn *net.UnixConn, docs map[string]*index.Document) error { defer conn.Write([]byte{END_MSG}) conn.Write(fmt.Appendf([]byte{START_HEADER}, "Num Docs: %d", len(docs))) conn.Write([]byte{START_BODY}) @@ -85,9 +85,11 @@ func (s *UnixServer) writeResults(conn *net.UnixConn, docs map[string]*index.Doc slog.Error("Failed to write doc", slog.String("err", err.Error()), ) - break + return err } } + + return nil } func (s *UnixServer) handleConn(conn *net.UnixConn, id uint64) { @@ -100,7 +102,7 @@ func (s *UnixServer) handleConn(conn *net.UnixConn, id uint64) { buf := s.bufPool.Get().([]byte) defer s.bufPool.Put(buf) defer slog.Info("Closing connection", - slog.String("local", conn.LocalAddr().String()), + slog.Uint64("connId", id), ) for { @@ -143,7 +145,10 @@ func (s *UnixServer) handleConn(conn *net.UnixConn, id uint64) { cancel() slog.Debug("Sending results") - s.writeResults(conn, docs) + if err := s.writeResults(conn, docs); err != nil { + break + } + slog.Info("Processed query", slog.Uint64("connId", id)) } } |
