diff options
| author | Artyom V. Poptsov <poptsov.artyom@gmail.com> | 2015-06-13 15:50:24 +0300 |
|---|---|---|
| committer | Artyom V. Poptsov <poptsov.artyom@gmail.com> | 2015-06-13 15:50:24 +0300 |
| commit | 83b0c0a826bfc201c01c67e3c9f821017c7cc659 (patch) | |
| tree | ac441f315111423154faae962a0e61017623ed9a /ChangeLog | |
| parent | tests/client-server.scm (start-server/dt-test): Fix a bug (diff) | |
| download | guile-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-- | ChangeLog | 2191 |
1 files changed, 3 insertions, 2188 deletions
@@ -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>. |
