Revision history for Net-LibSSH
0.003 2026-09-01 00:06:26Z
- SFTP integration test now stats /etc/passwd instead of /etc/hostname, so
it passes on FreeBSD smokers where /etc/hostname does not exist (GH #1)
- connect() on a session that has already been disconnected now returns 0
immediately, with error() saying the session was disconnected and cannot
be reconnected — instead of waiting out the connection timeout for
libssh's misleading "Timeout connecting to ..."; disconnect() on a
session that was never connected still leaves it connectable
- Channel methods (exec, read, write, send_eof, eof, exit_status) now
croak instead of operating on a closed channel; close() stays idempotent
- Fix segfault when a channel or SFTP session is used after the session
variable it was opened on has been undef-ed or reassigned; the session
now stays alive until the last object opened on it is gone
- Fix segfault when a channel or SFTP session is used, or merely dropped,
after disconnect(); ssh_disconnect() frees those objects inside libssh,
so they are now invalidated instead of left dangling. Their methods
croak with "session was disconnected", close() on such a channel stays a
harmless no-op, and nothing is leaked on the way
0.002 2026-03-29 14:49:04Z
- Refactor XS internals: replace sv_setref_pv/DESTROY with
sv_magicext + MGVTBL (svt_free) for automatic GC-driven cleanup
- Typemap INPUT now uses mg_findext with type-specific vtable pointer
for strict type checking at the XS boundary
- No user-visible behaviour change
0.001 2026-03-29 02:46:04Z
- Initial release
- Session: connect, auth_password, auth_publickey, auth_agent
- Channel: exec, read, write, eof, exit_status
- SFTP: stat (graceful undef when SFTP subsystem absent)