Commit Graph

45 Commits

Author SHA1 Message Date
nick
78299de299 Dummy commit to get past a merge commit 2013-02-21 13:57:33 +00:00
nick
98d8fbeaf0 flexnbd: Add a proxy mode
This lets us proxy connections between NBD clients and servers, resiliently.
2013-02-15 16:52:16 +00:00
nick
58c4a9530b Make acceptance tests verbose by default 2013-02-14 11:17:44 +00:00
nick
ac560bd907 serve: Refactor some socket utility code into its own module.
We'll be using this in proxy mode later
2013-02-13 13:43:52 +00:00
Alex Young
22bea81445 Don't open the control socket until after the server socket is bound
This makes it easier for the tests (and supervisor) to guarantee to be
able to connect to the server socket.

Also this patch moves freeing the mirror supervisor into the server
thread.
2012-10-09 17:35:20 +01:00
Matthew Bloch
7b13964c39 Update Rakefile to support locally-installed libcheck, removed efence, pushed
-l arguments to end of link command line.
2012-10-07 02:09:34 +01:00
Alex Young
239136064a Add default empty LDFLAGS 2012-08-24 09:32:33 +01:00
Alex Young
c3c621f750 Don't free a client which hasn't finished yet. 2012-08-23 17:51:19 +01:00
Alex Young
4790912750 Remove listen mode
Changing behaviour so that instead of rebinding after a successful
migration and continuing as an ordinary server, we simply quit with a
0 exit code and let our caller restart us as a server if they want to.
This means that everything in listen.c, listen.h, and anything making
reference to a rebind address is unneeded.
2012-07-23 09:48:50 +01:00
Alex Young
76bbdb4889 Force gzipping the man page 2012-07-19 17:22:25 +01:00
Alex Young
484a29b3f6 Add README.txt to the deb task code files 2012-07-16 10:29:06 +01:00
Alex Young
a1ea2ba4c5 Add a rake task to build the man page
Also tweak the debian .install to put it in the right place.
2012-07-14 18:47:25 +01:00
Alex Young
54a1409dce Added a README.txt and a man page
Spoiler: they're the same thing. Added a `rake man` task to build the
man page.  Depends on asciidoc.
2012-07-14 18:36:02 +01:00
Alex Young
03c06a689d Append the CFLAGS environment variable to the build flags.
This is going to be used for the DIRECT_IO flag.
2012-07-14 10:05:35 +01:00
Alex Young
f3f017a87d Free all possibly held mutexes in error handlers
Now that we have 3 mutexes lying around, it's important that we check
and free these if necessary if error() is called in any thread that can
hold them.  To do this, we now have flexthread.c, which defines a
flexthread_mutex struct.  This is a wrapper around a pthread_mutex_t and
a pthread_t.  The idea is that in the error handler, the thread can
check whether it holds the mutex and can free it if and only if it does.
This is important because pthread fast mutexes can be freed by *any*
thread, not just the thread which holds them.

Note: it is only ever safe for a thread to check if it holds the mutex
itself.  It is *never* safe to check if another thread holds a mutex
without first locking that mutex, which makes the whole operation rather
pointless.
2012-07-11 09:43:16 +01:00
Alex Young
988b2ec014 Moved acceptance tests into tests/acceptance 2012-07-03 10:59:31 +01:00
Alex Young
c0c9c6f076 Moved unit tests into tests/unit 2012-07-03 10:53:08 +01:00
Alex Young
94b4fa887c Add mboxes 2012-06-27 15:45:33 +01:00
Alex Young
80f298f6cd Make non-fatal errors return properly 2012-06-21 18:01:56 +01:00
Alex Young
f37a217cb9 Add listen mode 2012-06-21 18:01:50 +01:00
Alex Young
43e95dc4db Make sure all the lines we read get freed (including the trailing blank) 2012-06-21 15:31:28 +01:00
Alex Young
b986f6b63e Take _GNU_SOURCE out of source and put it in CFLAGS 2012-06-13 09:59:08 +01:00
Alex Young
25fc0969cf Make the compiler stricter and tidy up code to make the subsequent errors and warnings go away 2012-06-11 13:57:03 +01:00
Matthew Bloch
e8b5fae7ab Merge, just renaming old error macros. 2012-06-09 02:37:23 +01:00
Matthew Bloch
8691533d88 Added hopeful default path to find rake_utils, turned undefined function
warnings into errors, and added expensive header scanning to .c->.o rule to
ensure changes to .h files cause recompiles as you'd expect.
2012-06-09 02:17:34 +01:00
Alex Young
f7e1a098b1 Move updating the acl object into serve.c
* * *
Replacing the server acl sends an acl_updated signal
2012-06-08 10:32:33 +01:00
Alex Young
2d9d00b636 Pull ACLs into their own struct 2012-06-07 17:47:43 +01:00
Alex Young
5930f25034 Use client stop signals for thread stopping 2012-06-07 14:25:30 +01:00
Alex Young
a90f84972b Add stop signals to client threads 2012-06-07 11:44:19 +01:00
Alex Young
d7fa05d42c Backed out changeset 0cbb8e9cf515 because it breaks deb packaging. 2012-06-06 10:24:04 +01:00
Matthew Bloch
29151b8a78 Isolated missing library code to pkg:deb task - couldn't locate library code
(must be available from Debian, or bundled).
2012-06-05 23:46:28 +01:00
Alex Young
b90b73fba6 build and default rake tasks, because I keep trying to type them 2012-05-31 14:01:49 +01:00
nick
71e755906b Make the Rakefile take note of DEBUG= 2012-05-31 12:12:32 +01:00
Alex Young
f21dd9e888 Basic debian packaging
Add a build dependency on rake_utils, but we get simple debian packages
out of it.
2012-05-30 17:35:07 +01:00
Alex Young
a01621dc1e Added .h files to the Rakefile 2012-05-30 15:06:06 +01:00
Alex Young
7832958522 Rearranged the project to have src/ and build/ directories
This simplifies keeping everything clean.
2012-05-30 09:51:20 +01:00
mbloch
dcb1633b8b Lots of errors spotted by Alex fixed, added mutexes to accept & I/O, added
"remote" commands to set ACL, start mirror etc.
2012-05-29 00:59:12 +01:00
Matthew Bloch
c54d4a68ba Added another write/read test, fixed bugs in splice() usage and IPv6
socket handling.
2012-05-27 14:40:16 +01:00
Matthew Bloch
5a5041a751 First few external tests with test/unit, some minor tidying of internal data
structures.
2012-05-24 01:39:35 +01:00
Matthew Bloch
9c26f7f36f Split control-socket functions into separate file. 2012-05-23 00:42:14 +01:00
Matthew Bloch
f7ce2c0ea5 Mostly finished bitset tests, fixed test build to include utilities, remove
efence as valgrind far preferable.
2012-05-21 03:17:32 +01:00
Matthew Bloch
c94b6f365c Tweaks to bitset.h, established a C test framework. 2012-05-20 14:38:46 +01:00
Matthew Bloch
8a38cf48eb Fixed segfaulting access control, allowed change to acl via control socket. 2012-05-19 12:48:03 +01:00
Matthew Bloch
0432fef8f5 Split code out into separate compilation units (first pass, anyway). 2012-05-17 20:14:22 +01:00
mbloch
c796a526d0 Added Rakefile 2012-05-16 01:27:14 +01:00