tomaswolf commented on a change in pull request #214:
URL: https://github.com/apache/mina-sshd/pull/214#discussion_r840247098
##########
File path:
sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
##########
@@ -908,7 +908,7 @@ protected void closeShell(int exitValue, boolean
closeImmediately) throws IOExce
if (!isClosing()) {
if (out != null) {
- out.flush();
Review comment:
`out.close()` works because this is indeed the last use of this stream.
Looks fine to me...
Unrelated to this change:
But the code is a bit strange anyway. The intent is obviously to get all
data from the command sent before the EOF is sent. But why not also flush or
close `err`? What happens if the command writes something to the error stream?
`err` gets closed only in the `close()` call in line 916, so that would flush
it after the EOF (and the exit status) was sent. That's probably not OK.
And anyway: stderr is traditionally "unbuffered", i.e., flushed on newlines.
I don't see anything in ChannelOutputStream that would implement that for
SSH_MSG_CHANNEL_EXTENDED_DATA. Maybe that's OK; the command would be
responsible for flushing it frequently then if desired.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]