According to RFC 4252 section 5.4, the banner is sent between the ssh-connection request and responding to user authentication. Original support for server sending banner by joshua stein <jcs@jcs.org> Fixes golang/go#19567 Change-Id: I729b3c8e5fd2c0068609d1590b61e92f40d87ea4 Reviewed-on: https://go-review.googlesource.com/71790 Run-TryBot: Han-Wen Nienhuys <hanwen@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Han-Wen Nienhuys <hanwen@google.com>
34 lines
696 B
Go
34 lines
696 B
Go
// Copyright 2014 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build darwin dragonfly freebsd linux netbsd openbsd
|
|
|
|
package test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
)
|
|
|
|
func TestBannerCallbackAgainstOpenSSH(t *testing.T) {
|
|
server := newServer(t)
|
|
defer server.Shutdown()
|
|
|
|
clientConf := clientConfig()
|
|
|
|
var receivedBanner string
|
|
clientConf.BannerCallback = func(message string) error {
|
|
receivedBanner = message
|
|
return nil
|
|
}
|
|
|
|
conn := server.Dial(clientConf)
|
|
defer conn.Close()
|
|
|
|
expected := "Server Banner"
|
|
if receivedBanner != expected {
|
|
t.Fatalf("got %v; want %v", receivedBanner, expected)
|
|
}
|
|
}
|