Ryo Nakamura
f9c8dec389
compilable on ubuntu
2023-03-04 15:53:54 +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
Ryo Nakamura
1e57e8fb2f
implementing messaging.
...
ToDo: remove pprint.
mscp should use mpr_* functions, and main.c should use
just fprintf(stdout, "\r\033[K" fmt, ...) for printing progress bar.
2023-03-03 22:14:54 +09:00
Ryo Nakamura
1b9ae51974
add message.h and message.c, mscp_set|get_error()
...
Instead of pr_err(), libmscp uses mscp_set_error() and
applications use mscp_get_errror() to get error message.
2023-03-03 21:29:43 +09:00
Ryo Nakamura
c5aa70d9c9
tiny cleanup
2023-03-03 18:30:34 +09:00
Ryo Nakamura
a0b7482f66
add mscp_get_stats
...
move progress bar-related functions from mscp.c to main.c.
2023-03-03 18:27:14 +09:00
Ryo Nakamura
363296f499
add mscp_ssh_opts and change -C optarg
2023-03-03 16:50:06 +09:00
Ryo Nakamura
ca0ea3ee77
tiny fix on comment
2023-02-26 23:46:53 +09:00
Ryo Nakamura
700d64b375
now mscp links libmscp
2023-02-26 23:18:39 +09:00
Ryo Nakamura
dbc96f9166
add -r option (but no effect)
2023-02-16 18:04:16 +09:00
Ryo Nakamura
fd5c6e971e
add \n at the final output
2023-02-16 17:59:26 +09:00
Ryo Nakamura
3d98451bba
set default nr_threads to floor(log(cores) * 2) + 1)
...
This change prevents mscp from establishing too many ssh connections
on many-core machines in default.
2022-12-11 14:01:52 +09:00
Ryo Nakamura
d27db01d8d
use pthread_cleanup to acquire and release lock
...
In chunk_prepare(), if multiple threads wait for acquiring f->lock,
and then pthread_cancel() is called, the waiting threads are never
canceled because pthread_mutex_lock() is not a cancellation point.
So, use pthread_cleanup_push/pop to release the lock.
2022-12-11 13:23:41 +09:00
Ryo Nakamura
6ae3f0f9f1
set default NR_AHEAD to 32
2022-12-08 18:01:50 +09:00
Ryo Nakamura
847c80276a
fix final progress output
2022-12-06 20:04:04 +09:00
Ryo Nakamura
1441873db6
reuse ctrl sftp session for the first copy thread
2022-12-05 21:47:00 +09:00
Ryo Nakamura
e1d14623f4
set TCP_NODELAY by default and introduce -N option to disable it
2022-12-04 21:32:48 +09:00
Ryo Nakamura
3b794ab51b
remove unused code and introduce -b buf_sz option
...
This commit removes ifdef ASYNC_WRITE. So, mscp always depends on
the patched libssh.
2022-12-03 20:48:43 +09:00
Ryo Nakamura
50c6781811
little cleanup
2022-12-02 23:35:45 +09:00
Ryo Nakamura
03b857b51a
add -M hmac option
2022-12-02 21:13:13 +09:00
Ryo Nakamura
d646fc1f89
use sigalrm for printing progress bar
2022-11-28 00:14:05 +09:00
Ryo Nakamura
5188cf6df6
add ETA to progress print
2022-11-27 20:36:24 +09:00
Ryo Nakamura
130e735e65
skip sftp_free() inappropriately
2022-11-27 19:48:13 +09:00
Ryo Nakamura
8cc964ca8a
fix duplicate error message on ssh auth failed.
...
and fix the final \n with -q
2022-11-26 17:34:24 +09:00
Ryo Nakamura
5e7aa774ca
fix when copy multiple sources and various tiny fixes
...
* when copying multiple sources, target must be directory
* add multi-src copy test and parametrize src/dst prefixes
* cleanup REAMDE (s/sessions/connections/g)
* make error output in copy functions simple
2022-11-18 20:20:19 +09:00
Ryo Nakamura
b8d58b1fba
tiny fix
...
- set ssh nonblocking before closing sftp session
- fix pprint for core mask
2022-11-18 13:47:24 +09:00
Ryo Nakamura
41da0c5cfe
check invalid coremask
2022-11-16 01:57:27 +09:00
Ryo Nakamura
a69115a4dc
add -m coremask option
2022-11-15 19:57:53 +09:00
Ryo Nakamura
e9d5ceb462
add memory barrier to notify monitor thread of copy threads finished
2022-11-13 15:33:45 +09:00
Ryo Nakamura
81a7fbd2d8
add -a nr_ahead option
2022-11-13 15:31:12 +09:00
Ryo Nakamura
cfbbae860c
little trick to make progress bar stable
2022-11-12 17:45:08 +09:00
Ryo Nakamura
756e0759f9
fix buf size in remote to local copy.
...
Too large buffer size for sftp_async_read causes unfinished copy:
sftp_async_read returns 0 althrough data remains.
2022-11-12 17:30:51 +09:00
Ryo Nakamura
71d827d613
fix some thread handling
2022-11-12 16:11:20 +09:00
Ryo Nakamura
8eb9e69c1c
fix incorrect ret handling for read/write
2022-11-08 10:06:30 +00:00
Ryo Nakamura
243bf1fa57
add -H option to disable host key check
...
tests use this option.
2022-11-05 22:46:02 +09:00
Ryo Nakamura
d62fc2cddd
do not print progress when total bytes transferred is 0
2022-10-31 15:30:42 +00:00
Ryo Nakamura
7039b84c4f
capture retval from copy threads
2022-11-01 00:17:05 +09:00
Ryo Nakamura
926688e849
rename dirname if dst dir does not exist
...
`scp remote:srcdir dstdir` renames srcdir to dstdir if dstdir does
not exist. If dstdir exists, it creates dstdir/srcdir.
This commit imitates this behavior.
2022-10-31 22:51:39 +09:00
Ryo Nakamura
e997d692c2
set nr_threads to # of chunks if # of chunks is small
2022-10-30 12:27:58 +00:00
Ryo Nakamura
453e8f27ce
add cpack to build debian package
2022-10-30 12:17:17 +00:00
Ryo Nakamura
b9f44bb030
Merge branch 'main' of github.com:upa/mscp
2022-10-30 15:22:17 +09:00
Ryo Nakamura
c495f6b89b
rename sscp to mscp
2022-10-30 15:20:05 +09:00
Ryo Nakamura
65bdbdaede
little refactoring for param names
2022-10-30 06:13:02 +00:00
Ryo Nakamura
c76fa3141d
change indent from space to tab
2022-10-29 23:48:50 +09:00
Ryo Nakamura
ff697aa514
fix path handling
2022-10-29 23:36:12 +09:00
Ryo Nakamura
47f6983148
wrap print progress in pprint
2022-10-25 01:47:39 +09:00
Ryo Nakamura
c83927cd5a
add copy start and done output
...
These fputs should be wrapped in a function and protected by a lock. todo.
2022-10-25 00:14:47 +09:00
Ryo Nakamura
7ca4a85b76
fix miss flag handling for threads[n].finished
2022-10-25 00:04:59 +09:00
Ryo Nakamura
8d7e6fe016
todo: consider smp for counters
2022-10-24 23:50:00 +09:00
Ryo Nakamura
962542bd9c
adjust order of thread spawning
2022-10-23 21:53:41 +09:00