summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-11-25add -P, equivalent to -p for just compatibilityRyo Nakamura
and add a test case for -p and -P
2023-11-25add -I interval optionRyo Nakamura
-I INTERVAL option inserts sleep for interval (seconds) between SSH connection attempts (issue #7).
2023-11-01fix parsing user@host:path.Ryo Nakamura
This commit fixes issue #6. Now mscp command correctly parses [x::x] IPv6 address notation in hostname.
2023-11-01main: adopt rolling average of recent eight bps values to calculate ETARyo Nakamura
2023-11-01main: call only mscp_stop() when receives sigintRyo Nakamura
2023-11-01write total transferred bytes and number of filesRyo Nakamura
at the end of output when serverity is notice.
2023-11-01change msg: thread[%d] to thread:%dRyo Nakamura
2023-11-01print 1st decimal point in the progress barRyo Nakamura
2023-11-01add -g option to specify TCP cc algorithmRyo Nakamura
This commit introduce SSH_OPTIONS_CCALGO option to the libssh patch and add -g CONGESTION option to mscp.
2023-09-08fix: use off_t for lseekRyo Nakamura
2023-08-30fix libmscp python bindings.Ryo Nakamura
- fix libmscp install path by setup.py with data_files - fix return values of mscp_get_stats() - add examples directory for mscp python binding
2023-08-30fix mscp_opendir, do not use `tls_sftp`, use `sftp` isntead.Ryo Nakamura
The fixed issue causes mscp_opendir wrongly calls opendir() for local when tls_sftp is NULL although sftp is not NULL.
2023-08-04fix usage: "none" is not supported for -FRyo Nakamura
2023-08-04introduce git-based versioningRyo Nakamura
MSCP_BUILD_VERSION (`git describe --tags --dirty --match "v*"`) is passed through include/mscp_version.h.in and cmake. When git is failed, use VERSION file instead (for building from source tar balls that excludes .git).
2023-08-04do not set O_TRUNC when opening destination file.Ryo Nakamura
It prevents `mscp localhost:hoge ~/hoge` from truncating the source file. See https://bugzilla.mindrot.org/show_bug.cgi?id=3431. https://github.com/upa/mscp/issues/1
2023-08-04add -F ssh_config optionRyo Nakamura
2023-08-03use pseudo glob/globfree for remote-glob when muslRyo Nakamura
musllibc does not implement GLOB_ALTDIRFUNC, so do not call glob for remote sides when libc is musl. test_e2e.py skips test_glob_src_path when running on alpine.
2023-08-03add glob for source pathsRyo Nakamura
https://github.com/upa/mscp/issues/3
2023-08-03cleanup wrappers for file operationsRyo Nakamura
Previously wrapper functions for open(), opendir(), and stat(), etc, are implemneted in path.h, and now they are in fileops.h and fileops.c. This commit is a reparation for remote glob.
2023-05-07mscp: maintain mscp_thread structs in listRyo Nakamura
Instead of m->threads array, struct mscp_thread instanes are maintained in m->thread_list. This enables stable counter access via mscp_get_stats().
2023-04-05main: add a white space to the elapsed time outputRyo Nakamura
It adjusts the position of XX:XX in elapsed timeou output.
2023-04-05main: print elapsed time instead ETA at the endRyo Nakamura
2023-03-26Merge branch 'main' of github.com:upa/mscpRyo Nakamura
2023-03-25fix error handling when scan thread failed.Ryo Nakamura
set chunk pool to fill to invoke copy threads when scan failed.
2023-03-22fix invalid return semRyo Nakamura
2023-03-16do not sem_close() for unnamed semaphoreRyo Nakamura
2023-03-16fix semaphore handling for macOSRyo Nakamura
2023-03-15add sem_create(), wrappign sem_init() for linux and sem_open() for macOSRyo Nakamura
2023-03-15linux also needs stdlib.h for random()Ryo Nakamura
2023-03-15macOS does not support sem_init. use sem_open insteadRyo Nakamura
2023-03-15add comment to mscp_scan(), why usleep(100)Ryo Nakamura
2023-03-15rename mscp_prepare to mscp_scanRyo Nakamura
2023-03-15set m->tid_prepare 0 to avoid duble joinRyo Nakamura
2023-03-15mscp: add -u max_startups option.Ryo Nakamura
pymscp also accepts keyword 'max_startups' (int).
2023-03-15fix: when msg_fd is 0, use STDOUT_FILENORyo Nakamura
2023-03-15do not fdopen(msg_fd) if msg_fd < 0Ryo Nakamura
2023-03-15introduce semaphore for concurrent connecting sshRyo Nakamura
instead of ssh_estab_queue (delay-based approach). MaxStartups in sshd_config limits number of conccurent incoming ssh connections. mscp_opts->max_startups adjusts this value.
2023-03-15cleanup message print functionsRyo Nakamura
2023-03-14rename ssh_connect_flag to ssh_estab_queueRyo Nakamura
2023-03-14implement ssh_connect_flagRyo Nakamura
Each copy thread establishes SSH/SFTP connection to remote host. A delay is inserted between SSH connecting to the remote.
2023-03-14cleanup mscp_prepare-related codeRyo Nakamura
2023-03-13mscp_prepare() scans source paths in a thread.Ryo Nakamura
This commit runs mscp_prepare() in a pthread. mscp copy threads run aysnchronously with mscp_prepare(). So, when mscp_prepare() has not finished yet (due to too many source files), we can start to copy files.
2023-03-13revise walk_src_path.Ryo Nakamura
In new walk_src_path, resolve dst path and resolve chunks are invoked when adding a path.
2023-03-13fix mscp.pyRyo Nakamura
2023-03-12little cleanup for python bindingsRyo Nakamura
2023-03-12fix cleanupRyo Nakamura
2023-03-12mscp copy via python bindings works.Ryo Nakamura
ToDo: memory for struct instance in pymscp.c is not released until mscp.free() is called. It is memory leak in a typical pyhotn usage. Use python extension refcnt instead.
2023-03-11add mscp and pymscp python modules.Ryo Nakamura
pymscp is a C Python wrapper for libmscp functions. mscp module provides simple (?) Python API.
2023-03-11move direction from mscp_opts to mscp_init argumentRyo Nakamura
2023-03-11start to implement pymscp.cRyo Nakamura