| Commit message (Collapse) | Author | Files | Lines |
|
|
|
'ptob_close' would always get a segfault when it tried to free a closed
channel. This patch fixes that by adding a check if a channel is already
closed.
Reported by Michael Bowcutt <mbowcutt@case.edu> in
<https://github.com/artyom-poptsov/guile-ssh/issues/8>
and Njagi Mwaniki in a personal email.
* libguile-ssh/channel-type.c (ptob_close): Check if a channel is already
closed before trying to close and free it. Improve logging.
* libguile-ssh/log.c (_gssh_log_debug, _gssh_log_debug1): New procedures
* libguile-ssh/log.h: Likewise.
|
|
|
|
* NEWS: Update. Bump version to 0.11.3.
* configure.ac: Update.
|
|
|
|
* modules/ssh/dist/node.scm: Improve error handling: throw an error with the
current node and the error code from the server. Log errors to the main
log.
* doc/api-dist.texi: Update.
|
|
* modules/ssh/dist/node.scm (node-run-server): Check return code of the
executed command, throw a 'node-error' on a non-zero code.
* AUTHORS, NEWS, THANKS: Update.
|
|
* modules/ssh/auth.scm (openssh-agent-start, openssh-agent-info)
(openssh-agent-setenv): New procedures.
|
|
* NEWS: Update. Bump version to 0.11.2.
* configure.ac: Update.
|
|
|
|
See <https://bugs.gnu.org/26976>.
* libguile-ssh/channel-type.c (ptob_close): Move SCM_SETSTREAM(channel, NULL)
outside of "#if USING_GUILE_BEFORE_2_2".
* libguile-ssh/sftp-file-type.c (ptob_close): Likewise.
Signed-off-by: Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
|
* modules/ssh/dist/node.scm (node-eval): Use 'dynamic-wind' to
systematically close REPL-CHANNEL.
Signed-off-by: Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
|
* libguile-ssh/session-func.c (guile_ssh_session_set): Throw an option along
with its value on an error.
|
|
|
|
|
|
* libguile-ssh/channel-func.c (guile_ssh_channel_open_forward): Log a warning
if a forwarding channel could not be open.
* tests/tunnel.scm ("port forwarding, direct, disconnected session"): New test
case.
|
|
* libguile-ssh/channel-type.c (print_channel): Don't use 'SCM_PTAB_ENTRY'
macro if Guile 2.2 is used.
* libguile-ssh/channel-type.h (GSSH_VALIDATE_CHANNEL_DATA): Likewise.
|
|
* libguile-ssh/channel-func.c (guile_ssh_channel_get_exit_status): Throw
'wrong-type-arg' if a freed channel is passed as an argument.
* libguile-ssh/channel-type.h (GSSH_VALIDATE_OPEN_CHANNEL): Check if a channel
is freed.
* tests/client-server.scm ("channel-get-exit-status, freed channel"): New test
case.
* tests/common.scm (test-error-with-log/=): Check error key and message
properly.
(test-error-with-log): Check an error key.
(test-error-with-log/handler): Remove extra rules.
* NEWS: Update.
|
|
Guile-SSH would always crash with SIGSEGV errors when tried to print a freed
channel object (e.g. after calling 'close' on a channel). This patch fixes
the bug.
* libguile-ssh/channel-type.c (print_channel): Bugfix: Handle freed channels
properly.
* tests/client-server.scm ("channel-request-exec, printing a freed channel"):
New test case.
* NEWS: Update.
|
|
* libguile-ssh/log.c (_gssh_log_warning): New procedure.
* libguile-ssh/log.h: Likewise.
* libguile-ssh/channel-func.c (guile_ssh_channel_get_exit_status): Issue a
warning if 'ssh_channel_get_exit_status' failed to get the exit status.
|
|
* libguile-ssh/log.c (_gssh_log_error): New procedure.
* libguile-ssh/log.h: Likewise.
* libguile-ssh/error.c (guile_ssh_error1): Use it.
|
|
'node-guile-version' would always fail due to a wrong call to 'rexec'
procedure passing it a node object instead of a session object. This patch
fixes the bug.
Reported by Mark H Weaver <mhw@netris.org> and Ludovic Courtès <ludo@gnu.org>:
<https://bugs.gnu.org/26976>
* modules/ssh/dist/node.scm (node-guile-version): Pass node session to a
'rexec' procedure instead of a node object.
* tests/common.scm (start-server/exec): Handle node version requests.
* tests/dist.scm ("node-guile-version, valid response"): New test case.
* NEWS: Update.
|
|
* NEWS: Update. Bump version to 0.11.1.
* configure.ac: Update.
|
|
The building process would always fail on fresh source tree because
'configure' tried to make a symlink or a copy of files that were not
present yet. This patch fixes the building process.
Reported by Ludovic Courtès, on #guix IRC channel.
* configure.ac: Don't make symlinks to 'sssh.scm' and 'ssshd.scm'.
* examples/Makefile.am: Consider 'sssh.scm' and 'ssshd.scm' as generated
scripts to ensure that they are present in the build directory so
'sssh-ssshd.scm' test suite will not fail.
* NEWS: Update.
|
|
|
|
* NEWS: Update. Bump version to 0.11.0.
* configure.ac: Update.
* build-aux/compile: Update.
|
|
|
|
'ssssh-ssshd.scm' test suite would always fail because it could not find the
generated scripts. This patch fixes the issue by making a symlink/copy of the
sssh/ssshd programs to the build directory.
* configure.ac: Bugfix: Symlink/copy sssh/ssshd to build directory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* tests/dist.scm ("with-ssh") <server>: Close channel as soon as data sent to
the client.
|
|
|
|
|
|
|
|
|
|
|
|
* modules/ssh/tunnel.scm (main-loop/reverse): Remove unused code.
|
|
* modules/ssh/tunnel.scm (tunnel-timeout/s+us): New procedure.
(main-loop): Use it.
|
|
* modules/ssh/tunnel.scm (main-loop/reverse): Improve the code a bit.
|
|
* modules/ssh/tunnel.scm (main-loop/reverse) <tunnel-connect>: New procedure.
Use it to make a connection for a reverse tunnel.
|
|
* modules/ssh/dist/node.scm (rrepl-get-result): Fix code formatting.
|
|
The procedure would always fail to read unknown objects (e.g. instances
of Guile-SSH session) properly, raising an obscure errors like
"Unknown # object: #\<". Now the procedure raises 'node-repl-error'
with full evaluation result gotten from RREPL.
Reported by Mathieu, in
<https://github.com/artyom-poptsov/guile-ssh/issues/3>
* modules/ssh/dist/node.scm (rrepl-get-result): Handle unknown # objects
properly.
* tests/dist.scm ("rrepl-get-result, unknown # object error"): New test case.
* NEWS: Update
|
|
|
|
Among other things, this allows us to work around broken guile-snarf
handling of whitespace arguments in Guile 2.2.1:
<https://bugs.gnu.org/25803>.
* configure.ac: Use 'AC_CONFIG_HEADER'.
* libguile-ssh/auth.c,
libguile-ssh/channel-func.c,
libguile-ssh/channel-main.c,
libguile-ssh/channel-type.c,
libguile-ssh/common.c,
libguile-ssh/error.c,
libguile-ssh/key-func.c,
libguile-ssh/key-main.c,
libguile-ssh/key-type.c,
libguile-ssh/log.c,
libguile-ssh/message-func.c,
libguile-ssh/message-main.c,
libguile-ssh/message-type.c,
libguile-ssh/server-func.c,
libguile-ssh/server-main.c,
libguile-ssh/server-type.c,
libguile-ssh/session-func.c,
libguile-ssh/session-main.c,
libguile-ssh/session-type.c,
libguile-ssh/sftp-file-main.c,
libguile-ssh/sftp-file-type.c,
libguile-ssh/sftp-session-func.c,
libguile-ssh/sftp-session-main.c,
libguile-ssh/sftp-session-type.c,
libguile-ssh/threads.c,
libguile-ssh/version.c: Include <config.h>.
Signed-off-by: Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
|
The procedure would always fail to read "unbound variable" errors properly,
returning wrong result with only two values (current module name and current
language name). Now this bug should be fixed.
Reported by Mathieu, in
<https://github.com/artyom-poptsov/guile-ssh/issues/3>
* modules/ssh/dist/node.scm (rrepl-get-result): Handle "unbound variable"
errors.
* tests/dist.scm ("rrepl-get-result, unbound variable error"): New test case.
* AUTHORS, NEWS: Update.
|
|
* tests/tunnel.scm ("call-with-ssh-forward"): Wait for 1s before polling to
prevent errors (yes, that's a dirty hack but it works for me... most of the
time.)
|