https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43088
--- Comment #5 from David Nind <[email protected]> --- Created attachment 202118 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202118&action=edit Bug 43088: Add a consistent current_directory() accessor to Koha::File::Transport FTP, Local and SFTP list_files() were unified to return the same flat shape, but consumers still had no portable way to ask a transport for its current remote directory - the underlying libraries' own methods of that name don't agree on what "cwd" means. Net::SFTP::Foreign's cwd() is a pure read-only accessor, but Net::FTP's cwd() is a mutator: called with no argument it defaults to "/", issues a real CWD command, and returns a boolean rather than a path. The koha-plugin-transport-browser plugin discovered this the hard way: it read $transport->{connection}->cwd directly to capture the initial working directory, which happened to work for SFTP but silently reset the FTP connection to root and captured "1" (a boolean) as the "path" on every request, breaking directory navigation for FTP transports. Add a public current_directory() method to the Koha::File::Transport base class, following the same connect-on-demand pattern as list_files()/upload_file()/etc, with a _current_directory() hook each subclass implements using its own real read-only accessor: pwd() for FTP, cwd() for SFTP, and the tracked {current_directory} (falling back to download_directory) for Local. Consumers should use this instead of reaching into transport internals. Test plan: 1. prove t/db_dependent/Koha/File/Transport.t t/db_dependent/Koha/File/Transport/FTP.t t/db_dependent/Koha/File/Transport/Local.t t/db_dependent/Koha/File/Transport/SFTP.t => All tests successful, including the new current_directory() tests subtest in each transport test file, which mock the underlying libraries (Net::FTP / Net::SFTP::Foreign) to assert each backend reads its own real read-only accessor. 2. koha-qa.pl -v 2 --more-tests => [PASS] for all four changed modules, no critic/pod warnings. Signed-off-by: David Nind <[email protected]> -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list -- [email protected] To unsubscribe send an email to [email protected] website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
