summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-08-22 10:07:00 +0300
committerPaul Buetow <paul@buetow.org>2021-08-22 10:07:00 +0300
commit9883a190109623b64e6d311dc2b462a6eae68003 (patch)
treeda319d37bf681687beb2c38e6292b30f5e04a261
parentc2522ffb59514443816a96386c16bb7527cbe57c (diff)
introduces the protocol package
-rw-r--r--cmd/dserver/main.go4
-rw-r--r--cmd/dtail/main.go2
-rw-r--r--docker/Makefile2
-rw-r--r--internal/clients/handlers/basehandler.go3
-rw-r--r--internal/clients/handlers/healthhandler.go3
-rw-r--r--internal/clients/handlers/maprhandler.go2
-rw-r--r--internal/clients/maprclient.go3
-rw-r--r--internal/server/handlers/controlhandler.go3
-rw-r--r--internal/server/handlers/serverhandler.go6
-rw-r--r--internal/ssh/ssh.go3
10 files changed, 21 insertions, 10 deletions
diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go
index 89f9dca..1fe77a7 100644
--- a/cmd/dserver/main.go
+++ b/cmd/dserver/main.go
@@ -73,6 +73,10 @@ func main() {
}
}()
+ if debugEnable {
+ config.Common.DebugEnable = true
+ }
+
logger.Start(ctx, logger.Modes{Server: true, Debug: debugEnable || config.Common.DebugEnable})
if config.ServerRelaxedAuthEnable {
diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go
index c78e11a..6687538 100644
--- a/cmd/dtail/main.go
+++ b/cmd/dtail/main.go
@@ -101,8 +101,8 @@ func main() {
if pprof > -1 {
// For debugging purposes only
pprofArgs := fmt.Sprintf("0.0.0.0:%d", pprof)
- logger.Info("Starting PProf", pprofArgs)
go http.ListenAndServe(pprofArgs, nil)
+ logger.Info("Started PProf", pprofArgs)
}
var client clients.Client
diff --git a/docker/Makefile b/docker/Makefile
index eef32d7..5013c28 100644
--- a/docker/Makefile
+++ b/docker/Makefile
@@ -8,6 +8,8 @@ spinup:
./spinup.sh 10
spindown:
./spindown.sh 10
+dtail:
+ ../dtail --servers serverlist.txt --files '/var/log/dserver/*' --trustAllHosts
dcat:
../dcat --servers serverlist.txt --files '/etc/passwd' --trustAllHosts
spinup1:
diff --git a/internal/clients/handlers/basehandler.go b/internal/clients/handlers/basehandler.go
index acafe0e..fe83faa 100644
--- a/internal/clients/handlers/basehandler.go
+++ b/internal/clients/handlers/basehandler.go
@@ -56,13 +56,14 @@ func (h *baseHandler) SendMessage(command string) error {
// Read data from the dtail server via Writer interface.
func (h *baseHandler) Write(p []byte) (n int, err error) {
for _, b := range p {
- h.receiveBuf = append(h.receiveBuf, b)
if b == protocol.MessageDelimiter {
if len(h.receiveBuf) == 0 {
continue
}
message := string(h.receiveBuf)
h.handleMessageType(message)
+ } else {
+ h.receiveBuf = append(h.receiveBuf, b)
}
}
diff --git a/internal/clients/handlers/healthhandler.go b/internal/clients/handlers/healthhandler.go
index 0440706..213748c 100644
--- a/internal/clients/handlers/healthhandler.go
+++ b/internal/clients/handlers/healthhandler.go
@@ -6,6 +6,7 @@ import (
"time"
"github.com/mimecast/dtail/internal"
+ "github.com/mimecast/dtail/internal/protocol"
)
// HealthHandler implements the handler required for health checks.
@@ -72,7 +73,7 @@ func (h *HealthHandler) SendMessage(command string) error {
func (h *HealthHandler) Write(p []byte) (n int, err error) {
for _, b := range p {
h.receiveBuf = append(h.receiveBuf, b)
- if b == '\n' {
+ if b == protocol.MessageDelimiter { // '\n' {
h.receive <- string(h.receiveBuf)
h.receiveBuf = h.receiveBuf[:0]
}
diff --git a/internal/clients/handlers/maprhandler.go b/internal/clients/handlers/maprhandler.go
index 7ac5895..afad507 100644
--- a/internal/clients/handlers/maprhandler.go
+++ b/internal/clients/handlers/maprhandler.go
@@ -37,7 +37,7 @@ func NewMaprHandler(server string, query *mapr.Query, globalGroup *mapr.GlobalGr
func (h *MaprHandler) Write(p []byte) (n int, err error) {
for _, b := range p {
h.baseHandler.receiveBuf = append(h.baseHandler.receiveBuf, b)
- if b == '\n' {
+ if b == protocol.MessageDelimiter { // '\n' {
if len(h.baseHandler.receiveBuf) == 0 {
continue
}
diff --git a/internal/clients/maprclient.go b/internal/clients/maprclient.go
index 1c0c2cc..77b674b 100644
--- a/internal/clients/maprclient.go
+++ b/internal/clients/maprclient.go
@@ -170,7 +170,8 @@ func (c *MaprClient) printResults() {
return
}
- logger.Raw(fmt.Sprintf("%s\n", c.query.RawQuery))
+ //logger.Raw(fmt.Sprintf("%s\n", c.query.RawQuery))
+ logger.Raw(c.query.RawQuery)
logger.Raw(result)
}
diff --git a/internal/server/handlers/controlhandler.go b/internal/server/handlers/controlhandler.go
index 1e17c78..a217b40 100644
--- a/internal/server/handlers/controlhandler.go
+++ b/internal/server/handlers/controlhandler.go
@@ -8,6 +8,7 @@ import (
"github.com/mimecast/dtail/internal"
"github.com/mimecast/dtail/internal/io/logger"
+ "github.com/mimecast/dtail/internal/protocol"
user "github.com/mimecast/dtail/internal/user/server"
)
@@ -56,7 +57,7 @@ func (h *ControlHandler) Read(p []byte) (n int, err error) {
for {
select {
case message := <-h.serverMessages:
- wholePayload := []byte(fmt.Sprintf("SERVER|%s|%s\n", h.hostname, message))
+ wholePayload := []byte(fmt.Sprintf("SERVER|%s|%s%b", h.hostname, message, protocol.MessageDelimiter))
n = copy(p, wholePayload)
return
case <-h.done.Done():
diff --git a/internal/server/handlers/serverhandler.go b/internal/server/handlers/serverhandler.go
index 23e3aeb..9541a34 100644
--- a/internal/server/handlers/serverhandler.go
+++ b/internal/server/handlers/serverhandler.go
@@ -92,13 +92,13 @@ func (h *ServerHandler) Read(p []byte) (n int, err error) {
}
if message[0] == '.' {
// Handle hidden message (don't display to the user, interpreted by dtail client)
- wholePayload := []byte(fmt.Sprintf("%s%b", message, protocol.MessageDelimiter))
+ wholePayload := []byte(fmt.Sprintf("%s%s", message, string(protocol.MessageDelimiter)))
n = copy(p, wholePayload)
return
}
// Handle normal server message (display to the user)
- wholePayload := []byte(fmt.Sprintf("SERVER|%s|%s%b", h.hostname, message, protocol.MessageDelimiter))
+ wholePayload := []byte(fmt.Sprintf("SERVER|%s|%s%s", h.hostname, message, string(protocol.MessageDelimiter)))
n = copy(p, wholePayload)
return
@@ -112,7 +112,7 @@ func (h *ServerHandler) Read(p []byte) (n int, err error) {
return
case line := <-h.lines:
- //fmt.Printf("<<<%d,%s>>>\n", len(line.Content), line.Content)
+ //fmt.Printf("\t<<<%d,%s>>>\n", len(line.Content), line.Content)
// Send normal file content data as a message.
serverInfo := []byte(fmt.Sprintf("REMOTE|%s|%3d|%v|%s|",
h.hostname, line.TransmittedPerc, line.Count, line.SourceID))
diff --git a/internal/ssh/ssh.go b/internal/ssh/ssh.go
index 3a2e416..78bf99e 100644
--- a/internal/ssh/ssh.go
+++ b/internal/ssh/ssh.go
@@ -6,12 +6,13 @@ import (
"crypto/x509"
"encoding/pem"
"fmt"
- "github.com/mimecast/dtail/internal/io/logger"
"io/ioutil"
"net"
"os"
"syscall"
+ "github.com/mimecast/dtail/internal/io/logger"
+
gossh "golang.org/x/crypto/ssh"
"golang.org/x/crypto/ssh/agent"
"golang.org/x/crypto/ssh/terminal"