Commit 7487a937 authored by Eric's avatar Eric

[update] fix bugs

parent ac7356eb
......@@ -17,7 +17,7 @@ windows:
@echo "编译windows"
mkdir -p $(BASEPATH)/../build
GOOS=windows GOARCH=amd64 go build -o $(BASEPATH)/$(SOFTWARENAME)-windows-amd64 $(COCOSRCFILE)
tar czvf $(BASEPATH)/../build/$(SOFTWARENAME)-windows-amd64.tar.gz $(BASEPATH)/build/$(SOFTWARENAME)-windows-amd64 $(BASEPATH)/cmd/locale $(BASEPATH)/cmd/config_example.yml
tar czvf $(BASEPATH)/../build/$(SOFTWARENAME)-windows-amd64.tar.gz $(SOFTWARENAME)-windows-amd64 locale/ config_example.yml
.PHONY: linux
linux:
......@@ -30,8 +30,8 @@ linux:
darwin:
@echo "编译darwin"
mkdir -p $(BASEPATH)/../build
GOOS=darwin GOARCH=amd64 go build -o $(BASEPATH)/build/$(SOFTWARENAME)-darwin-amd64 $(COCOSRCFILE)
tar czvf $(BASEPATH)/../build/$(SOFTWARENAME)-darwin-amd64.tar.gz $(SOFTWARENAME)-darwin-amd64 locale/ $(BASEPATH)/cmd/config_example.yml
GOOS=darwin GOARCH=amd64 go build -o $(BASEPATH)/$(SOFTWARENAME)-darwin-amd64 $(COCOSRCFILE)
tar czvf $(BASEPATH)/../build/$(SOFTWARENAME)-darwin-amd64.tar.gz $(SOFTWARENAME)-darwin-amd64 locale/ config_example.yml
.PHONY: clean
clean:
......
......@@ -82,6 +82,8 @@ func (p *Parser) initial() {
func (p *Parser) Parse() {
defer func() {
close(p.userOutputChan)
close(p.srvOutputChan)
logger.Debug("Parser parse routine done")
}()
for {
......@@ -256,8 +258,6 @@ func (p *Parser) Close() {
}
close(p.userInputChan)
close(p.userOutputChan)
close(p.srvInputChan)
close(p.srvOutputChan)
close(p.cmdRecordChan)
}
......@@ -106,11 +106,11 @@ func (s *SwitchSession) generateCommandResult(command [2]string) *model.Command
func (s *SwitchSession) postBridge() {
s.DateEnd = time.Now().UTC().Format("2006-01-02 15:04:05 +0000")
s.finished = true
_ = s.userTran.Close()
_ = s.srvTran.Close()
s.parser.Close()
s.replayRecorder.End()
s.cmdRecorder.End()
_ = s.userTran.Close()
_ = s.srvTran.Close()
}
func (s *SwitchSession) SetFilterRules(cmdRules []model.SystemUserFilterRule) {
......@@ -154,14 +154,14 @@ func (s *SwitchSession) Bridge(userConn UserConnection, srvConn ServerConnection
}
s.parser.srvInputChan <- p
// Server流入parser数据,经处理发给用户
case p := <-s.parser.srvOutputChan:
nw, err := s.userTran.Write(p)
case p, ok := <-s.parser.srvOutputChan:
if !ok {
return
}
nw, _ := s.userTran.Write(p)
if !s.parser.IsRecvState() {
s.replayRecorder.Record(p[:nw])
}
if err != nil {
return err
}
// User发来的数据流流入parser
case p, ok := <-s.userTran.Chan():
if !ok {
......@@ -169,11 +169,11 @@ func (s *SwitchSession) Bridge(userConn UserConnection, srvConn ServerConnection
}
s.parser.userInputChan <- p
// User发来的数据经parser处理,发给Server
case p := <-s.parser.userOutputChan:
_, err = s.srvTran.Write(p)
if err != nil {
return err
case p, ok := <-s.parser.userOutputChan:
if !ok {
return
}
_, err = s.srvTran.Write(p)
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment