IABSD.fr/src/usr.bin/rsync

Branch :


Log

Author Commit Date CI Message
7ddad9c7 2020-05-17 19:54:41 __FILE__ and __LINE__ information are fine during early development, or occasionally for fatal source-code bugs are critical and must be hunted down. It is NOT suitable to expose regular users to this on a regular basis though. ok kn beck
70813041 2020-02-11 18:41:39 Simplify and unify wording for the -I sourceaddr option in various places. This is somewhat related to the "-b bind_addr" option some programs have, which should get some cleanup also... input florian claudio jmc
fdde5f0a 2020-01-04 11:53:53 Delete .Xrs to rsync(5) and rsyncd(5). If somebody wants to install these two manual pages describing the protocols, it is easy to put these two links back. Dead links reported by <Aham dot Brahmasmi at gmx dot com>. OK jmc@ florian@
c314c803 2019-08-26 22:22:14 replace a mmap() with pread(). The mmap() is not needed, the file is read sequentially anyway, (hash-sized) block by block. This avoids counting potentially large files against the memory limits of the process. Problem reported by Jan Stary, thanks. ok deraadt@
7b590dfa 2019-08-09 13:11:26 Only print the message of the day in the rsyncd header if rsync is started with -v. In normal operation rsync should only print errors. OK benno@ deraadt@
a52e5c3a 2019-08-09 05:28:01 Add --address argument to openrsync to bind to the specified address when connecting to a rsync daemon. OK deraadt@ benno@ naddy@ sthen@
3aaa63eb 2019-06-28 13:34:58 When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
95af8abf 2019-06-27 18:03:36 Some asprintf() calls were checked < 0, rather than the precise == -1. ok millert nicm tb, etc
447e3174 2019-06-23 10:28:32 fix free() on uninitialized pointer with -rx and same suggestions and ok naddy@ and ok previois diff florian@. from Hiltjo Posthuma hiltjo AT codemadness DOT org and Bjoern Ketelaars bjorn DOT ketelaars AT hydroxide DOT nl, Thanks.
0724efd0 2019-06-03 15:37:48 Don't close the socket in rsync_socket() itself but after calling it. Fixes a corner case where the socket was closed twice, reported by Hiltjo Posthuma. ok deraadt@
dc4a3938 2019-06-02 17:43:34 KNF and sneaky whitespaces
ea555712 2019-06-02 17:36:48 Use a simple hash table to look up blocks by the fast-hash. Also use a rolling computation for the fast-hash.OB With this openrsync is on par with gpl rsync for file updates. From kristaps
57d08c5e 2019-06-02 14:30:51 have_md is initialized at startup, don't need to do it again later from Hiltjo Posthuma
69cdce33 2019-06-02 14:29:58 spelling; from Hiltjo Posthuma
47e90edf 2019-05-28 18:20:30 unintialized fd passed to close(), found by hiltjo posthuma
ba617ada 2019-05-08 21:30:11 remove sess argument from all functions that only used it for logging functions. ok deraadt@
b2a7eac7 2019-05-08 20:00:25 remove sess argument from log functions. ok deraadt@
45df3426 2019-05-06 15:44:34 Remove an example that doesn't do what the accompanying text says, with the current formatting. OK benno@ naddy@ The original suggestion to delete it rather than fix it came from deraadt@: we do not want to encourage use of --rsync-path because it is important that the openrsync client smoothly works with the Samba rsync server. If it doesn't, we should fix it and not fragment the ecosystem.
1c3d4160 2019-04-04 04:19:54 Add support for not crossing filesystem boundaries (-x) to rsync. Option and behaviour is the same as GPL rsync. Initial diff received feedback from benno@, schwarze@, deraadt@ and florian@. Thanks! OK deraadt@
8a54c977 2019-04-02 11:05:55 annoying white space
4d864e8f 2019-04-02 05:32:08 Pull in addargs() API from ssh to replace complicated hand-rolled argument composition code for the remote process. ok florian naddy
47f3c363 2019-04-01 13:04:51 many improvements to rsync(1) documentation: tweaks and OK deraadt@ naddy@
cf0720cb 2019-03-31 13:17:44 Drop --devices and --specials from the synopsis because they are only low-utility parts of the more useful and shorter -D. Nice because it brings the synopsis down to two lines, and because the approach buys us additional time before the synopsis may grow disgustingly long again. "Shrug. Probably helps." deraadt@
aa1dcd86 2019-03-31 09:26:05 Increasing strictness regarding signed-vs-unsigned types and their range in the io-path, whic is done by seperating int vs uint functions variants. reviewed by naddy, florian, and jsg
ac024dd4 2019-03-31 08:47:46 Add ability to combine rsync:// and -e by splitting rsync_socket() into two functions, rsync_connect() to establish a TCP connection to the remote daemon, and rsync_socket() to run the actual protocol. E.g.: rsync -av --del -e 'ssh -W localhost:rsync -lanoncvs' \ rsync://anoncvs.spacehopper.org/OpenBSD-CVS/ /cvs ok deraadt@
8767334c 2019-03-30 23:48:24 Make the synopsis more palatable by deleting useless long option aliases where short or shorter forms exist; of course, the long versions remain in the full option listing as well as in the code. Also drop some redundant repetions of .Fl macros. OK jmc@ deraadt@
79782833 2019-03-30 09:55:05 repair confusing "} if" indent; from naddy
8dad8af8 2019-03-30 09:32:54 document --del, ok deraadt@
afb54730 2019-03-30 07:28:55 For now perform utimes, chown, chmod in the same order as cp(1), until we know later how rsync wants to behave and how it interacts with future option development. This sequence is safest, since it drops setugid bits in case of failure to chown.. ok florian
90d56d89 2019-03-30 07:24:42 Add --del as alias for --delete. Drop --no-delete. The "no-" prefix is only available for options that are implied by other options. --delete is never implied and GPL rsync does not accept --no-delete. ok deraadt@
80888faf 2019-03-30 07:24:02 fix typo in ERRX1
4fbea989 2019-03-26 17:13:42 Same INT32_MAX vs -1 confusion on the write-side (previous commit was for read-side)
75c8f3ba 2019-03-26 16:20:03 INT32_MAX isn't -1, to indicate re-read for 64-bit value. Diagnosed by krw, ok florian
4eeef55c 2019-03-25 21:09:49 -z support isn't as trivial as linking -lz so it hasn't been written yet. In the meantime, make it a warning-no-op, as most usage cases will be satisfied by this (and hopefully annoy someone to write support) ok florian benno
60ac34c7 2019-03-23 23:22:57 Treat time from remote as unsigned 32 bit rather than signed, when casting it into a time_t. If the remote doesn't muck things up, we may make it through 2038.. (best that can be done without protocol repair and coordination) ok benno
02f20df6 2019-03-23 16:04:28 indents and reflows around ERR*() and LOG*(); ok benno
83649630 2019-03-23 00:20:55 repair exit codes, slightly broken after last commit (please do not go to an enum, that's just alien). Documents the return values in each function and unifies the protocol incompatibility error message. from kristaps
82637e4e 2019-03-22 20:12:23 Don't register this manual page under the name rsync(1) yet because "man rsync" still ought to show the manual page from the port. Consistently use the name "openrsync" for now. Issue reported by espie@; OK jmc@.
a4c5e668 2019-03-22 19:56:47 gettimeofday(2)+TIMEVAL_TO_TIMESPEC -> UTIME_NOW; simpler & more portable. ok millert@
c99dd5cd 2019-03-18 18:11:07 add a temporary addition to NAME for openrsync; ok deraadt
08a7862d 2019-03-18 15:33:21 repair a few more yoda compares
59175122 2019-03-18 08:11:11 flesh out SYNOPSIS and usage() somewhat; ok deraadt benno
e762119d 2019-03-18 04:32:31 install rsync as openrsync, so that people can easily familiarize themselves with using it (as front end -- it will talk to the installed 'rsync' on the remote side). this will allow folks to give it a shot, identify weaknesses, collaborate, etc etc etc discussed with benno
ef859540 2019-03-06 18:37:22 Simplify startup code, various phases are heading straight towards exit so they don't need to be constructed to return errors. ok benno florian
e341876b 2019-02-22 09:54:36 remove __BEGIN_DECLS/__END_DECLS, this .h file wont be read by a C++ compiler, and __* are no lonmger recommended. https://www.gnu.org/software/libtool/manual/html_node/C-header-files.html ok deraadt@
1c13accf 2019-02-21 22:15:09 kristaps f18392f58d1f0bc72917e3ac3a46be74c194688d Document that the gid/uid list may be empty. Fixes https://github.com/kristapsdz/openrsync/issues/10
4cdf811f 2019-02-21 22:13:43 kristaps cbe83cd64f40e634dbc22d3f2918c41977a6514d If we don't get a uid/gid map, such as with an rsync:// address, we might not be able to map. So fall back on numeric ids.
521a61e9 2019-02-21 22:12:48 kristaps 7721288a1d170f4d789bf7a7b822f14f91f7bcb9 In order for GPL rsync(1) to work with --delete when openrsync is a remote sender, we need to set the FLIST_TOP_LEVEL bit for all top-level directories. This is because the GPL rsync(1) uses this bit to determine which directories to scan for files for deletion.
2b7b2d66 2019-02-21 22:11:26 kristaps 156cf3b7d459efe133d603158fc33c243dc07ba0 Use style(9) for bit
aeb41609 2019-02-21 22:09:47 kristaps 97df28257f3cc5faae8072fbadbc334a57a4e8a7 Remove another potential deadlock when in sender mode with multiplexing enabled.
021bd7ee 2019-02-21 22:08:53 kristaps b1c688cad9f544a59b871c9984888cb1a3ae11e4 Avoid crash when -n is specified.
44dad8d1 2019-02-21 22:07:44 kristaps acb8f263717f27691f0318d4b7154f854b7206b3 As found by benno@, if --numeric-ids is passed in, rsync does not send or receive the uid/gid lists at all. This also means that we need not process the lists, as we're simply going to copy around the same value.
244291d8 2019-02-21 22:06:26 implement --numeric-ids, tweaked by kristaps
55cb9f91 2019-02-18 22:47:34 new attempt to sync with kristaps up to Sun Feb 17 2019 339cf5998c0c022623cd68de50722b6c14543952 Push "error trail" further into code. baf58ce5fe1bc6ce431b3b0ac8264b83ae8c7d02 Document all arguments. Add common -av usage. Remove bits about not supporting anything but files/dirs. 821a811a8c80e52fb56b241fc65a16cae1b4fb2c Disambiguate as prodded by deraadt@ 6c4475b8f226e9031ec0ec1b3f14f7d347132c87 Add -h to usage string 4d344ae6156873b44c95de0c1ed629e637c2d7ab Clarify error message language, use service name instead of port, specify that the socket is SOCK_STREAM. From deraadt@. Tweaked for lowercase messages. f3ec049e76257fc96bcdc872f1d3b967b98f3eb6 In consideration to benno@'s comments, let the mktemp functions propogate an errno handled by the caller. Also keep the original line lengths. While in mktemp.c, make some defines into an enum. e116c2bd00e634b56e4276120135915ceaa31cf2 Put the FSM of the sender into its own function. Put dry_run ack and end of phase ack into the send buffer too, further reducing the possibility of deadlock. c7745aa4c7394ca89d841f8ee76782256d694340 Make the sender write loop be fully non-blocking. This frees us of deadlocking the protocol because the sender will always be able to pull down data. 93c7b4843e80aeac2ec6ae6ffc395df4deaf4a31 Remove "yoda" notation to be more in tune with OpenBSD. Most found by deraadt@.
6304135b 2019-02-18 21:55:27 revert previous
656be2b3 2019-02-18 21:34:54 sync with kristaps up to Sun Feb 17 2019 339cf5998c0c022623cd68de50722b6c14543952 Push "error trail" further into code. baf58ce5fe1bc6ce431b3b0ac8264b83ae8c7d02 Document all arguments. Add common -av usage. Remove bits about not supporting anything but files/dirs. 821a811a8c80e52fb56b241fc65a16cae1b4fb2c Disambiguate as prodded by deraadt@ 6c4475b8f226e9031ec0ec1b3f14f7d347132c87 Add -h to usage string 4d344ae6156873b44c95de0c1ed629e637c2d7ab Clarify error message language, use service name instead of port, specify that the socket is SOCK_STREAM. From deraadt@. Tweaked for lowercase messages. f3ec049e76257fc96bcdc872f1d3b967b98f3eb6 In consideration to benno@'s comments, let the mktemp functions propogate an errno handled by the caller. Also keep the original line lengths. While in mktemp.c, make some defines into an enum. e116c2bd00e634b56e4276120135915ceaa31cf2 Put the FSM of the sender into its own function. Put dry_run ack and end of phase ack into the send buffer too, further reducing the possibility of deadlock. c7745aa4c7394ca89d841f8ee76782256d694340 Make the sender write loop be fully non-blocking. This frees us of deadlocking the protocol because the sender will always be able to pull down data. 93c7b4843e80aeac2ec6ae6ffc395df4deaf4a31 Remove "yoda" notation to be more in tune with OpenBSD. Most found by deraadt@.
77bd653a 2019-02-17 20:11:42 delete bogus comment
94851233 2019-02-17 18:11:50 Add support for --port=PORT and ":port" in the rsync:// URL. real rsync only supports numbers, but this supports service names also ok florian benno
beac6248 2019-02-17 17:19:05 rsync has a large number of failure exit codes, so don't get used to this weak sauce EXIT_SUCCESS / EXIT_FAILURE model (in our tree very few programs use this failed concept, almost as bad as sysexits.h)
ed5cc9fb 2019-02-17 16:34:04 more yoda repairs
b9097d22 2019-02-17 16:17:07 cleanup protocl warning, and return exit code upwards.
8203fa98 2019-02-17 15:59:09 percolate exit code from deeper code, so that values other than 1 are possible on failure. looked at by florian
50bfd723 2019-02-17 15:57:01 improve option argument demonstration ok florian
971126b2 2019-02-17 03:16:15 Has to be SOCK_STREAM obviously
3748d632 2019-02-16 23:16:54 use MINIMUM() instead of MIN() as elsewhere in the tree
fed2fefe 2019-02-16 17:59:33 nasty ugly invisible spaces
8dd1529e 2019-02-16 17:51:46 Document some long options
e04bcf5b 2019-02-16 17:48:48 --archive is same as -a
0008c2b8 2019-02-16 17:43:06 document -a, -D, --devices and --specials
b100cc17 2019-02-16 17:36:07 add --help option
fb3b9998 2019-02-16 17:07:21 document --version
6d351849 2019-02-16 17:05:21 add missing -no-OPT long options ok florian
85f162de 2019-02-16 16:59:34 sync with kristaps, commit 42166a639caa877efd91e73e288b89abf6b7cfd3 Remove spaces at end of line.
64a7cfb7 2019-02-16 16:58:39 sync with kristaps, commit 1842d31d600f2834ae78fe0d99a29519a853d75c Make sender mostly nonblocking for writes. This takes a lot of logic once in blocks.c and puts it directly into sender.c. It allows running openrsync against itself without deadlocks.
cf0de74f 2019-02-16 16:58:14 sync with kristaps, commit d01f1b87a06c25353de28a9df45b3e202614b336 Add the lowbuffer routines. I'll use this in subsequent commits, but they pre-add the multiplexing frame instead of doing so during write. While here, clean up a lot of ERRX -> ERRX1 and add documentation.
ceac33e0 2019-02-16 16:57:48 sync with kristaps, commit d7c4fb8ac88845aa08900d5d0ec469257f63a339 Use a static single block instead of multiple writes.
0889042f 2019-02-16 16:57:17 sync with kristaps, commit f5c1e234990877cd274b7bcdd4d9883104cd1568 Make sender have reentrant sending and prioritised reading. This way, the sender gets data off the wire as quickly as possible. While here, remove dead wood from blocks.c (blk_merge).
82d7dc7e 2019-02-16 16:56:33 sync with kristaps, commit ad6f9d84aa041d28b93cdf885a583a09f58b1b88 Remove superfluous includes.
f1c3f17c 2019-02-16 16:55:35 sync with kristaps, commit 9b79b4a3d06c810304321d5b58544751b5d9fefd Fast-track reads back into a read loop to avoid the buffer with writes while there are still reads pending. This resolve some bottlenecking.
748bb43e 2019-02-16 16:52:54 use service "rsync" rather than "873"
882186e9 2019-02-16 16:50:09 getaddrinfo doesn't imply "DNS", borrow terminology from ssh ok benno
3d9d1c33 2019-02-16 16:26:45 -D bits, from kristaps
80ee851f 2019-02-16 16:25:45 We need to send/receive the rdev after gid and before symlink. From kristaps, thanks!
dbc83512 2019-02-16 10:49:37 I did some work here.
434f41cd 2019-02-16 10:48:05 implement -D and in turn -a "you snooze, you get collisions" deraadt@
cb6e4267 2019-02-16 10:47:20 Handle file permissions in rsync_set_metadata(). We set permissions either when we create a new file or when the -p flag is set. "you snooze, you get collisions" deraadt@
dbed5971 2019-02-16 10:46:22 Introduce mkstempat(), a variation on mkstemp(3) and mkstemplinkat(). mkstempat() works exactly like mkstemp(3) except that it replaces open(2) with openat(2) so that it can be used in rsync_downloader() to easily deal with relative paths. mkstemplinkat() works somewhat like mkdtemp() to create a template symlink. Use the mkstemplinkat() to create or update symlinks and overwrite existing objects including empty directories that might exist under the destination name. "you snooze, you get collisions" deraadt@
85d611ce 2019-02-16 10:44:01 Add chown pledge so that root can gift files to other uids. "you snooze, you get collisions" deraadt@
88d8eecf 2019-02-16 05:36:07 a minimal --version long-option, so someone can unconfuse themselves
76ddd9ad 2019-02-16 05:30:28 use gettimeofday + TIMEVAL_TO_TIMESPEC to create timespec with better than 1 sec resolution ok benno
f4f0873d 2019-02-16 05:25:09 If anyone ports this to 6.4 they'll just comment out unveil, don't waste lines telling them.
b1d34d51 2019-02-16 05:06:30 unwrap lines which do not need wrapping
22914ed4 2019-02-14 18:32:00 sync with kristaps, commit 438c1948c76a1ecd94e53e09ba88ec7e93004540 Put back stray -o passed into child and add missing pledge.
4aa1c7f9 2019-02-14 18:31:36 sync with kristaps, commit 69f69c7c7c950d42e02666ac63e3b98ec9c972ec Document the -e splice, bring long line, put variable at top of function block.
df1d9d84 2019-02-14 18:31:01 sync with kristaps, commit 71065b31649480ceb1ee6942232d673bf8ab70c8 Enable -o.
7e1037e0 2019-02-14 18:30:11 sync with kristaps, commit 7d2b721bec7937a4a155ca0635750bcbaff76d02 Only preserve uids if we're root.
cc85e6af 2019-02-14 18:29:08 sync with kristaps, commit be8a27a290d5171290c015284542f2af4296be12 Put permission-setting code into its own function, as we'll need to call it from several places. Also enable that -o sets the owner.
bf270584 2019-02-14 18:28:23 sync with kristaps, commit ab90d923f89b06308190d9fe371c7663c077e2bd -o isn't finished yet...
7678960e 2019-02-14 18:27:39 sync with kristaps, commit f77ca97c9f2ee916ee7f551d7b37676c1bd06b55 Document preserving user ids.
8f34fbc5 2019-02-14 18:26:52 sync with kristaps, commit c5350b9055c3921001778275bb808a5c811c21c1 Protocol-level support for -o. The actual sharing itself is more or less a copy of the existing -g code. I've refactored a lot of the ids.c code to be generic and only accept a "isgid", as the rest is the same. So there's some churn as I make all references to "group" be generic.