mirror of
https://github.com/slackhq/nebula.git
synced 2025-11-22 08:24:25 +01:00
V2 certificate format (#1216)
Co-authored-by: Nate Brown <nbrown.us@gmail.com> Co-authored-by: Jack Doan <jackdoan@rivian.com> Co-authored-by: brad-defined <77982333+brad-defined@users.noreply.github.com> Co-authored-by: Jack Doan <me@jackdoan.com>
This commit is contained in:
@@ -57,7 +57,6 @@ func execCommand(c *Command, args []string, w StringWriter) error {
|
||||
func dumpCommands(c *radix.Tree, w StringWriter) {
|
||||
err := w.WriteLine("Available commands:")
|
||||
if err != nil {
|
||||
//TODO: log
|
||||
return
|
||||
}
|
||||
|
||||
@@ -67,10 +66,7 @@ func dumpCommands(c *radix.Tree, w StringWriter) {
|
||||
}
|
||||
|
||||
sort.Strings(cmds)
|
||||
err = w.Write(strings.Join(cmds, "\n") + "\n\n")
|
||||
if err != nil {
|
||||
//TODO: log
|
||||
}
|
||||
_ = w.Write(strings.Join(cmds, "\n") + "\n\n")
|
||||
}
|
||||
|
||||
func lookupCommand(c *radix.Tree, sCmd string) (*Command, error) {
|
||||
@@ -119,8 +115,6 @@ func helpCallback(commands *radix.Tree, a []string, w StringWriter) (err error)
|
||||
// We are printing a specific commands help text
|
||||
cmd, err := lookupCommand(commands, a[0])
|
||||
if err != nil {
|
||||
//TODO: handle error
|
||||
//TODO: message the user
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -80,9 +80,7 @@ func NewSSHServer(l *logrus.Entry) (*SSHServer, error) {
|
||||
|
||||
s.config = &ssh.ServerConfig{
|
||||
PublicKeyCallback: cc.Authenticate,
|
||||
//TODO: AuthLogCallback: s.authAttempt,
|
||||
//TODO: version string
|
||||
ServerVersion: fmt.Sprintf("SSH-2.0-Nebula???"),
|
||||
ServerVersion: fmt.Sprintf("SSH-2.0-Nebula???"),
|
||||
}
|
||||
|
||||
s.RegisterCommand(&Command{
|
||||
|
||||
@@ -62,7 +62,6 @@ func (s *session) handleChannels(chans <-chan ssh.NewChannel) {
|
||||
func (s *session) handleRequests(in <-chan *ssh.Request, channel ssh.Channel) {
|
||||
for req := range in {
|
||||
var err error
|
||||
//TODO: maybe support window sizing?
|
||||
switch req.Type {
|
||||
case "shell":
|
||||
if s.term == nil {
|
||||
@@ -89,9 +88,7 @@ func (s *session) handleRequests(in <-chan *ssh.Request, channel ssh.Channel) {
|
||||
req.Reply(true, nil)
|
||||
s.dispatchCommand(payload.Value, &stringWriter{channel})
|
||||
|
||||
//TODO: Fix error handling and report the proper status back
|
||||
status := struct{ Status uint32 }{uint32(0)}
|
||||
//TODO: I think this is how we shut down a shell as well?
|
||||
channel.SendRequest("exit-status", false, ssh.Marshal(status))
|
||||
channel.Close()
|
||||
return
|
||||
@@ -110,7 +107,6 @@ func (s *session) handleRequests(in <-chan *ssh.Request, channel ssh.Channel) {
|
||||
}
|
||||
|
||||
func (s *session) createTerm(channel ssh.Channel) *terminal.Terminal {
|
||||
//TODO: PS1 with nebula cert name
|
||||
term := terminal.NewTerminal(channel, s.c.User()+"@nebula > ")
|
||||
term.AutoCompleteCallback = func(line string, pos int, key rune) (newLine string, newPos int, ok bool) {
|
||||
// key 9 is tab
|
||||
@@ -137,7 +133,6 @@ func (s *session) handleInput(channel ssh.Channel) {
|
||||
for {
|
||||
line, err := s.term.ReadLine()
|
||||
if err != nil {
|
||||
//TODO: log
|
||||
break
|
||||
}
|
||||
|
||||
@@ -148,7 +143,6 @@ func (s *session) handleInput(channel ssh.Channel) {
|
||||
func (s *session) dispatchCommand(line string, w StringWriter) {
|
||||
args, err := shlex.Split(line, true)
|
||||
if err != nil {
|
||||
//todo: LOG IT
|
||||
return
|
||||
}
|
||||
|
||||
@@ -159,13 +153,11 @@ func (s *session) dispatchCommand(line string, w StringWriter) {
|
||||
|
||||
c, err := lookupCommand(s.commands, args[0])
|
||||
if err != nil {
|
||||
//TODO: handle the error
|
||||
return
|
||||
}
|
||||
|
||||
if c == nil {
|
||||
err := w.WriteLine(fmt.Sprintf("did not understand: %s", line))
|
||||
//TODO: log error
|
||||
_ = err
|
||||
|
||||
dumpCommands(s.commands, w)
|
||||
@@ -177,10 +169,7 @@ func (s *session) dispatchCommand(line string, w StringWriter) {
|
||||
return
|
||||
}
|
||||
|
||||
err = execCommand(c, args[1:], w)
|
||||
if err != nil {
|
||||
//TODO: log the error
|
||||
}
|
||||
_ = execCommand(c, args[1:], w)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user