aboutsummaryrefslogtreecommitdiff
path: root/net/csup
Commit message (Collapse)AuthorAgeFilesLines
* - Fix OSVERSION detection in RELENG_6 and RELENG_6_1Marcus Alves Grando2006-06-221-1/+1
| | | | Notes: svn path=/head/; revision=166043
* - Update to 20060318Marcus Alves Grando2006-06-212-8/+9
| | | | | | | | | - Fix build in tinderbox using ${OSVERSION} instead .if exists() Approved by: mux Notes: svn path=/head/; revision=165970
* Mark IGNORE if csup is already in the base system.Ion-Mihai Tetcu2006-06-161-0/+5
| | | | | | | Approved by: mux@ Notes: svn path=/head/; revision=165544
* - Update to csup-snap-20060313. Too many changes to list here!Maxime Henrion2006-03-153-136/+7
| | | | Notes: svn path=/head/; revision=157275
* - Unbreak patchPav Lucistnik2006-02-231-9/+0
| | | | | | | Approved by: portmgr (erwin) Notes: svn path=/head/; revision=156747
* Fix a last minute bug by importing a patch from csup's CVS. We were notMaxime Henrion2006-02-232-0/+140
| | | | | | | retrying anymore when the server rejects us at login time. Notes: svn path=/head/; revision=156729
* Update to csup-snap-20060223 (biggest changelog ever!):Maxime Henrion2006-02-222-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Finally implement fixups and use them in the detailer and updater thread as appropriate. We now longer crash/hang when there is an MD5 checksum error, but request a fixup (or fail, if the checksum error is from a fixup). - Portability fix: don't use SIZE_T_MAX when ~0 will do fine. - Plug a memory leak in keyword_prepare(). - Fix the build without assertions. - Properly check for the success of the asynchronous connect() when we've been interrupted by a signal. Move the logic into proto_waitconnect(). - Properly print transport layer addresses with getnameinfo() and the NI_NUMERICHOST flag. We were printing garbage... - Assert that we're never printing a NULL string in proto_printf(). - Make sure we disallow 0-length fields in proto_get_ascii() or all sorts of bad things will happen. Also remove a useless check. - In statusrec_cook(), there is nothing left to parse for DirDown entries, however we have to check that there was nothing left in the line, or return an error if it's not the case. - Restore the original string upon error in fattr_scanattr(), called by fattr_encode() only. - The struct diff used by diff_apply() and keyword_expand() has been rename to struct diffinfo, and it now only contains the metadata of a diff. This changes the prototype for the two aforementioned functions, so update the code and the consumers appropriately. - Create the worker threads in the detached state since we don't use pthread_join() to wait for them but have our own API for that (which allows us to wait for multiple threads). - Move the fattr_init() and fattr_fini() calls earlier to avoid calling them several times during a run. - When printing the "Connected to" message, print the actual address we are connected. This makes us deviate slightly from CVSup, but since csup tries any address returned by a host (including IPv6 addresses), we really need to know where we connected. - Make the errors/error messages handling much nicer in the status file API. Nearly all the asprintf() calls are centralized now. - Before entering multi-threaded mode, starts a "killer" thread that will spend most of his time blocking in sigwait() and will call mux_shutdown() to nicely abort the run in case we get a fatal signal. - Remove the need for the "closing" condition variable in mux_shutdown(), we are now handling the race it protected against much more sanely. We just disable cancellation in the "killer" thread before calling mux_shutdown() and re-enable it afterwards. This way, we can stop the killer thread at any time and after having joined it we know it is safe to call mux_close() since there are no more references to it but us. - Update the lister, detailer and updater threads to correctly check for error on read/write/parsing. Generate a proper error message in each case and return it back to the main thread, along with a status code indicating either success, failure or a transient failure. - Always call status_close() in the updater thread, to ensure that the status file is properly updated even if we are being interrupted by an error. - Slightly tweak the threads API to make it match our needs more closely. - Add a few useful comments here and there. - Rename proto_init() to the more correct proto_run() name. - Use the status code returned by the worker thread to only retry a run when we had a transient error, and to return a proper exit code at the end of the program's execution. - Many minor stuff. All those changes allow csup to properly handle any synchronous or asynchronous error and to print meaningul messages nearly all the time, without duplicated messages. Hangs should not happen anymore, even in case of an error. We also correctly handle being sent some signals such as SIGINT, by correctly updating the status file and cleaning after us, so ^C is usable. Finally, csup now returns a proper exit code: 0 in case of success or 1 in case of an error, similarly to CVSup. Oh, and since fixups are now supported, I'd call csup "production ready", module the bugs I have introduced. Please give this version as much testing as you can! Notes: svn path=/head/; revision=156721
* Update to csup-snap-20060212:Maxime Henrion2006-02-132-4/+4
| | | | | | | | | | | This snapshot only addresses one problem introduced in the 20060211 snapshot. Because of what seems to be a bug in CVSup, fixing the keyword expansion code so that it works correctly with OpenBSD CVSup servers broke updates from PostgreSQL CVSup servers. This snapshot "fixes" this issue by being bug-to-bug compatible with CVSup. Notes: svn path=/head/; revision=155887
* Update to csup-snap-20060211:Maxime Henrion2006-02-112-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add support for retries when the connection is rejected by the server and the associated -1 and -r maxRetries options. - Add missing description for the -4 and -6 options in csup.1. - Ignore the return value of a chflags() call in fattr_install() to match CVSup. This fixes csup over NFS. - Correctly handle any locking error with assertions. - Make the multiplexer code fully dynamic and cancelable. - Handle errors in the sender and receiver threads correctly by closing the multilpexer and waking up all the threads blocked on any of the channels. This means we don't hang when being disconnected for instance. - Make several functions of the chan API, most notably chan_read() and chan_write() take a struct chan * instead of an id. This saves a mutex lock and unlock for each call to these functions, and also reduces the contention on the multiplexer lock. - Change the stream API so that we can associate a stream with a void * to support the previous change. Update all the consumers. - Optimize the scheduling of the sender thread so that it's not possible to have some channels starve others. - Optimize mkdirhier() so that it saves many access() calls on average. - Always set the "no rsync" option to the collections since we don't support the rsync updating algorithm yet. I have yet to see a CVSup server trying to send me rsync updates of files in checkout mode but better safe than sorry. - Fix the RCS keyword handling. Updating the OpenBSD-src collection from an OpenBSD CVSup server now works. - Correctly handle deletion requests for directories. - And various minor bugfixes. Notes: svn path=/head/; revision=155781
* Update to csup-snap-20060204:Maxime Henrion2006-02-042-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Don't use the C99 %zd format in fattr_encode(), it fails with a pre-C99 compiler and just prints "zd", which caused csup to send corrupted file attributes and get kicked by the server. I have no idea why I didn't see this when testing on ref4.FreeBSD.org but csup now really works on RELENG_4. - Completely revamp the file attributes computation when checking out new files and when updating them via diffs. We now create the files with correct attributes. If you've seen "SetAttrs" commands when you didn't use to see with CVSup, that fixes it. - Rewrite mkdirhier() so that it works as intended and respects the umask setting of the collection. - Fix a bad bug in proto_get_ascii() that made csup crash when there were no more tokens to eat. - Rework the status file API so that it's always possible to determine if there was an error and to supply appropriate error messages with status_errmsg(). Use this new function in the lister, detailer and updater threads. - Implement support for two new formats in proto_printf(), %f and %F, that are used to print encoded file attributes. Use them everywhere appropriate to simplify code. And probably a few things more that I forgot. Notes: svn path=/head/; revision=155177
* Update to csup-snap-20060203:Maxime Henrion2006-02-022-4/+4
| | | | | | | | | | - The -4 and -6 switches have been addede to force usage of IPv4 or IPv6, respectively, - The "list=suffix" option in the supfile is now supported. - And many bugfixes. Notes: svn path=/head/; revision=155110
* Update to the 20060202 snapshot:Maxime Henrion2006-02-022-5/+6
| | | | | | | | | | | - Many bugfixes and code improvements. - There is now a csup(1) manual page. - We now use the Z_DEFAULT_COMPRESSION zlib compression level instead of Z_BEST_SPEED (the lowest). As a consequence of this, less data needs to be send and csup is slightly faster than CVSup in my tests. Notes: svn path=/head/; revision=155039
* Put main category at first place.Alex Dupre2006-01-281-1/+1
| | | | Notes: svn path=/head/; revision=154641
* Add a port for csup, the rewrite of CVSup in C.Maxime Henrion2006-01-283-0/+36
While it still has some rough edges, it has reached a state where it's pretty much usable and this port will get me a wider audience for testing. Reviewed by: ahze Notes: svn path=/head/; revision=154622