Matthew Bloch
b546539ab8
Rewrote error & log functions to be more general, use longjmp to get out of
...
trouble and into predictable cleanup functions (one for each of serve,
client & control contexts). We use 'fatal' to mean 'kill the thread' and
'error' to mean 'don't kill the thread', assuming some recovery action,
except I don't use error anywhere yet.
2012-06-09 02:25:12 +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
2d9d00b636
Pull ACLs into their own struct
2012-06-07 17:47:43 +01:00
Alex Young
601e5b475a
Tidy the NULLCHECK macro to swallow semicolons properly
2012-06-07 16:00:38 +01:00
Alex Young
c628435f77
Fix an invalid define symbol
2012-06-07 15:59:13 +01:00
Alex Young
1cd8f4660f
Merge of doom
2012-06-07 14:40:55 +01:00
Alex Young
5930f25034
Use client stop signals for thread stopping
2012-06-07 14:25:30 +01:00
Matthew Bloch
40f0f9fab6
Big bit of debug output in write_not_zeroes (disabled).
2012-06-07 12:28:21 +01:00
Matthew Bloch
d763ab4e74
Fixed bug in bitset_run_count which was causing data corruptionn writing
...
around sparse boundaries.
2012-06-07 12:27:46 +01:00
Matthew Bloch
3810a8210f
Added some record-keeping / printing to fuzzer to assist with backtracking.
2012-06-07 12:25:56 +01:00
Alex Young
a90f84972b
Add stop signals to client threads
2012-06-07 11:44:19 +01:00
Matthew Bloch
5710431780
Refactored write_not_zeroes to use struct bitset_mapping instead of
...
repeating all that code (has not fixed earlier bug yet, but lots of
repetition cut).
2012-06-07 11:17:02 +01:00
Matthew Bloch
08f3d42b34
Improved fuzz test to find an actual code bug (previous bug was in the test
...
<g>).
2012-06-07 02:06:08 +01:00
Matthew Bloch
9fc3c061f8
Fixed arguments to debug function.
2012-06-07 01:15:29 +01:00
Matthew Bloch
8cf1a515dd
Missing break; in switch statement (verbose was setting default deny!)
2012-06-07 00:01:11 +01:00
Alex Young
cfa9f9c71f
Fix the sense of client_serve_request
2012-06-06 14:25:35 +01:00
Alex Young
e8b47d5855
Remove the accept lock as being unneeded
2012-06-06 14:07:55 +01:00
Alex Young
1fc76ad77f
Merge
2012-06-06 13:44:49 +01:00
Alex Young
16001eb9eb
Move checking for a closed client out of server_lock_io and into client_serve_request
2012-06-06 13:44:38 +01:00
nick
648f768ff6
tests: fix the Ruby flexnbd wrapper for mirror
2012-06-06 13:33:24 +01:00
Alex Young
1b289a0e87
Change io lock and unlock to server error on failure
2012-06-06 13:29:13 +01:00
Alex Young
9dbc0a31a8
Better error message
2012-06-06 13:19:24 +01:00
Alex Young
339e766339
Use self_pipe for close_signal
2012-06-06 12:41:03 +01:00
nick
14c9468b68
Automated merge with ssh://dev/flexnbd-c
2012-06-06 12:35:18 +01:00
nick
7544a59da1
mirror: Add --bind to our mirror mode.
...
Mirroring doesn't actually work yet, of course.
2012-06-06 12:35:01 +01:00
nick
f4a403842d
flexnbd: Fix specifying -d as --default-deny on the command line
2012-06-06 12:07:40 +01:00
Alex Young
457987664a
Renamed struct client_params to struct client
2012-06-06 11:33:17 +01:00
Alex Young
40279bc9ca
Split client-specific code into client.{c,h}
2012-06-06 11:27:52 +01:00
Alex Young
d22471d195
Fix a \#define symbol
2012-06-06 10:55:50 +01:00
Alex Young
a80c5ce6b5
Moved sockaddr_address_data to serve.c and renamed params.h to serve.h
2012-06-06 10:45:07 +01:00
Alex Young
cc97dd4842
Rename control to control_fd and struct mode_serve_params to struct server
2012-06-06 10:35:50 +01:00
Alex Young
a0990b824c
Merge
2012-06-06 10:24:33 +01:00
Alex Young
d7fa05d42c
Backed out changeset 0cbb8e9cf515 because it breaks deb packaging.
2012-06-06 10:24:04 +01:00
Alex Young
78b1879cab
Merge
2012-06-06 10:19:59 +01:00
Alex Young
059be22c27
Rename int server to int server_fd in mode_serve_params
2012-06-06 10:19:45 +01:00
nick
15513c03df
Remove a duplicated line due to the last merge
2012-06-06 10:05:12 +01:00
nick
682f3c70ef
Automated merge with ssh://dev/flexnbd-c
2012-06-06 10:03:46 +01:00
nick
3e0628e2fc
flexnbd: Re-add --sock to flexnbd mirror
2012-06-06 09:55:47 +01:00
nick
8a2fd06c31
flexnbd: Add --bind to flexnbd read and flexnbd write
2012-06-06 09:55:08 +01:00
Matthew Bloch
60cb089e45
Added fuzzer which currently exposes ugly bug with unaligned writes.
2012-06-06 01:28:54 +01:00
Matthew Bloch
d981dde8d1
Fixed FlexNBD#serve parameters, added detection of non-starting server.
2012-06-06 01:28:30 +01:00
Matthew Bloch
2245385117
Added msync() call after every write - not sure whether it's necessary yet.
2012-06-06 01:27:37 +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
d87d7a826f
Rename the 'debug' cli option 'verbose' and switch default-deny from 'D' to 'd'
2012-06-01 16:58:32 +01:00
Alex Young
8511cacb03
Make sure the -d short option is honoured
2012-06-01 16:47:34 +01:00
Alex Young
29937cdcf9
Merge
2012-06-01 16:25:41 +01:00
Alex Young
1ddb3bb609
Add a self_pipe set of convenience functions
2012-06-01 16:25:27 +01:00
Alex Young
91ab715659
Indentation fix
2012-06-01 16:24:50 +01:00
nick
b985e97098
Automated merge with ssh://dev/flexnbd-c
2012-06-01 14:51:43 +01:00
nick
04d67b3bab
acls: Add a default-deny option, which allows you to specify what an empty ACL means.
...
When this option is specified, an empty ACL means "reject all clients". Without it,
an empty ACL means "accept all clients"
2012-06-01 14:48:34 +01:00