From ce97e4e642cc4d5f277d3cca7bceca910bb3e695 Mon Sep 17 00:00:00 2001
From: ibuler <ibuler@qq.com>
Date: Wed, 24 Apr 2019 22:31:03 +0800
Subject: [PATCH] [Update] commit

---
 pkg/auth/server.go                    |  2 +-
 pkg/cctx/context.go                   |  3 ++-
 pkg/{transport => proxy}/conn.go      |  2 +-
 pkg/{transport => proxy}/sshconn.go   |  2 +-
 pkg/proxy/switch.go                   | 14 +++++++-------
 pkg/{transport => proxy}/transport.go |  2 +-
 pkg/{userhome => proxy}/userhome.go   |  2 +-
 pkg/sshd/server.go                    |  4 +++-
 8 files changed, 17 insertions(+), 14 deletions(-)
 rename pkg/{transport => proxy}/conn.go (89%)
 rename pkg/{transport => proxy}/sshconn.go (99%)
 rename pkg/{transport => proxy}/transport.go (97%)
 rename pkg/{userhome => proxy}/userhome.go (99%)

diff --git a/pkg/auth/server.go b/pkg/auth/server.go
index 2c7b72d..4143587 100644
--- a/pkg/auth/server.go
+++ b/pkg/auth/server.go
@@ -28,7 +28,7 @@ func checkAuth(ctx ssh.Context, password, publicKey string) (ok bool) {
 		ctx.SetValue(cctx.ContextKeyUser, user)
 	}
 	logger.Infof("%s %s for %s from %s", action, authMethod, username, remoteAddr)
-	return false
+	return ok
 }
 
 func CheckUserPassword(ctx ssh.Context, password string) bool {
diff --git a/pkg/cctx/context.go b/pkg/cctx/context.go
index a27114b..397fe92 100644
--- a/pkg/cctx/context.go
+++ b/pkg/cctx/context.go
@@ -31,10 +31,12 @@ type Context interface {
 	SetValue(key, value interface{})
 }
 
+// Context coco内部使用的Context
 type CocoContext struct {
 	context.Context
 }
 
+// User 返回当前连接的用户model
 func (ctx *CocoContext) User() *sdk.User {
 	return ctx.Value(ContextKeyUser).(*sdk.User)
 }
@@ -62,7 +64,6 @@ func (ctx *CocoContext) SetValue(key, value interface{}) {
 func applySessionMetadata(ctx *CocoContext, sess ssh.Session) {
 	ctx.SetValue(ContextKeySSHSession, &sess)
 	ctx.SetValue(ContextKeySSHCtx, sess.Context())
-	//ctx.SetValue(ContextKeyUser, &sdk.User{Username: sess.User()})
 	ctx.SetValue(ContextKeyLocalAddr, sess.LocalAddr())
 }
 
diff --git a/pkg/transport/conn.go b/pkg/proxy/conn.go
similarity index 89%
rename from pkg/transport/conn.go
rename to pkg/proxy/conn.go
index 6eef660..259a924 100644
--- a/pkg/transport/conn.go
+++ b/pkg/proxy/conn.go
@@ -1,4 +1,4 @@
-package transport
+package proxy
 
 import "context"
 
diff --git a/pkg/transport/sshconn.go b/pkg/proxy/sshconn.go
similarity index 99%
rename from pkg/transport/sshconn.go
rename to pkg/proxy/sshconn.go
index d85faac..d769436 100644
--- a/pkg/transport/sshconn.go
+++ b/pkg/proxy/sshconn.go
@@ -1,4 +1,4 @@
-package transport
+package proxy
 
 import (
 	"cocogo/pkg/parser"
diff --git a/pkg/proxy/switch.go b/pkg/proxy/switch.go
index 7db1336..859f9bf 100644
--- a/pkg/proxy/switch.go
+++ b/pkg/proxy/switch.go
@@ -1,15 +1,15 @@
 package proxy
 
 import (
-	"cocogo/pkg/transport"
 	"cocogo/pkg/userhome"
 	"context"
 	"sync"
 
-	"github.com/sirupsen/logrus"
+	"cocogo/pkg/logger"
 )
 
-var log = logrus.New()
+type Switch struct {
+}
 
 var Manager = &manager{
 	container: new(sync.Map),
@@ -63,7 +63,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent
 		select {
 		case buf1, ok := <-userSendRequestStream:
 			if !ok {
-				log.Warn("userSendRequestStream close")
+				logger.Warn("userSendRequestStream close")
 				userSendRequestStream = nil
 				close(nodeRequestChan)
 				continue
@@ -71,7 +71,7 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent
 			nodeRequestChan <- buf1
 		case buf2, ok := <-nodeSendResponseStream:
 			if !ok {
-				log.Warn("nodeSendResponseStream close")
+				logger.Warn("nodeSendResponseStream close")
 				nodeSendResponseStream = nil
 				close(userReceiveStream)
 				cancelFunc()
@@ -79,11 +79,11 @@ func (m *manager) Switch(ctx context.Context, uHome userhome.SessionHome, agent
 			}
 			userReceiveStream <- buf2
 		case <-ctx.Done():
-			log.Info("proxy end by context done")
+			logger.Info("proxy end by context done")
 			cancelFunc()
 			return nil
 		}
 	}
-	log.Info("proxy end")
+	logger.Info("proxy end")
 	return nil
 }
diff --git a/pkg/transport/transport.go b/pkg/proxy/transport.go
similarity index 97%
rename from pkg/transport/transport.go
rename to pkg/proxy/transport.go
index b6a917c..ca3264d 100644
--- a/pkg/transport/transport.go
+++ b/pkg/proxy/transport.go
@@ -1,4 +1,4 @@
-package transport
+package proxy
 
 import (
 	"context"
diff --git a/pkg/userhome/userhome.go b/pkg/proxy/userhome.go
similarity index 99%
rename from pkg/userhome/userhome.go
rename to pkg/proxy/userhome.go
index 9ca0406..6fe5e51 100644
--- a/pkg/userhome/userhome.go
+++ b/pkg/proxy/userhome.go
@@ -1,4 +1,4 @@
-package userhome
+package proxy
 
 import (
 	"context"
diff --git a/pkg/sshd/server.go b/pkg/sshd/server.go
index 4bc6c33..4b4b343 100644
--- a/pkg/sshd/server.go
+++ b/pkg/sshd/server.go
@@ -12,6 +12,8 @@ import (
 	"cocogo/pkg/sshd/handler"
 )
 
+const version = "coco-v1.4"
+
 var (
 	conf = config.Conf
 )
@@ -30,7 +32,7 @@ func StartServer() {
 		PublicKeyHandler:           auth.CheckUserPublicKey,
 		KeyboardInteractiveHandler: auth.CheckMFA,
 		HostSigners:                []ssh.Signer{signer},
-		Version:                    "coco-v1.4",
+		Version:                    version,
 		Handler:                    handler.SessionHandler,
 	}
 	logger.Fatal(srv.ListenAndServe())
-- 
2.18.0