From bab095d70142d93b3f65de094c27131059c91fdc Mon Sep 17 00:00:00 2001 From: sawka Date: Wed, 12 Apr 2023 21:45:45 -0700 Subject: [PATCH] add buildtime to initpacket --- main-mshell.go | 5 +++-- pkg/base/base.go | 5 +++++ pkg/packet/packet.go | 1 + pkg/shexec/shexec.go | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/main-mshell.go b/main-mshell.go index b9a5e86f..bcad09c0 100644 --- a/main-mshell.go +++ b/main-mshell.go @@ -22,7 +22,7 @@ import ( "golang.org/x/sys/unix" ) -var BuildTime = "-" +var BuildTime = "0" // func doMainRun(pk *packet.RunPacketType, sender *packet.PacketSender) { // err := shexec.ValidateRunPacket(pk) @@ -533,6 +533,7 @@ Examples: } func main() { + base.SetBuildTime(BuildTime) if len(os.Args) == 1 { handleUsage() return @@ -542,7 +543,7 @@ func main() { handleUsage() return } else if firstArg == "--version" { - fmt.Printf("mshell %s\n", base.MShellVersion) + fmt.Printf("mshell %s+%s\n", base.MShellVersion, base.BuildTime) return } else if firstArg == "--test-env" { state, err := shexec.GetShellState() diff --git a/pkg/base/base.go b/pkg/base/base.go index 6d9b82aa..bff94cf2 100644 --- a/pkg/base/base.go +++ b/pkg/base/base.go @@ -41,6 +41,7 @@ var sessionDirCache = make(map[string]string) var baseLock = &sync.Mutex{} var DebugLogEnabled = false var DebugLogger *log.Logger +var BuildTime string = "0" type CommandFileNames struct { PtyOutFile string @@ -50,6 +51,10 @@ type CommandFileNames struct { type CommandKey string +func SetBuildTime(build string) { + BuildTime = build +} + func MakeCommandKey(sessionId string, cmdId string) CommandKey { if sessionId == "" && cmdId == "" { return CommandKey("") diff --git a/pkg/packet/packet.go b/pkg/packet/packet.go index 6e6f104b..abf05a51 100644 --- a/pkg/packet/packet.go +++ b/pkg/packet/packet.go @@ -461,6 +461,7 @@ type InitPacketType struct { Type string `json:"type"` RespId string `json:"respid,omitempty"` Version string `json:"version"` + BuildTime string `json:"buildtime,omitempty"` MShellHomeDir string `json:"mshellhomedir,omitempty"` HomeDir string `json:"homedir,omitempty"` State *ShellState `json:"state,omitempty"` diff --git a/pkg/shexec/shexec.go b/pkg/shexec/shexec.go index 3f1f7ee0..8019e4e7 100644 --- a/pkg/shexec/shexec.go +++ b/pkg/shexec/shexec.go @@ -1405,6 +1405,7 @@ func (c *ShExecType) WaitForCommand() *packet.CmdDonePacketType { func MakeInitPacket() *packet.InitPacketType { initPacket := packet.MakeInitPacket() initPacket.Version = base.MShellVersion + initPacket.BuildTime = base.BuildTime initPacket.HomeDir = base.GetHomeDir() initPacket.MShellHomeDir = base.GetMShellHomeDir() if user, _ := user.Current(); user != nil {