Commit Graph

67 Commits

Author SHA1 Message Date
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