Ryo Nakamura
2bfd599ad9
add -L limit bitrate option ( #14 )
2024-04-10 20:57:11 +09:00
Ryo Nakamura
fc0ced1828
checkpoint includes username
2024-02-20 16:14:26 +09:00
Ryo Nakamura
5f628b64e3
add -W and -R option for resume checkpoint
2024-02-18 14:48:30 +09:00
Ryo Nakamura
2f9c2c0f10
ready to implement the main-side
2024-02-17 13:25:07 +09:00
Ryo Nakamura
f71c7a145a
add checkpoint.c and .h
2024-02-17 12:39:19 +09:00
Ryo Nakamura
f152236844
tiny fix on pool
2024-02-11 22:09:23 +09:00
Ryo Nakamura
b756654f6e
little cleanup
2024-02-11 22:04:59 +09:00
Ryo Nakamura
a828ca3f5a
change chunk_pool from list to pool
2024-02-11 21:28:03 +09:00
Ryo Nakamura
d65a49768c
cleanup mscp_scan_thread related codes
2024-02-11 20:33:35 +09:00
Ryo Nakamura
d6f437bcb1
change thread_list to thread_pool
2024-02-11 14:11:47 +09:00
Ryo Nakamura
bfc955a9a7
change path_list to path_pool
2024-02-11 14:11:47 +09:00
Ryo Nakamura
d2e061fd97
add pool strcture and move src list to pool
2024-02-11 14:08:56 +09:00
Ryo Nakamura
96084004b6
cleanup error message handling
...
The top-level funtion in a thread should print errors using
priv_get_err(), while lower-level functions should set error messages
using priv_set_err() except that error mesesages should be printed
immediately, e.g., under walk_src_path().
2024-02-07 13:29:45 +09:00
Ryo Nakamura
93f155cffe
add .clang-format from Linux kernel and format sources
...
The exception is that ColumnLimit is 90.
2024-02-06 23:09:59 +09:00
Ryo Nakamura
4f0669f8f8
refactor error message-related functions
...
split message print fuctions (mpr_*), strerrno, and mscp_get/set_error
into print.c/h and strerrno.c/h.
ToDo: revise usages of priv_set_errv and pr_* functions.
2024-02-06 21:54:04 +09:00
Ryo Nakamura
a7f8ad948b
add -p option, preserving file timestamps
2024-02-06 16:15:43 +09:00
Ryo Nakamura
9908fb309d
passing options via pointers in mscp_ssh_opts
...
We do not need static buf because we have already dropped python biding
support.
2024-02-05 23:36:59 +09:00
Ryo Nakamura
c95e6a4fff
do not passing msg_fp via mscp opts
...
instead, mpr_* functions print messages to stdout or stderr directly.
2024-02-04 20:23:08 +09:00
Ryo Nakamura
9bdbfe8487
add SPDX-License-Identifier to source files
2024-01-18 12:59:49 +09:00
Ryo Nakamura
bba53fab03
don't allocate char[PATH_MAX] for each file
...
This commit makes struct path allocation use strndup().
It reduices the memory footprint for struct path per file (issue #8 ).
2024-01-18 12:59:49 +09:00
Ryo Nakamura
0cf3acee20
add -I interval option
...
-I INTERVAL option inserts sleep for interval (seconds) between
SSH connection attempts (issue #7 ).
2023-11-25 15:17:33 +09:00
Ryo Nakamura
139ba12f1a
write total transferred bytes and number of files
...
at the end of output when serverity is notice.
2023-11-01 19:54:18 +09:00
Ryo Nakamura
cfbadebe6d
change msg: thread[%d] to thread:%d
2023-11-01 19:54:18 +09:00
Ryo Nakamura
fbc817213b
use pseudo glob/globfree for remote-glob when musl
...
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-03 21:59:54 +09:00
Ryo Nakamura
ba6f53d253
add glob for source paths
...
https://github.com/upa/mscp/issues/3
2023-08-03 20:26:13 +09:00
Ryo Nakamura
9f7c135b15
cleanup wrappers for file operations
...
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-08-03 17:07:39 +09:00
Ryo Nakamura
24e86f58d8
mscp: maintain mscp_thread structs in list
...
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-05-07 21:05:05 +09:00
Ryo Nakamura
834407379d
fix error handling when scan thread failed.
...
set chunk pool to fill to invoke copy threads when scan failed.
2023-03-25 22:29:09 +09:00
Ryo Nakamura
ae4b848ba0
add sem_create(), wrappign sem_init() for linux and sem_open() for macOS
2023-03-15 23:54:57 +09:00
Ryo Nakamura
f0c70a148b
macOS does not support sem_init. use sem_open instead
2023-03-15 23:18:33 +09:00
Ryo Nakamura
f5d0f526f2
add comment to mscp_scan(), why usleep(100)
2023-03-15 22:19:09 +09:00
Ryo Nakamura
a086e6a154
rename mscp_prepare to mscp_scan
2023-03-15 22:03:14 +09:00
Ryo Nakamura
3bce4ec277
set m->tid_prepare 0 to avoid duble join
2023-03-15 21:56:46 +09:00
Ryo Nakamura
a923d40ada
mscp: add -u max_startups option.
...
pymscp also accepts keyword 'max_startups' (int).
2023-03-15 21:53:34 +09:00
Ryo Nakamura
24fef5f539
fix: when msg_fd is 0, use STDOUT_FILENO
2023-03-15 01:35:55 +09:00
Ryo Nakamura
4e80b05da7
do not fdopen(msg_fd) if msg_fd < 0
2023-03-15 00:39:56 +09:00
Ryo Nakamura
98eca409af
introduce semaphore for concurrent connecting ssh
...
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-15 00:35:48 +09:00
Ryo Nakamura
cf99a439cb
cleanup message print functions
2023-03-15 00:00:23 +09:00
Ryo Nakamura
3077bb0856
rename ssh_connect_flag to ssh_estab_queue
2023-03-14 01:20:55 +09:00
Ryo Nakamura
72c27f16d6
implement ssh_connect_flag
...
Each copy thread establishes SSH/SFTP connection to remote host.
A delay is inserted between SSH connecting to the remote.
2023-03-14 00:43:53 +09:00
Ryo Nakamura
9b0eb668f9
cleanup mscp_prepare-related code
2023-03-14 00:11:13 +09:00
Ryo Nakamura
5f9f20f150
mscp_prepare() scans source paths in a thread.
...
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-13 22:35:51 +09:00
Ryo Nakamura
ceb9ebd5a8
revise walk_src_path.
...
In new walk_src_path, resolve dst path and resolve chunks are
invoked when adding a path.
2023-03-13 21:02:26 +09:00
Ryo Nakamura
2416b5f182
fix cleanup
2023-03-12 17:06:02 +09:00
Ryo Nakamura
74d58e986a
move direction from mscp_opts to mscp_init argument
2023-03-11 21:48:07 +09:00
Ryo Nakamura
2477647a3b
fix uninitialized dst_path_is_dir bool
2023-03-10 21:42:00 +09:00
Ryo Nakamura
d5a86292b7
add doxygen for mscp.h
2023-03-04 18:47:44 +09:00
Ryo Nakamura
e67b7468e5
use setitimer instead of alarm, and print message.
...
print_stat now prints messages per interval.
ToDo:
- realtime message printing
- use timer_create instead of setitimer (mscOS has different one)
2023-03-04 16:48:26 +09:00
Ryo Nakamura
9342c18f0e
accidentaly swap min_chunk_sz and max_chunk_sz...
2023-03-04 15:53:42 +09:00
Ryo Nakamura
df2f922b0d
remove pprint, use message (mpr_*) instead.
...
ToDo:
main should use pipe to receive messages from libmscp.
2023-03-04 15:44:10 +09:00