summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/clients/handlers/basehandler.go12
-rw-r--r--internal/server/handlers/readcommand.go2
2 files changed, 7 insertions, 7 deletions
diff --git a/internal/clients/handlers/basehandler.go b/internal/clients/handlers/basehandler.go
index d1f0bb5..1a500dc 100644
--- a/internal/clients/handlers/basehandler.go
+++ b/internal/clients/handlers/basehandler.go
@@ -61,10 +61,8 @@ func (h *baseHandler) Write(p []byte) (n int, err error) {
for _, b := range p {
switch b {
case '\n':
- // Backwards compatible with DTail 3 (e.g. get error message from server
- // about protocol missmatch.
+ // Just add the newline to the buffer, don't treat as message delimiter
h.receiveBuf.WriteByte(b)
- fallthrough
case protocol.MessageDelimiter:
message := h.receiveBuf.String()
h.handleMessage(message)
@@ -93,11 +91,11 @@ func (h *baseHandler) handleMessage(message string) {
return
}
- // Only add newline if message doesn't already end with one
- if len(message) > 0 && message[len(message)-1] != '\n' {
- dlog.Client.Raw(message + "\n")
- } else {
+ // Add newline only if the message doesn't already end with one
+ if len(message) > 0 && message[len(message)-1] == '\n' {
dlog.Client.Raw(message)
+ } else {
+ dlog.Client.Raw(message + "\n")
}
}
diff --git a/internal/server/handlers/readcommand.go b/internal/server/handlers/readcommand.go
index abdbe9c..23c3175 100644
--- a/internal/server/handlers/readcommand.go
+++ b/internal/server/handlers/readcommand.go
@@ -53,6 +53,7 @@ func (r *readCommand) Start(ctx context.Context, ltx lcontext.LContext,
// e.g.: grep foo bar.log | dmap 'from STATS select ...'
// Only read from pipe if no file argument is provided
isPipe := r.isInputFromPipe() && (argc < 2 || args[1] == "" || args[1] == "-")
+
if isPipe {
dlog.Server.Debug("Reading data from stdin pipe")
// Empty file path and globID "-" represents reading from the stdin pipe.
@@ -212,6 +213,7 @@ func (r *readCommand) readWithProcessor(ctx context.Context, ltx lcontext.LConte
path, globID string, re regex.Regex, reader fs.FileReader) {
dlog.Server.Info(r.server.user, "Using channel-less grep implementation", path, globID)
+
// Use the existing lines channel but with the processor-based reader
lines := r.server.lines