From 19628194a1fb966b8805ae1d91f2fbc02306a722 Mon Sep 17 00:00:00 2001 From: Boris Glimcher Date: Sat, 14 Oct 2023 21:36:54 +0300 Subject: [PATCH] feat(frr): enable privileged mode this is needed to send configuration Signed-off-by: Boris Glimcher --- pkg/utils/telnet.go | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/pkg/utils/telnet.go b/pkg/utils/telnet.go index 109d7f06..3e12735f 100644 --- a/pkg/utils/telnet.go +++ b/pkg/utils/telnet.go @@ -53,19 +53,36 @@ func TelnetDialAndCommunicate(ctx context.Context, command string) (string, erro if err != nil { return "", err } - - // command err = conn.SkipUntil(">") if err != nil { return "", err } - _, err = conn.Write([]byte(command + "\n")) + + // privileged + _, err = conn.Write([]byte("enable\n")) + if err != nil { + return "", err + } + err = conn.SkipUntil("Password: ") + if err != nil { + return "", err + } + _, err = conn.Write([]byte(password + "\n")) + if err != nil { + return "", err + } + err = conn.SkipUntil("#") if err != nil { return "", err } + // command + _, err = conn.Write([]byte(command + "\n")) + if err != nil { + return "", err + } // response - data, err := conn.ReadBytes('>') + data, err := conn.ReadBytes('#') if err != nil { return "", err }