summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorArtyom V. Poptsov <poptsov.artyom@gmail.com>2015-06-13 15:50:24 +0300
committerArtyom V. Poptsov <poptsov.artyom@gmail.com>2015-06-13 15:50:24 +0300
commit83b0c0a826bfc201c01c67e3c9f821017c7cc659 (patch)
treeac441f315111423154faae962a0e61017623ed9a /ChangeLog
parenttests/client-server.scm (start-server/dt-test): Fix a bug (diff)
downloadguile-ssh-83b0c0a826bfc201c01c67e3c9f821017c7cc659.tar.gz
Makefile.am: Generate ChangeLog automatically
* Makefile.am: Generate ChangeLog automatically. * ChangeLog: Update. * build-aux/gitlog-to-changelog: Add to the repository.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog2191
1 files changed, 3 insertions, 2188 deletions
diff --git a/ChangeLog b/ChangeLog
index 251a799..9a44924 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,2189 +1,4 @@
-2015-02-24 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Bump version to 0.7.2
- * configure.ac, doc/version.texi: Likewise.
-
- * doc/guile-ssh.texi: Update copyright dates.
-
- * configure.ac: Update copyright dates. Remove a trailing whitespace.
-
- * NEWS: Update.
-
- * ssh/key-type.h: Add parent object to the key structure.
- * ssh/key-type.c (mark_key_smob): Mark parent.
- (free_key_smob): Free the key only if it does not have a parent.
- (_scm_from_ssh_key): Accept a parent object as the 2nd argument. All
- callers updated.
- * ssh/key-func.c (guile_ssh_string_to_public_key)
- (guile_ssh_private_key_from_file)
- (guile_ssh_public_key_from_private_key)
- (guile_ssh_public_key_from_file, guile_ssh_make_keypair): Update.
- * ssh/message-func.c (get_auth_req): Accept a SCM message as the 2nd
- argument. All callers updated.
- (guile_ssh_message_get_req): Update.
-
- * ssh/message-func.c (get_auth_req): Use `_scm_from_ssh_key'.
-
-2015-02-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Update.
-
- * examples/echo/server.scm.in: Update copyright dates.
-
- * examples/echo/server.scm.in (print-help): Rename to
- `print-help-and-exit'.
- (main): Use it.
-
- * examples/echo/client.scm.in (get-prvkey, main): Simplify checks.
-
- * examples/echo/client.scm.in (print-help): Rename to
- `print-help-and-exit'.
- (main): Use it. Remove extra checks.
-
- * README (Requirements): Require libssh 0.6.3 or 0.6.4.
- * doc/guile-ssh.texi (Installation): Likewise.
- * doc/version.texi: Update.
-
- * README (Distribution): Fix path to examples.
-
- * doc/examples.texi (Examples): Fix path to examples.
- Use `channel-get-exit-status' in the client example.
-
- * ssh/auth.c, ssh/channel-func.c, ssh/session-func.c,
- ssh/session-main.c, ssh/session-type.c, ssh/threads.c, ssh/auth.scm,
- ssh/log.c: Remove trailing whitespaces.
-
- * ssh/channel-type.c: Update copyright dates.
-
- `ssh_channel_read' sometimes returns 0 even if `ssh_channel_poll'
- returns a positive value. So we must ensure that res != 0 otherwise
- an assertion in `scm_i_fill_input' won't be meet (see `ports.c' in
- Guile 2.0.9).
-
- * ssh/channel-type.c (ptob_fill_input): Return EOF if
- `ssh_channel_read' returns 0.
- * NEWS: Update.
-
-2015-02-12 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/channel-type.c (print_channel, _scm_from_channel_data): Remove
- trailing spaces.
-
- * ssh/channel-func.c (guile_ssh_channel_request_send_exit_status): Fix
- wrong call to `SCM_ASSERT'.
-
- * ssh/channel-func.c (guile_ssh_channel_request_send_exit_status):
- Validate exit status.
-
- * examples/ssshd.scm.in (handle-request-exec): Send exit status.
- * examples/sssh.scm.in (main): Handle exit status.
- * NEWS: Update.
-
-2015-02-09 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * doc/api-channels.texi (Channels): Update description of
- `guile_ssh_channel_request_send_exit_status'.
- * ssh/channel-func.c (guile_ssh_channel_request_send_exit_status):
- Update the docstring.
-
-2015-02-08 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/channel.scm (channel-request-send-exit-status): Export.
- * ssh/channel-func.c (guile_ssh_channel_request_send_exit_status): New
- procedure.
- * ssh/channel-func.h: Update.
- * tests/client-server.scm ("channel-request-exec, exit status"): New
- TC.
- (start-server/channel-test): Update for exit status test.
- * doc/api-channels.texi (Channels): Add description of
- `channel-request-send-exit-status'.
- * NEWS: Update.
-
- * ssh/channel-func.c (guile_ssh_channel_get_exit_status): New
- procedure.
- * ssh/channel-func.h: Update.
- * ssh/channel.scm (channel-get-exit-status): Export.
- * doc/api-channels.texi (Channels): Add description of
- `channel-get-exit-status'.
-
- * NEWS: Update.
-
-2014-10-13 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/version.c: Don't include `gcrypt.h'.
-
-2014-10-12 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/server-func.c (guile_ssh_server_get): New procedure.
- * ssh/server.scm (server-get): Export.
- * tests/server.scm ("server-get"): New TC.
- * doc/api-servers.texi (Servers): Add description of `server-get'.
- * NEWS: Update.
-
- * ssh/server-type.c (print_server): Print object address.
-
- * ssh/server-type.h (server_data): Add `options' field.
- * ssh/server-type.c (mark_server): Mark `options' field.
- (guile_ssh_make_server): Initialize `options' field.
- (print_server): New procedure.
- (init_server_type): Register server printer procedure.
- * ssh/server-func.c (guile_ssh_server_set_x): Add an option to the
- server optons.
- * ssh/server-func.h (server_options): Export.
- * NEWS: Update.
-
-2014-10-11 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Bump version to 0.7.1.
- * configure.ac, doc/version.texi: Likewise.
-
- * ssh/version.scm (get-crypto-library): Fix the docstring.
- * doc/api-version.texi (Version): Fix description of
- `get-crypto-library'. Improve description of `zlib-support?'.
-
- * tests/key.scm ("private-key-to-file") [GCrypt]: Don't perform the
- test.
- * doc/api-keys.texi (Keys): Update description of
- `private-key-to-file'.
- * NEWS: Update.
-
- * ssh/key-func.c (guile_ssh_private_key_to_file): New procedure.
- * ssh/key.scm (private-key-to-file): Export.
- * tests/key.scm ("private-key-to-file"): New TC.
-
- * doc/api-keys.texi (Keys): Add description of `private-key-to-file'.
- * NEWS: Update.
-
- * ssh/key-func.c (guile_ssh_string_to_public_key)
- (guile_ssh_private_key_from_file)
- (guile_ssh_public_key_from_private_key)
- (guile_ssh_public_key_from_file): Use `_scm_from_ssh_key'.
-
- * doc/guile-ssh.texi (Installation): Add note about GCrypt support in
- libssh. Replace "libguile-ssh" with "guile-ssh".
-
- * doc/version.texi: Update.
-
- * NEWS: Update.
- * TODO (Known Bugs): Update.
-
- * ssh/key.scm, ssh/log.scm: Update commentary.
-
- * ssh/key-type.c (_scm_from_ssh_key, guile_ssh_make_keypair): New
- procedures.
- * ssh/key-type.h: Update.
- * ssh/key.scm (make-keypair): Export.
-
- * doc/api-keys.texi (Keys): Add description of `make-keypair'.
- * tests/key.scm ("make-keypair"): New TC.
- * NEWS: Update.
-
- * ssh/common.c (log_verbosity): Move to `ssh/log.c'.
- * ssh/common.h, ssh/server-func.c, ssh/session-func.c: Update.
- * ssh/log.scm (set-log-verbosity!, get-log-verbosity): Export.
- * ssh/log.c (guile_ssh_set_log_verbosity_x)
- (guile_ssh_get_log_verbosity): New procedures.
- * ssh/log.h: Update.
- * doc/api-logging.texi: Add descripton of `set-log-verbosity!' and
- `get-log-verbosity'.
- * NEWS: Update.
-
- * tests/log.scm ("set-log-verbosity!", "get-log-verbosity"): New TCs.
-
- * doc/api-keys.texi (Keys): Add note about support of ECDSA keys with
- GCrypt.
-
-2014-10-10 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/key.scm: Don't do ECDSA key tests if libssh was compiled with
- GCrypt.
- (when-openssl): New macro.
- ("private-key-from-file", "public-key-from-file", "key?")
- ("private-key->public-key", "get-key-type", "public-key->string")
- ("string->public-key"): Use it.
-
-2014-10-10 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/version.c (get-libssh-version): Rename to `%get-libssh-version'.
- Return raw libssh version string.
- * ssh/version.scm (%get-libssh-version, get-crypto-library)
- (zlib-support?): New procedures.
- * doc/api-version.texi: Add description of `%get-libssh-version',
- `get-crypto-library' and `zlib-support?'.
- * NEWS: Update.
-
-2014-09-14 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/server-client.scm ("accept, key exchange"): Add missed paren.
-
- * tests/client-server.scm (run-server-and-client): Rename to
- `run-client-test'. All callers updated.
-
- * tests/server-client.scm: Use `dynamic-wind' for child processes in
- tests.
- (run-server-test): New procedure.
- ("accept, key exchange", "server-message-get", "message-get-type")
- ("message-get-session"): Use it.
-
- * tests/client-server.scm: Use `dynamic-wind' for child processes in
- tests.
- (run-server-and-client): New procedure.
- ("connect!, disconnect!")
- ("get-protocol-version", "authenticate-server, not-known")
- ("authenticate-server, ok", "get-public-key-hash")
- ("userauth-none!, success", "userauth-none!, denied")
- ("userauth-none!, partial", "userauth-password!, success")
- ("userauth-password!, denied", "userauth-password!, partial")
- ("userauth-public-key!, success", "userauth-get-list")
- ("make-channel", "channel-get-session", "channel-open-session")
- ("channel-request-exec", "data transferring, string")
- ("data transferring, bytevector"): Use it.
-
-2014-08-31 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Bump version to 0.7.0.
- * configure.ac, doc/version.texi: Likewise.
-
- * README (Distribution): Update.
-
-2014-08-30 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * doc/api-keys.texi (Keys): Make description of `public-key?' more
- accurate.
- * ssh/key-type.c (guile_ssh_is_public_key_p): Update docstring.
-
-2014-08-26 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/key-func.c (guile_ssh_string_to_public_key): Fix a bug: Call
- `scm_dynwind_end' at the end of the procedure so call to the procedure
- won't lead to segfaults.
- * tests/key.scm ("public-key->string"): Improve.
- ("string->public-key"): New TC.
-
- * tests/key.scm ("public-key?"): Improve TC.
- ("public-key->string"): New TC.
-
- * ssh/key-type.c (print_key): Use `_private_key_p' predicate to
- determite type of the key so private key will be displayed as
- "private", not "public".
-
-2014-08-23 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * TODO: Update.
-
-2014-08-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/Makefile.am (CLEANFILES): Add `server-client-errors.log' and
- `server-client-libssh.log'.
-
- * tests/client-server.scm (%knownhosts): Use `abs_top_builddir'
- instead of `abs_top_srcdir' to fix the permission issue on `make
- distcheck' during tests.
- * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Export `abs_top_builddir'.
-
-2014-08-21 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/message.scm (message-get-session): New procedure.
- * ssh/message-func.c (guile_ssh_message_get_session): New procedure.
- * ssh/message-func.h: Likewise.
- * tests/server-client.scm ("message-get-session"): New TC.
- * doc/api-messages.texi (Message Handling): Add description of
- `message-get-session'
- * doc/version.texi: Update.
- * NEWS: Update.
-
-2014-08-09 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/session-type.c (print_session): Print port number.
-
- * ssh/session-func.c (guile_ssh_session_get): Handle `port' option.
- * doc/api-sessions.texi (Sessions): Update.
- * tests/session.scm ("session-get"): Update.
-
- * ssh/channel-type.c (_ssh_channel_to_scm): Rename to
- `_scm_from_channel_data'. All callers updated.
- (guile_ssh_make_channel): Update.
- * ssh/channel-type.h: Update.
- * ssh/message-func.c
- (guile_ssh_message_channel_request_open_reply_accept): Update.
-
- * ssh/channel-func.c (guile_ssh_channel_open_forward)
- (guile_ssh_channel_open_reverse_forward)
- (guile_ssh_channel_cancel_forward): Fix a bug: Rename
- `_scm_to_ssh_session' to `_scm_to_session_data'.
-
-2014-07-20 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/session-func.c: Improve docstrings. Remove extra comments.
-
- * ssh/channel-type.c (mark_channel): Mark the session.
- * ssh/message-type.c (mark_message): Likewise.
-
- * ssh/channel-func.c (guile_ssh_channel_get_session): New procedure.
- * ssh/channel-func.h (guile_ssh_channel_get_session): Likewise.
- * ssh/channel.scm (channel-get-session): Export.
- * tests/client-server.scm ("channel-get-session"): New TC.
- * doc/api-channels.texi (Channels): Add description of
- `channel-get-session' procedure.
- * NEWS: Update.
-
- * README: Require GNU Guile 2.0.
- * doc/guile-ssh.texi (Installation): Likewise.
- * configure.ac: Remove checks related to GNU Guile 1.8.
- * Makefile.am, ssh/Makefile.am: Likewise.
- * doc/version.texi: Update.
- * NEWS: Update.
-
-2014-07-19 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * TODO: Update.
-
- * ssh/channel-type.c (print_channel): Print data type first. Print
- `freed' state if the channel has been closed and freed.
- * ssh/key-type.c (print_key): Print data type first.
- * ssh/message-type.c (print_message): Improve.
- * ssh/session-type.c (print_session): Improve a bit.
-
- * ssh/session-type.h, ssh/session-type.c: Cleanup.
-
- * examples/sssh.scm.in (*option-spec*): Add `known-hosts-file' option.
- (main): Handle it.
- * tests/sssh-ssshd.scm: Fix a bug in the test suite: use test
- `known_hosts' file to make sure that it has no records.
- ("ssshd, start"): Add a delay to make sure that
- ssshd started.
- ("sssh, exec"): Improve. Do cleanup at the end of the TC.
- (*sssh-cmd*): Set `knownhosts' file explicitly.
-
- * tests/server-client.scm: Fix global variables names. Remove extra
- global variables.
- (clnmsg): Improve.
-
- * tests/server-client.scm: Improve TCs.
- (libssh-log-printer): New procedure.
- (make-session-for-test): Set known hosts file explicitly.
- (make-server-for-test): Set DSA key. Change log verbosity level to
- `rare'.
- (test-assert-with-log): New macro.
- ("accept, key exchange", "server-message-get", "message-get-type"):
- Start the client as a different process during the test. Improve.
-
- * tests/client-server.scm: Improve TCs
- (spawn-server-thread, cancel-server-thread): Remove.
- (make-session-loop): Stop the loop when client disconnects.
- ("connect!, disconnect!", "get-protocol-version")
- ("authenticate-server, not-known", "authenticate-server, ok")
- ("get-public-key-hash", "userauth-none!, success")
- ("userauth-none!, denied", "userauth-none!, partial")
- ("userauth-password!, success", "userauth-password!, denied")
- ("userauth-password!, partial", "userauth-public-key!, success")
- ("userauth-get-list", "make-channel", "channel-open-session")
- ("channel-request-exec", "data transferring, string")
- ("data transferring, bytevector"): Start the server as a different
- process during the test. Improve.
- (start-server/channel-test, make-session/channel-test)
- (start-server/dt-test, make-channel/dt-test): New procedures.
-
-2014-07-18 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/channel-type.h (GSSH_VALIDATE_OPEN_CHANNEL): New macro.
- * ssh/channel-func.c (guile_ssh_channel_request_exec)
- (guile_ssh_channel_request_pty, guile_ssh_channel_request_shell)
- (guile_ssh_channel_request_env, guile_ssh_channel_set_pty_size_x)
- (guile_ssh_channel_set_stream_x, guile_ssh_channel_get_stream): Expect
- an open channel as an argument.
- * doc/api-channels.texi (Channels): Update.
-
- * ssh/channel-type.h (GSSH_VALIDATE_CHANNEL_DATA): New macro.
- * ssh/channel-func.c (guile_ssh_channel_is_open_p): Return `#f' if the
- channel has been closed and freed.
- (guile_ssh_channel_is_eof_p, guile_ssh_channel_open_session): Throw an
- exeption if the channel has been closed and freed.
-
-2014-07-16 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/channel-type.c (_scm_to_channel_data): Return NULL if the
- channel has been freed.
-
-2014-07-14 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/log.scm: Fix TS name.
-
-2014-07-13 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * doc/api-channels.texi (Channels): Add note that
- `channel-request-exec' can be used to execute only a single command on
- a channel.
-
- * TODO (Known Bugs): New section.
-
- * ssh/session-func.c: Include missed `assert.h' header.
-
-2014-07-12 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/session-func.c (guile_ssh_get_protocol_version)
- (guile_ssh_authenticate_server, guile_ssh_get_server_public_key)
- (guile_ssh_write_known_host): Expect a connected session as an
- argument. Throw `wrong-type-arg' if the session is not connected.
- * tests/session.scm ("get-protocol-version"): Move with some changes
- to `tests/client-server.scm'.
- * tests/client-server.scm ("get-protocol-version"): New TC.
- * doc/api-sessions.texi (Sessions): Update.
- * NEWS: Update.
-
-2014-07-07 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/auth.c: Throw `wrong-type-arg' instead of `guile-ssh-error' if a
- disconnected session is passed as an argument to procedures in the
- module.
- * ssh/session-type.h (GSSH_VALIDATE_CONNECTED_SESSION): New macro.
- * doc/api-auth.texi (Auth): Update.
-
-2014-07-06 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/auth.c (guile_ssh_userauth_public_key_x)
- (guile_ssh_userauth_public_key_auto_x)
- (guile_ssh_userauth_public_key_try, guile_ssh_userauth_agent_x)
- (guile_ssh_userauth_password_x, guile_ssh_userauth_none_x)
- (guile_ssh_userauth_get_list): Throw `guile-ssh-error' if the session
- is not connected.
- * doc/api-auth.texi (Auth): Update.
- * NEWS: Update.
-
- * ssh/auth.c, ssh/channel-func.c, ssh/channel-type.c, ssh/key-func.c,
- ssh/key-type.c, ssh/log.c, ssh/message-func.c, ssh/message-type.c,
- ssh/server-func.c, ssh/session-type.c, ssh/version.c: Improve the
- docstrings format.
-
-2014-07-03 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/client-server.scm: Improve logging: Redirect stderr to
- `client-server-errors.log' file. Redirect libssh log messages to
- `client-server-libssh.log' file. Set more verbose log level for
- sessions. Use `test-assert-with-log' macro instead of `test-assert'.
- (libssh-log-printer): New procedure.
- (test-assert-with-log): New macro.
- * tests/Makefile.am (CLEANFILES): Add log files.
- * .dir-locals.el: Update.
-
- * ssh/log.c (guile_ssh_write_log): Fix a warning: Pass the message as
- a argument to the formatter.
-
-2014-07-02 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * README (Distribution): Add information about `log.scm'.
-
- * ssh/log.c (guile_ssh_default_libssh_log_printer): Don't print the
- function name because it is already included in the message passed to
- the callback.
-
- * ssh/log.scm (format-log): New procedure.
- * ssh/log.c: Add copyright information.
- (guile_ssh_write_log): New procedure.
- * doc/api-logging.texi (Logging): Add information about `format-log'
- procedure.
-
-2014-06-29 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/session-func.c (guile_ssh_blocking_flush): Return `error' symbol
- on error. Assert that the result of libssh procedure is one of the
- valid constants described in `libssh.h'.
- (guile_ssh_connect_x, guile_ssh_authenticate_server): Likewise.
- * doc/api-sessions.texi (Sessions): Update.
-
-2014-06-28 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * doc/api-logging.texi: Add to the repository.
- * doc/guile-ssh.texi (API Reference): Add description of logging API.
- * doc/version.texi: Update.
- * doc/Makefile.am (guile_ssh_TEXINFOS): Add `api-logging.texi'.
- * ssh/log.c, ssh/log.h, ssh/log.scm: Add to the repository.
- * ssh/Makefile.am (libguile_ssh_la_SOURCES, BUILT_SOURCES)
- (SCM_SOURCES): Update.
- * ssh/auth.scm, ssh/channel.scm, ssh/key.scm, ssh/message.scm,
- ssh/server.scm, ssh/session.scm, ssh/version.scm: Use (ssh log).
- * tests/log.scm: New TS.
- * tests/Makefile.am (SCM_TESTS): Add `log.scm'.
- * NEWS: Update.
-
-2014-06-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/error.c (guile_ssh_session_error1): New procedure.
- * ssh/error.h: Likewise.
- * ssh/channel-func.c (guile_ssh_channel_open_session)
- (guile_ssh_channel_request_exec, guile_ssh_channel_request_pty)
- (guile_ssh_channel_request_shell, guile_ssh_channel_request_env): Use it.
- * ssh/channel-type.c (ptob_write, ptob_flush): Use it.
- * ssh/server-func.c (guile_ssh_server_accept)
- (guile_ssh_server_handle_key_exchange): Use it.
- * ssh/session-func.c (guile_ssh_connect_x)
- (guile_ssh_authenticate_server, guile_ssh_write_known_host): Use it.
-
- * ssh/channel-type.c (_scm_to_ssh_channel): Rename to
- `_scm_to_channel_data'. All callers updated.
- * ssh/channel-type.h: Likewise.
- * ssh/channel-func.c (guile_ssh_channel_open_session)
- (guile_ssh_channel_request_exec, guile_ssh_channel_request_pty)
- (guile_ssh_channel_request_shell, guile_ssh_channel_request_env)
- (guile_ssh_channel_set_pty_size_x, guile_ssh_channel_set_stream_x)
- (guile_ssh_channel_get_stream, guile_ssh_channel_is_open_p)
- (guile_ssh_channel_is_eof_p): Update.
- * ssh/key-type.c (_scm_to_ssh_key): Rename to `_scm_to_key_data'. All
- callers updated.
- * ssh/key-type.h: Likewise.
- * ssh/key-func.c (guile_ssh_public_key_to_string)
- (guile_ssh_public_key_from_private_key)
- (guile_ssh_get_public_key_hash): Update.
- * ssh/message-type.c (_scm_to_ssh_message): Rename to
- `_scm_to_message_data'. All callers updated.
- * ssh/message-type.h: Likewise.
- * ssh/message-func.c (guile_ssh_message_reply_default)
- (guile_ssh_message_service_reply_success)
- (guile_ssh_message_auth_reply_success)
- (guile_ssh_message_auth_reply_public_key_ok)
- (guile_ssh_message_channel_request_reply_success)
- (guile_ssh_message_channel_request_open_reply_accept)
- (guile_ssh_message_get_type, guile_ssh_message_get_req)
- (guile_ssh_message_auth_set_methods_x): Update.
- * ssh/server-type.c (_scm_to_ssh_server): Rename to
- `_scm_to_server_data'. All callers updated.
- * ssh/server-type.h: Likewise.
- * ssh/server-func.c (guile_ssh_server_set_x, guile_ssh_server_listen)
- (guile_ssh_server_accept, guile_ssh_server_handle_key_exchange)
- (guile_ssh_server_message_get): Update.
- * ssh/session-type.c (_scm_to_session_data): Rename to
- `_scm_to_session_data'. All callers updated.
- * ssh/session-type.h: Likewise.
- * ssh/session-func.c (guile_ssh_blocking_flush, guile_ssh_session_set)
- (guile_ssh_session_get, guile_ssh_connect_x, guile_ssh_disconnect)
- (guile_ssh_get_protocol_version, guile_ssh_get_error)
- (guile_ssh_authenticate_server, guile_ssh_get_server_public_key)
- (guile_ssh_write_known_host, guile_ssh_is_connected_p): Update.
- * ssh/auth.c (guile_ssh_userauth_public_key_x)
- (guile_ssh_userauth_public_key_auto_x)
- (guile_ssh_userauth_public_key_try, guile_ssh_userauth_agent_x)
- (guile_ssh_userauth_password_x, guile_ssh_userauth_none_x)
- (guile_ssh_userauth_get_list): Update.
-
- * ssh/session-type.c (print_session): New procedure.
- (init_session_type): Register `print_session' callback.
- * ssh/channel-type.c (print_channel): Print object address.
-
- * ssh/message-type.c (print_message): Likewise.
- * ssh/key-type.c (print_key): Likewise.
- * ssh/common.c (_scm_object_hex_address): New procedure.
- * ssh/common.h (_scm_object_hex_address): Likewise.
- * NEWS: Update.
-
- * ssh/session-func.c (guile_ssh_session_get): New procedure.
- * ssh/session-func.h (guile_ssh_session_get): Likewise.
- * ssh/session.scm (session-get): New procedure.
- * tests/session.scm ("session-get"): New TC.
- * doc/api-sessions.texi (Sessions): Add description of `session-get'
- procedure.
- * NEWS: Update.
-
-2014-06-21 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/client-server.scm (spawn-server-thread): Catch all exceptions
- to fix the "Error while printing of exception" during the tests.
- * tests/server-client.scm (spawn-client-thread): Likewise.
-
- * ssh/channel-type.c (print_channel): Use `SCM_OPPORTP' predicate.
-
-2014-06-20 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * doc/guile-ssh.texi (Installation): Update URLs to Guile-SSH
- repository. Require libssh 0.6.3.
- * NEWS: Update.
-
- * tests/client-server.scm ("authenticate-server, not-known")
- ("authenticate-server, ok"): New TCs.
- * NEWS: Update.
-
- * doc/guile-ssh.texi: Add an overview of programming with Guile-SSH to
- the "Examples" chapter.
- * doc/examples.texi: Add to the repository.
- * doc/Makefile.am (guile_ssh_TEXINFOS): Add `examples.texi'.
- * doc/version.texi: Update.
- * NEWS: Update.
-
- * .dir-locals.el: Add to the repository.
-
- * ssh/channel.scm (%channel-open-forward)
- (%channel-open-forward/reverse): Don't export primitive procedures.
- * doc/api-channels.texi (Channels): Update.
- * NEWS: Update.
-
-2014-06-15 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * doc/api-channels.texi (Channels): Add subsection on port forwarding.
-
- * ssh/channel-func.c (channel-open-forward): Rename to
- `%channel-open-forward'. Rename arguments.
- (channel-open-reverse-forward): Rename to
- `%channel-open-forward/reverse'. Rename arguments.
- * ssh/channel.scm (channel-open-forward): Rename to
- `%channel-open-forward'.
- (channel-open-reverse-forward): Rename to
- `%channel-open-forward/reverse'.
- (channel-open-forward, channel-open-forward/reverse): New procedures.
-
- * ssh/message-func.c (get_auth_req): Fix a bug with assignment of
- `ssh_public_key' type to `ssh_key' variable: Use
- `ssh_message_auth_pubkey' instead of `ssh_message_auth_publickey' to
- get the key.
-
- * ssh/message-func.c (get_auth_req, get_pty_req, get_env_req)
- (get_exec_req, get_global_req, get_service_req, get_channel_open_req):
- Fix warnings: Add `const' qualifier where it is needed.
-
-2014-06-06 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/key-type.h (key_data): Remove `is_to_be_freed' field.
- * ssh/key-type.c (free_key_smob): Always free the SSH key on GC'ing.
- * ssh/key-func.c (guile_ssh_private_key_from_file)
- (guile_ssh_public_key_from_private_key)
- (guile_ssh_public_key_from_file): Likewise.
- * ssh/message-func.c (get_auth_req): Likewise.
- * ssh/session-func.c (guile_ssh_get_server_public_key): Likewise.
-
- * ssh/key-func.c (guile_ssh_private_key_from_file): Remove `session'
- parameter. All callers updated.
- * doc/api-keys.texi (Keys): Update description of
- `private-key-from-file'.
- * examples/echo/client.scm.in (get-prvkey): Update.
- * tests/key.scm ("private-key-from-file"): Update.
- * tests/client-server.scm ("userauth-public-key!, success"): Update.
- * NEWS: Update.
-
- Fix a GC issue: Keep a reference to the parent session in channel and
- message smobs to prevent the session from premature GC'ing. Without
- the fix GC could free a session even if there are live channels and by
- that break the channels.
-
- Reported by Ludovic Courtès <ludo@gnu.org>
-
- * ssh/channel-type.h (channel_data): Store a reference to the parent
- session.
- * ssh/message-type.h (message_data): Likewise.
- * ssh/channel-type.c (_ssh_channel_to_scm): Change argument list. All
- callers updated.
- (guile_ssh_make_channel): Update.
- * ssh/message-func.c
- (guile_ssh_message_channel_request_open_reply_accept): Update.
- * ssh/server-func.c (guile_ssh_server_message_get): Store a reference
- to a session in the message smob.
- * NEWS: Update.
-
-2014-06-01 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/key.scm: New test suite.
- * tests/Makefile.am (SCM_TESTS): Add `key.scm'.
- (EXTRA_DIST): Add `dsakey.pub', `ecdsakey', `ecdsakey.pub',
- `rsakey.pub'.
- * tests/dsakey.pub, tests/ecdsakey, tests/ecdsakey.pub,
- tests/rsakey.pub: New files
- * NEWS: Update.
-
- * ssh/key-type.c: Add information about a bug with private/public
- key predicates.
- (guile_ssh_is_public_key_p, guile_ssh_is_private_key_p): Fix a
- bug: Return `#f' if the argument is not a Guile-SSH key object.
-
- * NEWS: Update.
-
- * ssh/key-func.c (guile_ssh_public_key_from_file): Fix a bug:
- Require only one argument.
-
- * ssh/auth.c (guile_ssh_userauth_pubkey): Rename to
- `guile_ssh_userauth_public_key_x'. All callers updated.
- (guile_ssh_userauth_pubkey_auto_x): Rename to
- `guile_ssh_userauth_public_key_auto_x'. All callers updated.
- (guile_ssh_userauth_password): Rename to
- `guile_ssh_userauth_password_x'. All callers updated.
- (guile_ssh_userauth_public_key_try): New procedure.
- * ssh/auth.h, ssh/auth.scm: Update.
- * examples/echo/client.scm.in (main): Update.
- * examples/sssh.scm.in (main): Update.
- * tests/client-server.scm ("userauth-pubkey!, success"): Rename to
- "userauth-public-key!, success". Update.
- * doc/api-auth.texi (Auth): Update. Add description of
- `userauth-public-key/try' and `userauth-agent!' procedures.
- * NEWS: Update.
-
- * examples/echo/client.scm.in (main): Fix a bug: Print fingerprint
- as a MD5 hex string.
-
- * ssh/key.scm (string->public-key): New procedure.
- * ssh/key-func.c (guile_ssh_string_to_public_key): New procedure.
- * ssh/key-func.h: Likewise.
- * doc/api-keys.texi (Keys): Add description of
- `string->public-key'.
-
- * ssh/key-type.c (scm_from_ssh_key_type): Rename to
- `_ssh_key_type_to_scm'. Make it public.
- (_scm_to_ssh_key_type): New procedure.
- * ssh/key-type.h (_ssh_key_type_to_scm, _scm_to_ssh_key_type):
- Export.
-
- * ssh/key-type.h (key_types): Export structure.
- * ssh/key-type.c (key_types): New structure.
- (scm_from_ssh_key_type): Use `_ssh_const_to_scm'.
-
- * ssh/key-func.c (key_types): Rename to `hash_types'.
- (guile_ssh_get_public_key_hash): Update.
-
- * ssh/key-type.h (KEY_TYPE): Remove.
-
-2014-05-31 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/channel-func.c (_ssh_result_to_symbol): New procedure.
- (guile_ssh_channel_open_forward, channel-open-reverse-forward)
- (guile_ssh_channel_cancel_forward): New procedures.
- * ssh/channel.scm (channel-open-forward)
- (channel-open-reverse-forward, channel-cancel-forward): New
- procedures.
-
- * ssh/key-type.h (key_data): Remove `key_type' field.
- * ssh/key-func.c (guile_ssh_public_key_from_private_key): Update.
- * ssh/message-func.c (get_auth_req): Update.
-
- * ssh/base64.c, ssh/base64.h: Remove the files because we don't
- need a custom base64 converter anymore.
- * ssh/key-func.c: Don't include `base64.h'.
-
- * ssh/Makefile.am (libguile_ssh_la_SOURCES): Update.
-
- Use new libssh 0.6 API for handling of public key fingerprints.
- Update TCs and documentation.
- * examples/sssh.scm.in (main): Update.
- * examples/echo/client.scm.in (main): Update.
- * ssh/session-func.c (guile_ssh_get_server_public_key): New
- procedure.
- (guile_ssh_get_public_key_hash): Change arguments. Move to
- `ssh/key-func.c'. All callers updated.
- * ssh/session.scm (bytevector->hex-string): Move to `ssh/key.scm'.
- (get-server-public-key): New procedure.
- * ssh/key-func.c (guile_ssh_get_public_key_hash): New procedure.
- * ssh/key.scm (get-public-key-hash, bytevector->hex-string): New
- procedures.
- * tests/client-server.scm ("get-public-key-hash"): Check md5 and
- sha1 fingerprints.
- * doc/api-sessions.texi (Sessions): Add documentation for
- `get-server-public-key'. Move `get-public-key-hash',
- `bytevector->hex-string' to `doc/api-keys.texi'.
- * doc/api-keys.texi (Keys): Update.
- * NEWS: Update.
-
- * ssh/session-func.c (guile_ssh_get_public_key_hash): Cleanup.
-
- * tests/client-server.scm ("userauth-get-list"): Fix a bug: Call
- `userauth-none!' first to get list of allowed authentication
- methods from the server.
-
- * tests/client-server.scm: Make sure that the received message is
- not `#f' before handling it in a server thread.
- (make-session-loop): New macro.
-
- * tests/client-server.scm (server-thread): Rename to
- `*server-thread*'.
- (spawn-server-thread): Update.
- (cancel-server-thread): Update.
-
- * tests/client-server.scm ("get-public-key-hash"): Check the hash.
- Check `bytevector->hex-string' return value.
-
- * ssh/session.scm (bytevector->hex-string): Fix a bug: Use
- `format' from `(ice-9 format)' module.
-
- * doc/api-sessions.texi (Sessions): Update description of
- `get-public-key-hash'. Add documentation for
- `bytevector->hex-string'. Add examples.
-
- * ssh/session.scm (bytevector->hex-string): New procedure.
- * examples/echo/client.scm.in (main): Use it.
- * examples/sssh.scm.in (main): Use it.
-
-2014-05-30 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * README: Update requirements.
-
- * examples/echo/client.scm.in (main): Public key is not needed
- anymore, remove it.
- (get-pubkey): Remove.
-
- * tests/client-server.scm ("userauth-pubkey!, success"): Public
- key is not needed anymore, remove it.
-
- * ssh/session-func.c (guile_ssh_get_public_key_hash): Return the
- hash as a bytevector instead of a string.
- * NEWS: Update.
-
-2014-05-27 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- Perform basic work on porting of Guile-SSH on libssh 0.6.3.
- Currently it compiles with 0.6.3 and 4 of 5 tests pass. There is
- some work that should be done.
- * ssh/auth.c (guile_ssh_userauth_pubkey): Update. Change argument
- list. All callers updated.
- (guile_ssh_userauth_autopubkey_x): Update. Rename to
- `guile_ssh_userauth_pubkey_auto_x'. Change argument list. All
- callers updated.
- (guile_ssh_userauth_agent_x): New procedure.
- * ssh/auth.scm: Update.
- * ssh/key-func.c (public_key_to_ssh_string): Remove.
- (guile_ssh_public_key_to_string): Update.
- (guile_ssh_private_key_from_file): Update.
- (guile_ssh_public_key_from_private_key): Update.
- (guile_ssh_public_key_from_file): Update. Change argument list.
- * ssh/key-type.c (free_key_smob): Update.
- (scm_from_ssh_key_type): Add ECDSA.
- (guile_ssh_key_get_type): Update.
- (_private_key_p, _public_key_p): Update.
- * ssh/key-type.h: Update.
- * ssh/message-func.c (get_auth_req): Update.
- * ssh/Makefile.am (libguile_ssh_la_LDFLAGS): Add `-lssh'.
- * tests/client-server.scm ("userauth-pubkey!, success"): Update.
- * examples/sssh.scm.in (main): Update.
-
-2014-05-24 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * ssh/Makefile.am: Build the library before compiling of Guile
- modules.
-
-2014-03-23 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Bump version to 0.6.0
- * doc/version.texi: Likewise.
- * configure.ac: Likewise. Change URL of the project.
-
- * Makefile.am, am/Makefile.am, ssh/Makefile.am, ssh/auth.c,
- ssh/auth.h, ssh/auth.scm, ssh/base64.c, ssh/base64.h,
- ssh/channel-func.c, ssh/channel-func.h, ssh/channel-main.c,
- ssh/channel-type.c, ssh/channel-type.h, ssh/channel.scm,
- ssh/common.c, ssh/common.h, ssh/error.c, ssh/error.h,
- ssh/key-func.c, ssh/key-func.h, ssh/key-main.c, ssh/key-type.c,
- ssh/key-type.h, ssh/key.scm, ssh/message-func.c,
- ssh/message-func.h, ssh/message-main.c, ssh/message-type.c,
- ssh/message-type.h, ssh/message.scm, ssh/server-func.c,
- ssh/server-func.h, ssh/server-main.c, ssh/server-type.c,
- ssh/server-type.h, ssh/server.scm, ssh/session-func.c,
- ssh/session-func.h, ssh/session-main.c, ssh/session-type.c,
- ssh/session-type.h, ssh/session.scm, ssh/threads.c, ssh/threads.h,
- ssh/version.c, ssh/version.scm, tests/Makefile.am,
- tests/client-server.scm, tests/server-client.scm,
- tests/server.scm, tests/session.scm, tests/sssh-ssshd.scm,
- configure.ac: Replace `libguile-ssh' with `Guile-SSH' in
- commentaries.
-
- * examples/ssshd.scm.in (handle-req-auth): Fix handling of
- password authentication.
-
- * examples/ssshd.scm.in (main): Improve error handling on
- `server-accept': Print exception key on exception, wait 1 second
- before the second try to prevent flooding of the terminal with
- errors.
-
- * examples/echo/server.scm.in (main): Likewise.
- * doc/api-servers.texi (Servers): Update description of
- `server-accept'.
-
- * README (Distribution): Update information about compilation of
- Scheme modules.
-
- Don't include .x files in the distribution.
- * ssh/Makefile.am (AM_CPPFLAGS): Add pathes to includes.
- (snarfcppopts): Add `AM_CPPFLAGS'.
- (nodist_noinst_HEADERS): Remove.
-
- Fix parallel tests: Use port numbers from different ranges for
- each test case.
- * tests/client-server.scm, tests/server-client.scm: Update.
- * tests/sssh-ssshd.scm: Update. Set port for ssshd.
- * NEWS: Update.
-
- * examples/ssshd.scm.in: Add `--port' option.
- (print-help-and-exit): Update.
- (main): Update.
-
- * ssh/session.scm: Update the module commentary.
-
- * NEWS: Update.
-
- * examples/Makefile.am (EXTRA_DIST): Add .in files.
-
- Fix compiling of Scheme modules. Install .go files to the
- standard `site-ccache' directory.
- * configure.ac: Substitute `GUILE_EFFECTIVE_VERSION'.
- * ssh/Makefile.am (dist_pkgguilesite_DATA): Rename to
- `nobase_dist_pkgguilesite_DATA'.
- (ccachedir): Set Guile ccache path.
- (nobase_nodist_pkgguilesite_DATA): Rename to
- `nobase_dist_ccache_DATA'.
- (guilec_opts): Use absolute pathes.
- (guilec_env): Adjust `LD_LIBRARY_PATH' and `GUILE_LOAD_PATH'.
-
-2014-03-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * Makefile.am (clean-go): New target.
- * ssh/Makefile.am (clean-go): Likewise.
-
- * ssh/Makefile.am (dist_noinst_HEADERS): Add snarfed *.x files.
-
- * tests/Makefile.am (EXTRA_DIST): Add `dsakey' and `rsakey'.
-
- * Makefile.am (EXTRA_DIST): Add srfi-64.
-
- * tests/Makefile.am (AM_SCM_LOG_FLAGS): Use `top_srcdir' instead
- of `top_builddir'.
-
- * doc/guile-ssh.texi (Acknowledgments): Thank Ludovic.
-
- * ssh/auth.scm: Update module commentary.
-
- * .gitignore: Move rules related to object files, libraries
- etc. to `ssh/.gitignore'. Update.
- * ssh/.gitignore: Update.
- * build-aux/.gitignore: New file.
- * doc/.gitignore: New file.
- * examples/.gitignore: New file.
- * m4/.gitignore: New file.
-
- * ssh/auth.c (guile_ssh_userauth_pubkey): Don't take a username as
- an parameter. All callers updated.
- (guile_ssh_userauth_password): Likewise.
- * examples/ssshd.scm.in (handle-req-auth): Update.
- * examples/echo/client.scm.in (main): Update.
- * tests/client-server.scm ("userauth-password!, success")
- ("userauth-password!, denied", "userauth-password!, partial")
- ("userauth-pubkey!, success"): Update TCs.
- * doc/api-auth.texi (Auth): Update documentation for
- `userauth-pubkey!' and `userauth-password!'. Add a general note
- about setting of a username.
- * doc/version.texi: Update.
-
-2014-03-07 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * THANKS: Add to the repository. Thank Ludovic.
- * AUTHORS: Update.
-
- * examples/sssh.scm.in (read-all): Improve error handling: Catch
- `guile-ssh-error'.
- * examples/ssshd.scm.in (read-all): Likewise.
- * NEWS: Update.
-
-2014-03-02 Ludovic Courtès <ludo@gnu.org>
-
- * ssh/channel-type.c (ptob_fill_input): Check
- `ssh_channel_is_open' first. Consider only SSH_ERROR and
- SSH_EOF as special return values of `scm_channel_poll'; a return
- value of zero is OK. Likewise, don't return EOF when
- `ssh_channel_read' returns zero.
-
-2014-03-02 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * README: Update.
- (Distribution): Add the note about compiled .go files.
- (Installation): Update formatting.
-
-2014-03-01 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/sssh-ssshd.scm: Unset `SSH_AUTH_SOCK' environment variable
- to prevent sssh from asking SSH agent for keys.
- * NEWS: Update.
-
- * examples/ssshd.scm: Rename to `examples/ssshd.scm.in'.
- * examples/sssh.scm: Rename to `examples/sssh.scm.in'.
- * examples/echo/client.scm: Rename to
- `examples/echo/client.scm.in'.
- * examples/echo/server.scm: Rename to
- `examples/echo/server.scm.in'.
- * examples/Makefile.am: Substitute `@GUILE@' with the actual path
- to Guile interpreter in *.in files.
- * NEWS: Update.
-
- * ssh/server-func.c (server-accept): Throw `guile-ssh-error' on
- error.
- * examples/ssshd.scm (main): Handle `guile-ssh-error' on
- `server-accept'.
- * examples/echo/server.scm (main): Likewise.
- * doc/api-servers.texi (Servers): Update `server-accept'
- documentation. Add an example.
- * NEWS: Update.
-
-2014-02-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/sssh-ssshd.scm ("ssshd, start"): Wait for a PID file to
- appear instead of reading the PID from stdout. Improve.
- (*ssshd-cmd*): Set DSA key as well as RSA key.
-
- * examples/ssshd.scm (main): Add `--pid-file' option. Store the
- PID in a file instead of printing it to stdout.
- (print-help-and-exit): Update.
- * NEWS: Update.
-
- * examples/sssh.scm (main): Make `ssh-debug' take the log
- verbosity as an argument.
- (print-help-and-exit): Update.
- * NEWS: Update.
-
- * examples/sssh.scm (print-help): Rename to `print-help-and-exit'.
- Call `exit'. All callers updated.
- (print-version): Rename to `print-version-and-exit'. Call `exit'.
- All callers updated.
- (main): Update.
-
- * examples/ssshd.scm (main): Add `--ssh-debug' option.
- (print-help-and-exit): Likewise.
- * NEWS: Update.
-
-2014-02-15 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * configure.ac: Add check for Guile VM's compiler.
- (AC_CONFIG_FILES): Add `am/Makefile'.
- * Makefile.am (SUBDIRS): Add `am' directory.
- * ssh/Makefile.am [HAVE_GUILE_VM]: Compile Guile modules and
- install produced *.go files.
- * am/guilec: New file.
- * am/snarf (AM_V_SNARF_0): Improve formatting.
- * ssh/.gitignore: New file.
- * NEWS: Update.
-
-2014-02-07 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * examples/README: Update.
- * README: Update.
- * README.org: Add the symlink to `README' to help the GitHub
- recognize the org-mode markup.
- * examples/README.org: Add the symlink to `examples/README.org'
- file for the same reason.
-
-2014-02-05 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Fix formatting a bit.
-
- * ssh/Makefile.am (libguile_ssh_la_SOURCES): Add `base64.h'.
-
- * configure.ac, doc/version.texi, NEWS: Bump version to 0.5.0
-
- * tests/sssh-ssshd.scm: Fix a bug: set `GUILE_LOAD_PATH' so the TC
- will use built files instead of installed ones.
-
- * configure.ac (AC_INIT): Update information about the package.
-
- * NEWS, TODO: Update.
-
- * tests/Makefile.am (SCM_TESTS): Add `sssh-ssshd.scm' TC.
- * tests/sssh-ssshd.scm: New file.
-
-2014-02-03 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * examples/ssshd.scm (close-ports): New procedure.
- (main): Add `--detach' option.
-
-2014-02-02 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- Update requirements.
- * doc/guile-ssh.texi (Installation): Require libssh 0.5.4 or
- 0.5.5.
- * README (Requirements): Update.
- * doc/version.texi: Update.
-
- * examples/ssshd.scm (main): Add command-line options: `--rsakey',
- `--dsakey', `--help'.
- (print-help-and-exit): New procedure.
-
- * NEWS: Update.
-
- * doc/api-messages.texi (Message Handling): Improve description of
- `message-get-type' procedure. Add information about possible
- types and subtypes of a message.
-
-2014-02-01 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * README (Installation): Add information about running of
- self-tests.
- * doc/guile-ssh.texi (Installation): Likewise.
- * doc/version.texi: Update.
-
- * examples/ssshd.scm (poll): Remove.
- (format-debug): Remove.
-
- * src/: Rename to `ssh/'.
- * Makefile.am (SUBDIRS): Update.
- * configure.ac (LIBGUILE_SSH_INTERFACE): Update.
- * tests/Makefile.am: Update.
- (AM_SCM_LOG_FLAGS): Remove extra options.
- * README: Update.
-
- * tests/Makefile.am (SCM_LOG_COMPILER): Remove `--debug' option.
- (AM_TESTS_ENVIRONMENT): Fix setting up of environment variables.
- (SCM_LOG_COMPILER): Move compiler's options to `AM_SCM_LOG_FLAGS'
- variable.
- (AM_SCM_LOG_FLAGS): New variable.
-
- * tests/server-client.scm ("server-message-get"): Improve TC.
-
- * src/message.scm (message?): Export.
- * NEWS: Update.
-
- * tests/server-client.scm ("message-get-type"): New TC.
-
- * tests/Makefile.am: Use pre-built files from the repository for
- tests instead of installed ones.
- (AM_TESTS_ENVIRONMENT, SCM_LOG_COMPILER): Update.
- (EXTRA_DIST): Add tests.
-
-2014-01-31 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * Makefile.am: Move AM tests to `tests/Makefile.am'.
- (SUBDIRS): Add `tests'.
- * tests/Makefile.am: New file.
- * configure.ac (AC_CONFIG_FILES): Add `tests/Makefile'.
-
- * tests/server-client.scm: New test suite.
- * Makefile.am (SCM_TESTS): Add `server-client' TS.
-
- * README (Distribution): Add information about documentation. Fix
- a typo.
-
- * doc/api-messages.texi (Messages): Improve documentation of the
- module.
- * doc/api-servers.texi (Servers): Likewise.
- * doc/api-sessions.texi (Sessions): Likewise.
- * doc/api-keys.texi (Keys): Likewise.
- * doc/api-version.texi (Version): Likewise.
- * doc/api-channels.texi (Channels): Likewise. Add references.
- Improve documentation of `make-channel' and `channel-open-session'
- procedure.
- * doc/api-auth.texi (Auth): Add general description of `(ssh
- auth)' module.
- * doc/api-messages.texi (Message Handling): Add general
- description of a message. Improve description of
- `message-reply-success' procedure.
-
-2014-01-30 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/client-server.scm: Add data transferring TCs.
- (spawn-server-thread-for-dt-test)
- (make-session-for-dt-test, make-channel-for-dt-test): New procedures.
- ("data transferring, string", "data transferring, bytevector"): New TCs.
-
-2014-01-29 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/client-server.scm ("make-channel")
- ("channel-open-session", "channel-request-exec"): New TCs.
-
- * tests/session.scm, tests/server.scm: Update comments.
-
- * tests/auth.scm: Remove.
- * Makefile.am: Likewise.
-
- * doc/api-sessions.texi (Sessions): Add general description of a
- session and its relationships with channels.
-
- * doc/api-messages.texi (Message Handling): Add description for
- `message-reply-success' and for
- `message-channel-request-reply-success' procedure.
-
- * tests/client-server.scm (make-server-for-test): New procedure.
- (spawn-server-thread): New macro.
- (cancel-server-thread): New procedure.
- ("userauth-get-list", "userauth-none!, success")
- ("userauth-none!, denied", "userauth-none!, partial")
- ("userauth-password!, success", "userauth-password!, denied")
- ("userauth-password!, partial", "userauth-pubkey!, success"): New
- TCs.
-
-2014-01-28 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/client-server.scm: Improve.
- ("connect-disconnect"): Rename TC to "connect!, disconnect!".
-
- * tests/server.scm ("server-set!, invalid values"): Don't check
- `bindaddr' with garbage strings because errors will be caught only
- on the subsequent call to `server-listen'. The same for `rsakey'
- and `dsakey' -- errors will be caught on `server-accept' call.
-
- * configure.ac (AM_INIT_AUTOMAKE): Add `color-tests' option.
- * Makefile.am (TESTS): Fix a bug: use value of `SCM_TESTS'
- variable, not its name.
- (tests): Remove target. Use `make check' instead.
- (CLEANFILES): Add auxiliary logs produced by tests.
-
- * tests/server.scm ("server-set!, valid values"): Check `hostkey'
- option.
- ("server-set!, invalid values"): Likewise.
-
- * src/session-func.c (session_options): Remove duplicates that are
- existed for some options: `port-str', `log-verbosity-str',
- `add-identity'.
- (set_option): Likewise.
- * NEWS: Update.
-
- * doc/api-servers.texi: Add copyright notice.
-
- * doc/api-channels.texi (Channels): Add brief description of the
- channel type. Add example of `channel-request-exec' usage. Add
- description of `channel-set-stream!' and `channel-get-stream'
- procedure.
-
- * doc/api-version.texi (Version): Update concepts.
- * doc/api-sessions.texi (Sessions): Likewise.
- * doc/api-messages.texi (Messages, Parsing of Requests): Likewise.
- * doc/api-channels.texi (Channels): Likewise.
- * doc/api-auth.texi (Auth): Likewise.
- * doc/guile-ssh.texi (Top): Add `Concept Index'.
- * doc/indices.texi (Concept Index): New node.
-
- * doc/guile-ssh.texi: Remove `Preface' node.
- (Installation): New node.
- (Acknowledgments): Add new node.
- (Top): Add `Acknowledgments'.
- (Examples): Add information about installed examples.
-
- * doc/api-servers.texi (Servers): Add reference to `Messages' node.
- * doc/api-messages.texi (Message Handling): Add reference to
- `Parsing of Requests' node.
- (Parsing of Requests): Improve documentation for request parsers.
-
- * doc/guile-ssh.texi: Fix the top-level node of the documentation
- so now it integrates nicely into Info system.
-
- * doc/api-auth.texi, api-channels.texi, api-keys.texi,
- api-servers.texi, api-sessions.texi, api-version.texi,
- guile-ssh.texi: Improve.
-
- * doc/api-sessions.texi (Sessions): Improve description of
- `session-set!' procedure.
- * doc/api-servers.texi (Servers): Improve description of
- `server-set!' procedure.
- * doc/version.texi: Update.
-
- * src/server-func.c (set_option) [SSH_BIND_OPTIONS_LOG_VERBOSITY]:
- Use symbols to represent log levels instead of numbers. All
- callers updated.
- (set_sym_opt): New procedure.
- * src/session-func.c: Move `log_verbosity' to `common.c' file.
- * src/common.c, src/common.h: Update.
- * examples/echo/server.scm (*default-log-verbosity*): Set to 'nolog.
- * examples/ssshd.scm (*default-log-verbosity*): Likewise.
- * NEWS: Update.
-
- * tests/client-server.scm ("connect"): Update test to use symbols
- for setting log levels.
- * tests/server.scm ("server-set!, valid values"): Likewise.
- ("server-set!, invalid values"): Likewise.
- ("make-server"): Likewise.
- ("server-listen"): Likewise.
- * tests/session.scm ("session-set!, valid values"): Likewise.
- ("session-set!, invalid values"): Update `log-verbosity' data set
- for the test.
-
- * src/session-func.c (set_option)[SSH_OPTIONS_LOG_VERBOSITY]: Use
- symbols to represent log levels instead of numbers. All callers
- updated.
- (set_sym_opt): New procedure.
- * examples/echo/client.scm (main): Set log verbosity to `nolog'.
- * examples/sssh.scm (main): Update.
-
- * NEWS: Update. Update format. Use org-mode by default. Add
- copyright notice.
-
-2014-01-27 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- Add documentation in Texinfo format.
- * configure.ac: Add `doc/Makefile' to `AC_CONFIG_FILES'.
- * Makefile.am (SUBDIRS): Add `doc' directory.
- * doc/Makefile.am: New file.
- * doc/api-auth.texi, doc/api-channels.texi, doc/api-keys.texi,
- doc/api-messages.texi, doc/api-servers.texi,
- doc/api-sessions.texi, doc/api-version.texi, doc/fdl.texi,
- doc/guile-ssh.texi, doc/indices.texi, doc/version.texi: New files.
-
- * NEWS: Update.
-
- * src/channel-func.c (guile_ssh_channel_get_stream): New procedure.
- * src/channel.scm (channel-get-stream): Export.
-
- * examples/echo/client.scm (main): Print MD5 sum if the server is
- not known.
-
- * tests/client-server.scm: New file.
- * Makefile.am (SCM_TESTS): Add `client-server.scm' test.
-
-2014-01-26 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * tests/server.scm ("server-set!, invalid values", "make-server")
- ("server-listen"): New TCs.
-
- * tests/session.scm ("comparison of sessions"): Fix a typo in TC
- name.
-
- * tests/server.scm ("server?", "comparison of servers"): New TCs.
-
- * tests/.gitignore: New file.
-
- Add some unit tests for Guile-SSH server API.
- * tests/server.scm: New file.
- * tests/dsakey, tests/rsakey: : New files.
- * Makefile.am (SCM_TESTS): Add `server.scm' test.
-
- * tests/session.scm ("session?"): New test case.
- ("comparsion of sessions"): Use one test case instead of two
- separated TCs (equal?/not equal? test).
- ("session-set!, valid values"): Fix bug in TC: try all valid
- values for each option, not only the first one.
-
- * src/server-type.c (guile_ssh_is_server_p): New procedure.
- (guile_ssh_server_close_x): Remove.
-
- * src/server-type.h (guile_ssh_is_server_p): Export.
- * src/server.scm (server?): Export.
- * src/session-type.c (guile_ssh_is_session_p): New procedure.
- * src/session-type.h (guile_ssh_is_session_p): Export.
- * src/session.scm (session?): Export.
- * NEWS: Update.
-
- Add some unit tests.
- * srfi/srfi-64.upstream.scm, srfi/srfi-64.scm: New files.
- * tests/session.scm, tests/auth.scm: New files.
- * Makefile.am (SCM_TESTS): New variable.
- (TESTS): Likewise.
- (TEST_EXTENSIONS): Likewise.
- (AM_TESTS_ENVIRONMENT): Likewise.
- (SCM_LOG_COMPILER): Likewise.
- (AM_SCM_LOG_FLAGS): Likewise.
- (tests): New target.
- (CLEANFILES): Add .log-files produced by tests.
-
-2014-01-23 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/auth.h (guile_ssh_userauth_autopubkey_x): Export.
-
- * NEWS: Update.
-
- * src/key-func.c (guile_ssh_private_key_from_file): Rollback to
- the previous version of the procedure (which doesn't accept a
- passphrase as an argument) due to security considerations. The
- problem is that the passphrase provided by the user will float
- around in (possibly swapped) memory unless it will be collected by
- the GC.
-
- Thanks to Ludovic Courtès <ludo@gnu.org> for pointing this out.
-
- Instead the user must use either a SSH agent (with
- `userauth-autopubkey!' procedure) or privide the passphrase
- interactively (the user will be asked for the passphrase by the
- underlying libssh procedure if the provided key is encrypted).
-
- * src/auth.c (guile_ssh_userauth_autopubkey_x): Likewise.
-
-2014-01-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-type.c: Set default write buffer size to 1 byte.
- (ptob_close): Get size of the buffers from ptab entry.
- (_ssh_channel_to_scm): Likewise.
-
- * examples/echo/client.scm: Improve.
-
- * examples/echo/server.scm (print-help): Update.
- (main): Add `--port' option. Print RSA/DSA key pathes and current
- bind port on the start.
-
- * src/channel-type.c (ptob_fill_input): Rename the argument.
- Update comments.
-
-2014-01-20 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * examples/echo/server.scm (read-all): Fix a bug: return the first
- read line if there is no more data to read.
- * examples/echo/client.scm (read-all): Likewise.
-
- * examples/echo/server.scm (print-help): New procedure.
- (main): Handle command-line options.
-
-2014-01-19 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message-func.c
- (guile_ssh_message_channel_request_open_reply_accept): Fix a bug:
- pass a `ssh_channel' instance to `_ssh_channel_to_scm' procedure
- instead of pointer to the instance.
-
-2014-01-18 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/key-func.c: Update copyright dates.
- (guile_ssh_private_key_from_file): Improve
- assertion of passphrase. Improve docstring and comments.
-
- * src/auth.c, src/auth.scm: Update copyright dates.
-
- * examples/sssh.scm (main): Use `userauth-autopubkey!' for
- authentication.
-
- * src/auth.c (guile_ssh_userauth_autopubkey_x): New procedure.
- * src/auth.scm (userauth-autopubkey!): Export.
-
-2014-01-12 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * examples/sssh.scm (main): Ask the user for a passphrase.
- * src/key-func.c (guile_ssh_private_key_from_file): Change
- argument list: add optional argument `passphrase'.
-
-2014-01-11 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * examples/ssshd.scm (handle-channel): Use `read-all' instead of
- `channel-read'. Update.
- (handle-request-exec): Use `display' instead of `channel-write'.
- (shell-loop): Use `read-all' instead of `channel-read' and
- `channel-poll'. Use `display' instead of `channel-write'.
- (main): Close a channel before disconnecting the session.
- * examples/sssh.scm (read-all): New procedure.
- (main): Use `read-all' instead of `read-line'. Use `char-ready?'
- instead of `channel-poll'.
-
-2014-01-07 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * TODO: Update.
-
- * src/channel-type.c (ptob_input_waiting): Improve error checking.
- (ptob_fill_input): Call `ssh_channel_poll' to update underlying
- SSH channel state and check whether we have data to read or not.
- Check if the channel is open.
-
- * examples/echo/server.scm: Update comments.
- (read-all): New procedure.
- (main): Update. Catch exceptions. Use `write-line' instead of
- `display'.
- * examples/echo/client.scm: Update comments.
- (read-all): New procedure.
- (main): Update. Use `char-ready?' instead of `channel-poll'. Use
- `write-line' instead of `display'.
-
- * src/channel-func.c (guile_ssh_channel_open_session): Update
- the documentation string.
- * src/channel-type.c: Update comments.
- * src/channel.scm: Likewise.
-
- * src/channel-type.c (_ssh_channel_to_scm): Don't set
- `SCM_BUFLINE' bit.
- (ptob_fill_input, ptob_flush, ptob_close, print_channel): Remove
- debug traces.
- (ptob_fill_input): Return EOF on `SSH_AGAIN'.
-
-2014-01-06 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-type.c (ptob_close): Free the underlying SSH
- channel.
- * src/channel.scm (free-channel!): Remove.
- * src/channel-func.c (guile_ssh_channel_free): Remove.
-
- * src/channel-func.c (guile_ssh_channel_set_stream_x): New
- procedure.
- * src/channel.scm: Remove unneeded procedures.
- Export `channel-set-stream!'.
-
- * src/channel-type.c (_ssh_channel_to_scm): Don't set `SCM_OPN'
- bit on the newly created channel.
- * src/channel-func.c (guile_ssh_channel_open_session): Set
- `SCM_OPN' bit on the channel.
- * src/message-func.c
- (guile_ssh_message_channel_request_open_reply_accept): Likewise.
-
- * src/channel-type.c (ptob_write): Improve error handling. Add a
- comment. Remove debug information.
- (ptob_input_waiting): Change `FUNC_NAME' string.
-
- * src/channel-func.c (guile_ssh_channel_pool)
- (guile_ssh_channel_close): Remove.
- * src/channel-func.h: Likewise.
-
- * src/channel-type.c (ptob_flush): Improve.
- (ptob_close): Flush a port before closing its SSH channel.
-
-2014-01-05 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-type.c (ptob_fill_input): Improve.
-
-2014-01-04 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * examples/echo/server.scm (main): Use `char-ready?' predicate
- instead of the custom procedure `channel-poll'.
-
- * src/channel-type.c (ptob_close): New procedure.
- (print_channel): Don't try to get state of a channel if its port
- is closed because it leads to segfaults. Closed port means closed
- channel.
- (init_channel_type): Register `ptob_close' with
- `scm_set_port_close'.
- (ptob_input_waiting): Call `ssh_channel_poll'.
- (init_channel_type): Register callback with
- `scm_set_port_input_waiting' procedure.
-
- * examples/echo/client.scm (main): Call `close' on a channel.
- * examples/echo/server.scm (main): Likewise.
-
-2014-01-02 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- Use Guile port API to implement Guile-SSH channels.
- * src/channel-func.c (guile_ssh_channel_read)
- (guile_ssh_channel_write): Remove.
- * src/channel-func.h (guile_ssh_channel_read): Remove.
- * src/channel-type.c (ptob_fill_input, ptob_write, ptob_flush)
- (ptob_input_waiting, _ssh_channel_to_scm): New procedures.
- (guile_ssh_make_channel): Use `_ssh_channel_to_scm'.
- (_scm_to_ssh_channel): Use `SCM_STREAM' macro.
- (init_channel_type): Register Guile port callbacks.
- * src/channel-type.h (_ssh_channel_to_scm): Export.
- * src/channel.scm (channel-read, channel-write): Remove.
- * src/message-func.c
- (guile_ssh_message_channel_request_open_reply_accept): Use
- `_ssh_channel_to_scm'.
- * examples/echo: Add to the repository.
- * examples/Makefile.am: Add echo server/client example.
- * examples/README: Update.
- * examples/sssh.scm: Update.
- * README: Update.
-
-2013-11-26 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * configure.ac, NEWS: Bump version to 0.4.0
-
-2013-11-25 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * examples/ssshd.scm (handle-req-channel): Handle
- `channel-request-env'.
- (main): Improve handling of `request-channel'.
- Print path to a key and the port number on the start.
-
-2013-11-23 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/base64.c (bin_to_base64): Change type of the second argument
- to int to prevent an infinite loop due to wrapping of the size_t
- value.
- * src/base64.h: Update.
- * src/key-func.c (guile_ssh_public_key_to_string): Change type of
- `key_len'. Rename the argument. Update comments.
- * NEWS: Update.
-
- * examples/sssh.scm (*option-spec*): Add `ssh-debug' switch.
-
- * README: Update.
-
- * examples/Makefile.am (dist_examples_DATA): Add missed
- `ssshd.scm'.
- (AM_CFLAGS): Remove.
-
-2013-11-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Update.
-
- * src/channel-func.h: Add `guile_ssh_set_set_pty_size_x'.
- * src/channel-func.c (guile_ssh_channel_set_pty_size_x): New
- procedure.
- * src/channel.scm: Export `channel-set-pty-size!'.
-
-2013-11-21 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message-type.c (print_message): New procedure.
- (init_message_type): Set the printer procedure for the smob.
- * NEWS: Update.
-
-2013-11-20 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * build_aux/: Rename to `build-aux'. Configuration files are
- updated.
- * configure.ac: Update.
- * Makefile.am: Update.
-
- * src/session-type.c (PRINT_DEBUG): Remove the macro.
-
-2013-11-19 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-func.c (guile_ssh_channel_request_pty)
- (guile_ssh_channel_request_shell): New procedures.
- * src/channel.scm: Export `channel-request-pty' and
- `channel-request-shell'.
-
- * TODO, README, AUTHORS: Update.
- * NEWS: Update. Fix a typo.
-
-2013-11-18 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-func.c (guile_ssh_channel_read): Fix a memory
- freeing error: use `scm_from_locale_string' instead of
- `scm_take_locale_string', call `scm_gc_free' on allocated buffer.
- Improve error handling. Add comments.
-
- * examples/sssh.scm (main): Separate libssh debug and the program
- debug mode. Print SSH channels.
-
- * src/channel-type.c (print_channel): New procedure.
- (init_channel_type): Set the printer procedure for the smob.
- * NEWS: Update.
-
-2013-11-17 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * TODO: Update.
-
-2013-11-16 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * m4/Makefile.am, m4/guile.m4, m4/lib-link.m4: New files.
- * Makefile.am: Add "build_aux" and "m4" to `SUBDIRS'.
- * configure.ac: Use `AC_CONFIG_MACRO_DIR' to set m4 dir.
- Add "m4/Makefile" to `AC_CONFIG_FILES'.
-
- * Makefile.am (ACLOCAL_AMFLAGS): Set variable.
- * src/Makefile.am (AM_CFLAGS): Remove.
- (libguile_ssh_la_CPPFLAGS, snarfcppopts): Add `GUILE_CFLAGS'.
-
- * INSTALL: Update.
-
- * build_aux/Makefile.am: New file.
- * configure.ac: Store auxiliary build files in `build_aux'
- directory. Add "build_aux/Makefile" to `AC_CONFIG_FILES'.
-
-2013-11-09 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * configure.ac: Add check for Guile-2.0.
-
-2013-11-08 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * configure.ac: Use AC_COPYRIGHT to store copyright information.
-
-2013-11-06 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * configure.ac: Use `PKG_CHECK_MODULES' macro instead of
- `AC_SEARCH_LIBS' to check if the needed version of libssh is
- installed.
-
-2013-11-03 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/session-func.c (guile_ssh_session_set): Use
- `_scm_to_ssh_const'. Throw guile-ssh-error on error. Make return
- value undefined.
-
- * NEWS, TODO: Update.
-
- Move common procedures for converting SCM values to SSH contants
- and vice versa to common.c file.
- * src/common.c, src/common.h: New files.
- * src/message-func.c (_ssh_const_to_scm): Remove.
- * src/server-func.c (guile_ssh_server_set_x): Use `_scm_to_ssh_const'.
- * src/Makefile.am (libguile_ssh_la_SOURCES): Add common.{c,h}.
-
- * src/message.scm (message-reply-success): New procedure.
- * examples/ssshd.scm (handle-req-auth, handle-req-channel, main):
- Use `message-reply-success'.
-
- * examples/ssshd.scm (handle-req-auth): Handle public key state.
-
- * src/message.scm (message-auth-reply-public-key-success): Rename
- to `message-auth-reply-public-key-ok'.
- * src/message-func.c
- (guile_ssh_message_auth_reply_public_key_success): Rename to
- `guile_ssh_message_auth_reply_public_key_ok'.
-
-2013-11-02 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message.scm (auth-req:pubkey-state): New procedure.
- * src/message-func.c (get_auth_req): Store public key state in the
- vector.
-
- * examples/ssshd.scm: Add to the repository.
- * examples/README: Update.
-
- * src/server-func.c (guile_ssh_server_listen_x): Rename to
- `guile_ssh_server_listen'.
- * server.scm (server-listen!): Rename to `server-listen'.
-
- Fix a error with double free of memory. The problem was that SSH
- keys are usually freed along with the object that contains them.
- For example, if a key is gotten from a SSH session it will be
- freed along with the session. Not if we try to free the memory
- taken by the key then we get "double free" error. To prevent it
- the new field in the key smob structure is introduced to track who
- is responsible for freeing the key.
- * src/key-type.h (key_data): Add "is_to_be_freed" field.
- * src/key-type.c (free_key_smob): Check if the key must be freed.
- * src/key-func.c (guile_ssh_private_key_from_file)
- (guile_ssh_public_key_from_private_key)
- (guile_ssh_public_key_from_file): Set "is_to_be_freed" field for
- the key.
- * src/message-func.c (get_auth_req): Mark a key that it must not
- be freed by GC.
-
-2013-10-28 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/key-type.c (free_key_smob): Fix warnings.
- * src/key-func.c (guile_ssh_public_key_to_string): Likewise.
-
- * src/key-type.c (free_key_smob): Use `publickey_free' instead of
- `ssh_key_free'.
-
- * Makefile.am (SUBDIRS): Add examples/
- * configure.ac: Add examples/Makefile
- * examples/: Add to the repository.
-
- * src/server.scm (server-set-message-callback!): Remove.
- * src/server-func.c (callback)
- (guile_ssh_server_set_message_callback_x): Remove.
-
-2013-10-27 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message-func.c: Update comments. Re-organize order of
- procedures.
- (get_service_req, get_channel_open_req): New procedures.
- (guile_ssh_message_get_req): Handle SSH_REQUEST_SERVICE and
- SSH_REQUEST_CHANNEL_OPEN.
-
- * src/message.scm (service-req:service, channel-open-req:orig)
- (channel-open-req:orig-port, channel-open-req:dest)
- (channel-open-req:dest-port): New procedures.
-
- * src/message-func.c (guile_ssh_message_service_reply_success)
- (guile_ssh_message_auth_reply_success)
- (guile_ssh_message_auth_reply_public_key_success)
- (guile_ssh_message_channel_request_open_reply_accept): Add
- description.
-
-2013-10-26 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message-func.c (guile_ssh_message_service_reply_success):
- New procedure.
- * src/message.scm: Add commentary.
- (message-service-reply-success): Export.
-
-2013-10-20 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message.scm (exec-req:cmd): Export.
-
-2013-10-19 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message.scm: Unify way of getting information from requests.
- (auth-req:user, auth-req:password, auth-req:pubkey, pty-req:term)
- (pty-req:width, pty-req:height, pty-req:pxwidth)
- (pty-req:pxheight, env-req:name, env-req:value, exec-req:cmd)
- (global-req:addr, global-req:port): New procedures.
- * src/message-func.c (get_auth_req, get_pty_req, get_env_req)
- (get_exec_req, get_global_req, guile_ssh_message_get_req): New
- procedures.
- (guile_ssh_message_auth_get_user)
- (guile_ssh_message_auth_get_password)
- (guile_ssh_message_auth_get_public_key)
- (guile_ssh_message_exec_get_command): Remove.
-
- * src/message-func.c (_scm_member_p): New procedure.
- (guile_ssh_message_auth_set_methods_x): Improve.
-
- Improve printing of SSH keys.
- * src/key-type.c (print_key): New procedure.
- (init_key_type): Register the callback for printing.
- (guile_ssh_key_get_type): Use `ssh_privatekey_type' instead of
- `ssh_key_type'.
-
-2013-10-17 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message-func.c (guile_ssh_message_exec_get_command): New
- procedure.
- * src/message.scm (message-exec-get-command): Export.
-
-2013-10-10 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/server-func.c: Fix a comment.
- (guile_ssh_server_listen_x): Fix a typo.
-
- Unificate the way of server configuration: use `server-set!' to set
- server to the blocking/nonblocking mode.
- * src/server-func.c (set_option): Handle 'blocking-mode
- (guile_ssh_server_set_blocking_x): Remove procedure.
-
- * src/server.scm (server-set-blocking!): Remove procedure.
- (make-server): Handle "blocking-mode" keyword.
-
- * src/server-func.c (set_option): Don't use TYPE macro.
- (TYPE): Remove the macro.
- (set_blocking_mode): New procedure.
-
-2013-09-29 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message-func.c (guile_ssh_message_auth_get_password): Return
- a password as a string instead of a symbol.
-
-2013-09-26 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/server-type.c (guile_ssh_make_server): Change Scheme name to
- `%make-server'.
- * src/server.scm (make-server): New procedure.
-
-2013-09-25 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/session-func.c (guile_ssh_connect): Rename to
- `guile_ssh_connect_x'. Throw an exception on error.
- (guile_ssh_authenticate_server): Throw an exception on error.
-
- * src/session-func.h: Add `guile_ssh_connect_x'. Add
- `guile_ssh_authenticate_server'.
-
- * src/session-type.c (guile_ssh_make_session): Change Scheme name
- to `%make-session'.
- * src/session.scm (make-session): New procedure.
-
-2013-09-24 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/message-func.c (guile_ssh_message_reply_default)
- (guile_ssh_message_auth_reply_success)
- (guile_ssh_message_auth_reply_public_key_success)
- (guile_ssh_message_channel_request_reply_success)
- (guile_ssh_message_auth_set_methods_x): Throw an exception on
- error. Make return value undefined. Change the description.
- * src/server-func.c (guile_ssh_server_set_x)
- (guile_ssh_server_listen_x, guile_ssh_server_handle_key_exchange):
- Likewise.
-
- * src/session-func.c (guile_ssh_write_known_host): Throw an
- exception on error. Make return value undefined.
- * src/channel-func.c (guile_ssh_channel_open_session)
- (guile_ssh_channel_request_exec, guile_ssh_channel_request_env)
- (guile_ssh_channel_close): Likewise.
-
-2013-09-22 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/server-func.c (guile_ssh_server_accept_x): Rename to
- `guile_ssh_server_accept'. Change Scheme name to `server-accept'.
- Change the function so it has no side effects.
- (guile_ssh_server_listen): Rename to `guile_ssh_server_listen_x'
- because of side effects. Change Scheme name to `server-listen!'.
-
- * src/server-func.h: Update.
- * src/server.scm: Export `server-accept'. Rename `server-listen'
- to `server-listen!'.
-
- * src/message-func.c
- (guile_ssh_message_channel_request_reply_success): New procedure.
- * src/message.scm (message-channel-request-reply-success): Export.
-
- * src/session-func.c (guile_ssh_write_known_host): Fix the wrong
- Scheme name: rename to `write-known-host!'.
- * src/session.scm: Likewise.
-
-2013-09-21 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-func.c (guile_ssh_channel_write): New procedure.
- * src/channel.scm: Likewise.
-
- * NEWS: Update.
-
- * src/session-func.c (session_options): Don't use TYPE macro to
- get names of SSH constants.
- (set_option): Likewise.
- (TYPE): Remove the macro.
-
- * src/auth.c, src/auth.scm, src/channel-func.c,
- src/channel-type.c, src/channel.scm, src/key-func.c,
- src/key-type.c, src/key.scm, src/session-func.c,
- src/session-type.c, src/session.scm, src/version.c,
- src/version.scm, src/message-func.c, src/message-type.c,
- src/message.scm, src/server-func.c, src/server-type.c,
- src/server.scm: Remove "ssh:" prefix from functions names. Update
- comments.
-
- Implement the SSH message type.
- * src/Makefile.am: Add message* files.
- * src/server-func.c (guile_ssh_server_set_message_callback_x)
- (guile_ssh_server_message_get, callback): New procedures.
- * src/server.scm (ssh:server-set-message-callback!)
- (ssh:server-message-get): Export.
- * src/message-func.c, src/message-func.h, src/message-main.c,
- src/message-type.c, src/message-type.h, src/message.scm: New
- files.
-
-2013-08-28 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- Implement the basic server functionality.
- * src/server-func.c, src/server-func.h, src/server-main.c,
- src/server-type.c, src/server-type.h, src/server.scm: New files.
- * src/Makefile.am: Add server related sources.
-
-2013-08-26 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/session-func.c: Use a short macro for getting long SSH
- options names.
- (TYPE): New macro.
- (set_option): Use TEST macro.
-
-2013-08-25 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- Use the Guile magic snarfer to make guile_ssh_* functions visible
- to the Scheme world. Use functions names as they seen from Scheme
- instead of C names in type check macros.
- * src/auth.c, src/channel-func.c, src/channel-type.c,
- src/key-func.c, src/key-type.c, src/session-func.c,
- src/session-type.c, src/version.c: Use snarfing macros.
- * src/Makefile.am: Use guile-snarf to generate needed files. Fix
- some comments.
- * configure.ac: Use AM_SILENT_RULES.
- * .gitignore: Ignore files produced by the magic snarfer.
-
-2013-07-29 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-func.c (guile_ssh_channel_read): Fix memory
- corruption during freeing of the allocated memory. Initialize
- allocated memory with zeroes. Don't use dynwind.
- * NEWS: Update.
-
-2013-07-20 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * NEWS: Update.
-
-2013-07-19 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/session-func.c: Fix a typo in the option symbol:
- 'strcthostkeycheck -> 'stricthostkeycheck
- (set_bool_opt): Fix the assertion for the third argument: expect
- a boolean value instead of an integer value.
-
-2013-07-14 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * configure.ac, NEWS: Bump version to 0.3.1
-
- Fix several bugs.
- * src/threads.c, src/threads.h: Fix a bug with variable
- initialization: use constant value to initialize SSH threads
- state.
- * src/Makefile.am (libguile_ssh_la_SOURCES): Add missed files.
- (libguile_ssh_la_LDFLAGS): Add missed flags.
-
- * src/channel-type.c (guile_ssh_make_channel): Cleanup the code.
-
- * README: Add info about dependencies.
- * TODO: Update.
-
- Make the library thread-safe.
- * src/channel-main.c (init_channel): Initialize threads.
- * src/key-main.c (init_key): Likewise.
- * src/session-main.c (init_session): Likewise.
- * src/threads.c, src/threads.c: New files.
-
-2013-07-13 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- Use a simpler method to GC'ing of SSH channels. The idea is that
- we don't have to free resources allocated by a channel during its
- GC'ing, because these resources will be freed anyway when the
- related SSH session is GC'ed. However, to be able to control
- allocating of resources more precisely, introduce new procedure
- ssh:free-channel! that can be used for freeing resources allocated
- by a channel.
- * src/channel-func.c (guile_ssh_channel_free): New procedure.
- (init_channel_func): Add ssh:free-channel!
- * src/channel-type.c (free_channel): Don't free channel resourses.
- (guile_ssh_make_channel): Remove extra code.
- * src/channel-type.h: Remove the extra field from channel_data.
- * src/channel.scm: Add ssh:free-channel!
- * src/session-type.c (free_session): Remove extra code.
-
- * configure.ac, NEWS: Bump version to 0.3
-
- Implement equalp callbacks for smobs.
- * src/channel-type.c (equalp_channel): New procedure.
- (init_channel_type): Register the equalp callback.
- * src/key-type.c (equalp_key): New procedure.
- (init_key_type): Register the equalp callback.
- * src/session-type.c (equalp_session): New procedure.
- (init_session_type): Register the equalp callback.
-
- * src/session-type.c (_scm_to_ssh_session): New procedure.
- (free_session): Use _scm_to_ssh_session.
- * src/session-type.h: (_scm_to_ssh_session): New procedure.
- * src/key-type.c (free_key_smob, guile_ssh_key_get_type): Use
- _scm_to_ssh_key to get smob data.
- (guile_ssh_is_public_key_p): Likewise. Use _public_key_p to check
- the key type.
- (guile_ssh_is_private_key_p): Use _scm_to_ssh_key. Use
- _private_key_p to check the key type.
- (_scm_to_ssh_key, _private_key_p, _public_key_p): New procedures.
- * src/key-type.h (_scm_to_ssh_key, _private_key_p, _public_key_p):
- New procedures.
- * src/channel-type.c (_scm_to_ssh_channel): New procedure.
- (guile_ssh_make_channel): Use _scm_to_ssh_session.
- * src/channel-type.h (_scm_to_ssh_channel): New procedure.
- * src/auth.c (guile_ssh_userauth_pubkey)
- (guile_ssh_userauth_password, guile_ssh_userauth_none)
- (guile_ssh_userauth_get_list): Use _scm_to_* to get smob data and
- predicates related so corresponding types to check their types.
- Clean up the code.
- * src/session-func.c (guile_ssh_blocking_flush)
- (guile_ssh_session_set, guile_ssh_connect, guile_ssh_disconnect)
- (guile_ssh_get_protocol_version, guile_ssh_get_error)
- (guile_ssh_authenticate_server, guile_ssh_get_public_key_hash)
- (guile_ssh_write_known_host, guile_ssh_is_connected_p): Use
- _scm_to_ssh_session.
- * src/key-func.c (guile_ssh_public_key_to_string)
- (guile_ssh_private_key_from_file)
- (guile_ssh_public_key_from_private_key)
- (guile_ssh_public_key_from_file): Use _scm_to_ssh_key to get smob
- data. Use _private_key_p and _public_key_p predicates to check
- smob type.
- * src/channel-func.c (guile_ssh_channel_open_session)
- (guile_ssh_channel_request_exec, guile_ssh_channel_request_env)
- (guile_ssh_channel_pool, guile_ssh_channel_read)
- (guile_ssh_channel_close, guile_ssh_channel_is_open_p)
- (guile_ssh_channel_is_eof_p): Use _scm_to_ssh_channel.
-
- * src/channel-func.c (guile_ssh_channel_close): Fix return value:
- return SCM_BOOL_T if channel is closed successfully, SCM_BOOL_F
- otherwise.
-
- Fix GC'ing of SSH objects: the program doesn't crashes anymore
- during GC'ing of channels and keys.
- * src/session-type.c (free_session): Mark all related channels as
- freed.
- (guile_ssh_make_session): Initialize the channels array.
- * src/key-type.c (mark_key_smob): Fix smob marking.
- * src/channel-type.c (free_channel): Check if the channel has been
- already freed along with the related SSH session.
- (guile_ssh_make_channel): Store the reference to the channel in
- the array of channels related to the SSH session.
- * src/channel-type.h: Add is_channel_alive field to channel_data.
- * TODO: Add to the repository.
-
-2013-06-23 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/key-type.h: Improve storing of public keys represented as a
- SSH string -- store the key type along with the key itself.
- * src/key-func.c (guile_ssh_public_key_from_file): Likewise.
- (public_key_to_ssh_string): Update.
- * src/key-type.c (guile_ssh_key_get_type): New function.
- (scm_from_ssh_key_type): New static function.
- (free_key_smob): Update.
- (init_key_type): Define ssh:get-key-type.
- * src/key.scm: Export ssh:get-key-type.
-
-2013-06-16 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/auth.c (guile_ssh_userauth_get_list): Fix a bug with wrong
- scm_append call during making the list.
-
- Implement ssh:userauth-get-list that returns a list of available
- authentication methods for a given SSH session.
- * src/auth.c (guile_ssh_userauth_get_list): New function.
- (init_auth_func): Define ssh:userauth-get-list.
-
- * src/auth.h: Likewise.
- * src/auth.scm: Add ssh:userauth-get-list.
-
-2013-06-15 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/key-func.c: Fix a comment.
-
- Improve working with public keys. Because some libssh functions
- working with public keys represented as a ssh_string instead of a
- ssh_public_key, we try to hide this peculiarity so all kinds of
- keys are look like a key_smob from the Scheme perspective.
- * src/key-type.h: Add ssh_public_key_str to key_data struct.
- * src/key-type.c (free_key_smob): Handle public keys that
- represented by a ssh_string.
- (guile_ssh_is_public_key_p): Likewise.
- * src/key-func.c (public_key_to_ssh_string): New function.
- (guile_ssh_public_key_to_string): Fix converting a public key.
- (guile_ssh_public_key_from_file): Make it work.
-
- * src/key-func.h: Add public_key_to_ssh_string.
- * src/Makefile.am: Add base64.c
- * src/base64.c, src/base64.h: New files.
-
-2013-06-08 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-func.c: Include error.h
- (guile_ssh_channel_read): Initialize obtained_data with
- SCM_BOOL_F
- * src/auth.c: Include error.h
- (guile_ssh_userauth_pubkey): Initialize strings with null.
-
- * src/session-func.c (guile_ssh_connect)
- (guile_ssh_blocking_flush): Return 'error by default.
-
- * src/session-func.c (set_uint32_opt): Fix wrong variable
- assignment.
-
- * src/Makefile.am (AM_LDFLAGS): Fix flags.
- (AM_CFLAGS): Likewise. Add "-Wall" and "-g" flags.
-
- * src/key-func.c (guile_ssh_public_key_to_string): Fix SCM_ASSERT
- call.
-
-2013-05-26 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/channel-func.c (guile_ssh_channel_read): Fix call of
- undefined function.
- * src/key-func.c (guile_ssh_private_key_from_file): Likewise.
- Improve error handling.
-
-2013-05-25 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * configure.ac, NEWS: Bump version to 0.2
-
- * src/channel-func.c (guile_ssh_channel_is_eof_p)
- (guile_ssh_channel_is_open_p, guile_ssh_channel_close)
- (guile_ssh_channel_read, guile_ssh_channel_pool)
- (guile_ssh_channel_request_env, guile_ssh_channel_request_exec)
- (guile_ssh_channel_open_session): Add check for smob type.
-
- * src/auth.c: Fix comment.
- * src/key-func.c: Add comments.
-
- * src/auth.h, src/channel-func.h, src/channel-type.h, src/error.h,
- src/key-func.h, src/key-type.h, src/session-func.h,
- src/session-type.h: Mark prototypes as external functions.
- Simplify SCM functions arg list.
-
-2013-05-24 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/auth.c (guile_ssh_userauth_none): New function.
- (ssh_auth_result_to_symbol): New static function.
- (guile_ssh_userauth_pubkey): Use ssh_auth_result_to_symbol to
- convert auth result to a Scheme symbol.
- (guile_ssh_userauth_password): Likewise.
- * src/auth.scm: Export ssh:userauth-none!
-
- * src/session-func.c: Add comments.
- (set_option): Implement missed options.
- (set_port_opt): New static function.
-
-2013-05-19 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/session.scm: Export ssh:get-error
-
- * src/session-func.c (set_uint64_opt): Remove extra semicolon.
-
- * .gitignore: Update.
-
- * src/session-type.c (guile_ssh_make_session): Return SCM_BOOL_F
- on error.
-
- * Clean up the code. Fix coding style.
-
- * src/auth.scm: Fix comments.
-
- * Improve the library.
- Quite stable version, but some functions are not implemented yet.
-
-2013-05-12 Artyom Poptsov <poptsov.artyom@gmail.com>
-
- * src/ssh-error.c: Include libguile.h
-
- * src/session.c (guile_ssh_blocking_flush): Fix a misspelled
- function name: scm_blockign_flush -> ssh_blocking_flush
- * src/channel.c (guile_ssh_channel_poll): Fix a misspelled
- function name: scm_is_boolean -> scm_is_bool
- (guile_ssh_channel_read): Likewise. Fix variable names.
-
- * COPYING, INSTALL, NEWS: Add to the repository.
-
- * AUTHORS: Add to the repository.
-
- * README: Add to the repository.
-
- * src/Makefile.am: Include Scheme files in the distribution.
+Normally a ChangeLog is generated at "make dist" time and available in
+source tarballs.
+If not, see the Git commit log at <https://github.com/artyom-poptsov/guile-ssh>.