Skip to content

Commit 8d26b46

Browse files
authored
Fix send on closed channel bug in command stream function (#66)
1 parent ce04db7 commit 8d26b46

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

easyssh.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,6 @@ func (ssh_conf *MakeConfig) Stream(command string, timeout ...time.Duration) (<-
295295
stderrScanner := bufio.NewScanner(stderrReader)
296296

297297
go func(stdoutScanner, stderrScanner *bufio.Scanner, stdoutChan, stderrChan chan string, doneChan chan bool, errChan chan error) {
298-
defer close(stdoutChan)
299-
defer close(stderrChan)
300298
defer close(doneChan)
301299
defer close(errChan)
302300
defer client.Close()
@@ -313,13 +311,15 @@ func (ssh_conf *MakeConfig) Stream(command string, timeout ...time.Duration) (<-
313311
resWg.Add(2)
314312

315313
go func() {
314+
defer close(stdoutChan)
316315
for stdoutScanner.Scan() {
317316
stdoutChan <- stdoutScanner.Text()
318317
}
319318
resWg.Done()
320319
}()
321320

322321
go func() {
322+
defer close(stderrChan)
323323
for stderrScanner.Scan() {
324324
stderrChan <- stderrScanner.Text()
325325
}

0 commit comments

Comments
 (0)