Commit Graph

46 Commits

Author SHA1 Message Date
Alex Young
81fe41f016 Merge 2012-05-31 13:53:21 +01:00
Alex Young
074efd9fa4 Add a no-op debug() define for non-debug builds and make valgrind optional in nbd_scenarios 2012-05-31 13:53:04 +01:00
Alex Young
c2d1414bff Merge 2012-05-31 13:32:56 +01:00
Alex Young
623a398767 Add a --debug flag for DEBUG builds
If you compile with:

  DEBUG=true rake build

then all the commands get a --debug flag as an option which will make
the server dump crazy amounts of data to stderr.
2012-05-31 13:31:22 +01:00
Alex Young
268bebd408 Run the nbd_scenario tests under valgrind 2012-05-31 13:23:12 +01:00
nick
71e755906b Make the Rakefile take note of DEBUG= 2012-05-31 12:12:32 +01:00
nick
e863bffe3d Set TCP_NODELAY on our socket. This decreases average NBD read request RTT from 0.3ms to 0.001ms 2012-05-31 11:33:31 +01:00
mbloch
c6dd4fbd89 Merge 2012-05-30 20:14:14 +01:00
mbloch
cd976d1c2c Fixed short copies of struct sockaddr (it's shorter than sockaddr_in6!)
which was giving duff results when comparing IPv6 ACL entries.
2012-05-30 20:13:56 +01:00
Alex Young
42599fe01e Make sure we build arch-specific packages 2012-05-30 18:11: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
15c3133458 Simplify option definition with som handy macros 2012-05-30 17:33:38 +01:00
Alex Young
fe08084144 Added tag 0.0.1 for changeset 27409c2c1313 2012-05-30 17:11:10 +01:00
Alex Young
0102217019 Merge 2012-05-30 15:39:55 +01:00
Alex Young
0c62e66a70 Added getopt_long command-line handling.
All parameters now have switches.  The one gotcha is the parameter which
was overloaded - s_length_or_filename to params_readwrite - is only
pretending to be a length at the moment. If you pass a filename it'll
still work, but the help messages don't mention that.  I'll split the
parameter into two in a later commit.
2012-05-30 15:19:40 +01:00
Alex Young
a01621dc1e Added .h files to the Rakefile 2012-05-30 15:06:06 +01:00
mbloch
6d8afd1035 Fixed bug where ACL was accidentally deleted when being set from control
socket.
2012-05-30 13:03:02 +01:00
nick
46ceb85aec Fix the usage message 2012-05-30 11:28:32 +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
cf2400fedd Fixed race in tests. 2012-05-29 17:01:54 +01:00
Matthew Bloch
21ccd17ea5 Added .INCOMPLETE hack to aid with marking finished transfers. 2012-05-29 11:24:24 +01:00
Matthew Bloch
ab0dfb5eca Added mirror write barrier / final pass stuff & clean exit afterwards.
Plenty of code documentation.
2012-05-29 04:03:28 +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
mbloch
d5d6e0f55d Pulled some duplicated code out of control.c into
read_lines_until_blankline.
2012-05-23 14:03:30 +01:00
Matthew Bloch
9c26f7f36f Split control-socket functions into separate file. 2012-05-23 00:42:14 +01:00
Matthew Bloch
811e4ab2cd Fixed mirroring to work (error reporting suspect though). 2012-05-22 00:22:06 +01:00
Matthew Bloch
7eaf5c3fd3 Initial, untested mirror implementation and resolved some type confusion
around struct ip_and_mask pointers (no idea how it worked before).  Added a
header for readwrite.h used in mirror implementation.
2012-05-21 04:03:17 +01:00
Matthew Bloch
cd6e878673 More valgrind-found bugs, extracted open_and_mmap from main code. 2012-05-21 04:00:45 +01:00
Matthew Bloch
43239feb38 Fixed some uninitialised variables courtesy of valgrind. 2012-05-21 03:59:43 +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
580b821f61 Added dummy control socket answering / changed serve_accept_loop to use
select() to avoid a separate listening thread.
2012-05-18 23:39:16 +01:00
mbloch
b533e4e31c Added control socket, doesn't do anything yet. 2012-05-18 18:44:34 +01:00
Matthew Bloch
f5d8e740f8 Added .hgignore file 2012-05-18 13:25:54 +01:00
Matthew Bloch
ca53d6f270 Stopped NBD writes from committing all-zero blocks to disc (tentative, needs
further testing).
2012-05-18 13:24:35 +01:00
Matthew Bloch
0432fef8f5 Split code out into separate compilation units (first pass, anyway). 2012-05-17 20:14:22 +01:00
Matthew Bloch
aec90e5244 Non-functioning commit, half-way through adding sparse bitmap feature. 2012-05-17 11:54:25 +01:00
Matthew Bloch
f688d416a5 Added write mode. 2012-05-16 11:58:41 +01:00
Matthew Bloch
b1aa942b3d Added working read via splice syscall. 2012-05-16 03:20:09 +01:00
mbloch
c796a526d0 Added Rakefile 2012-05-16 01:27:14 +01:00
mbloch
c6099f78ea Silly bug fixes, added ACL support, added parser for read/write requests. 2012-05-15 18:40:58 +01:00
Matthew Bloch
94c2d44d7d Some debugging, got it to serve. 2012-05-15 03:16:19 +01:00
Matthew Bloch
e2fbc7dcc1 It compiles :) 0.0.1 2012-05-15 02:42:03 +01:00