Age | Commit message (Collapse) | Author |
|
|
|
|
|
Including misc fixes in surronding code as well as in test cases.
|
|
This commit does not change any behaviour, since the spelling was internally
consistent.
|
|
It actually counts the number of subsystem alive. Allocating a channel does not consume any resources
(except some cpu cycles), but the subsystem start spawns processes.
|
|
|
|
Option height was misspelled in the code. Fix code but recognize
the mispellt option for backwards compatible reasons.
|
|
Conflicts:
OTP_VERSION
|
|
|
|
A channel could be opened with the 'max packet size' set to 0. The behaviour is not defined in the ssh rfc:s, and openssh does not handle that case in some special way besides looping.
The introduced solution just "keep quiet" but removes the eternal loop that caused Erlang to core dump.
|
|
A queue is the behaviour that we want, so this makes the code
easier to understand and more effective.
|
|
* lemenkov/use_os_getenv_2:
fix missing include
Start using os:getenv/2 fun
Introduce os:getenv/2
|
|
If a channel is closed by the peer while using a function with call semantics
in ssh_connection.erl return {error, closed}. Document that the functions
can return {error, timeout | closed} and not only ssh_request_status()
|
|
See #535
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
This reverts commit d086394ebd3595d431835af80709977a6c1c7c89.
|
|
|
|
|
|
Also address compatibility issue with PuTTY
|
|
|
|
Commit 68263a48bfbdac4dc219a91f06af3d535d881850 got close handling
slightly wrong, channels did not get their close message.
Commit 32102f1e8225dada7526c9bfee6622f9026ba4cd did not work as expected
|
|
OTP-10976
|
|
Also start adding dialyzer specs and removing dead code
|
|
This is step one in in making ssh process structure less complicated.
As an effect I also found other simplifications/clean ups of the code
that could be done.
|
|
This patch fixes a few problems of the SSH shell server that affect the
interoperability with SSH clients in widespread use.
First problem is that, whenever a channel_request message is
received with want_reply=true, the reply ends up being sent to the
servers channel id, not the clients channel id. This causes the client
to terminate the connection. The easiest solution to the problem appears
to be a new function in ssh_connection_manager.erl that translates the
servers channel id before sending the reply (in the same manner as
other functions do it).
Second problem is in ssh_cli.erl. When an SSH client sends a
window_change request between PTY allocation and starting the shell
(which appears to happen with some clients), ssh_cli.erl crashes
because #state.buf is yet 'undefined'. Allocating an empty buffer at PTY
allocation time solves the problem.
Affected SSH clients:
- all clients based on SSH-2.0-TrileadSSH2Java_213 (problem #1)
- SSH Term Pro (problem #2)
|
|
The test case interrupted_send did not work on all platforms.
Also ct-ify the test suite
|
|
for closed or invalid channels.
ssh_connection:handle_msg(#ssh_msg_channel_close...) will now cause any send() that was in progress to immediately return {error,closed}.
|
|
|
|
|
|
|
|
cases the remote channel id
|
|
Restored supervisor tree so that error propagation will work as
intended, although connection processes are set to temporary, instead
of permanent with restart times set to 0, and termination of the
connection subtree is initiated by a temporary process spawned by
ssh_connection_managers terminate. This is done to avoid unwanted
supervisor reports. Pherhaps we need some new supervisor
functionality.
|
|
|
|
opened in the first connection.
|
|
|
|
|
|
|
|
|