Alex Young
2078d17053
connect failure scenarios
2012-06-22 10:05:41 +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
79ba1cf728
Make max_nbd_clients configurable per struct server
2012-06-21 17:22:34 +01:00
Alex Young
e21beb1866
Add the REQUEST_ENTRUST nbd request type
2012-06-21 17:12:06 +01:00
Alex Young
a3dc670939
Squash valgrind errors by making sure client threads get joined on termination
2012-06-21 17:11:12 +01:00
Alex Young
bafc3d3687
Make sure filename_incomplete gets freed
2012-06-21 15:58:32 +01:00
Alex Young
322eae137b
Add a missed free()
2012-06-21 15:55:48 +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
cc22f50fe6
Avoid a use-after-free in serve.c
2012-06-21 14:15:58 +01:00
Alex Young
c054403208
Trim the length bitset_run_count looks at not to exceed the bits array
2012-06-21 12:05:01 +01:00
Alex Young
80fff4e0e6
Squash a valgrind error caused by debug output
2012-06-21 11:55:21 +01:00
Alex Young
4e8a9670e5
Merge
2012-06-21 11:37:18 +01:00
Alex Young
e3c04ade29
Added early-exit on any valgrind error
2012-06-21 11:37:00 +01:00
Alex Young
ed3090d6d5
Tweak struct initialisation to squash a valgrind error
2012-06-21 10:29:06 +01:00
Alex Young
50b0db7bf6
Reject mirroring if the remote size doesn't match the local size
2012-06-13 15:51:37 +01:00
Alex Young
c9ece5a63f
Tidy mirror_runner somewhat
2012-06-13 15:45:59 +01:00
Alex Young
c2b6fac92d
Fix an argv array reference (root cause of a bug from the last commit)
2012-06-13 13:52:15 +01:00
Alex Young
7d1c15b07a
Fix two bugs in mirroring.
...
First, Leaving off the source address caused a segfault in the
command-sending process because there was no NULL check on the ARGV
entry.
Second, while the migration thread sent a signal to the server to close
on successful completion, it didn't wait until the close actually
happened before releasing the IO lock. This meant that any client
thread waiting on that IO lock could have a read or a write queued up
which could succeed despite the server shutdown. This would have meant
dataloss as the guest would see a successful write to the wrong instance
of the file. This patch adds a noddy serve_wait_for_close() function
which the mirror_runner calls to ensure that any clients will reject
operations they're waiting to complete.
This patch also adds a simple scenario test for migration, and fixes
TempFileWriter#read_original.
2012-06-13 13:44:21 +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
c7525f87dc
Removed proxying completely and fixed the pthread_join bug revealed in the process
2012-06-12 15:08:07 +01:00
Alex Young
2a71b4e7a4
Fix broken error checking around pthread functions
2012-06-11 16:08:19 +01:00
Alex Young
5996c8f7ba
Simplify a FATAL_IF_NEGATIVE
2012-06-11 15:31:59 +01:00
Alex Young
4c52bcd870
Make the error and fatal functions swallow semicolons properly
2012-06-11 15:26:42 +01:00
Alex Young
13a6a403a4
Make the error and fatal macros swallow semicolons properly
2012-06-11 15:23:06 +01:00
Alex Young
83b8b9eaac
Add general-purpose ERROR/FATAL_IF and ERROR/FATAL_UNLESS macros
2012-06-11 15:20:05 +01:00
Alex Young
c6182b9edf
Merge
2012-06-11 14:59:52 +01:00
Alex Young
e2d3161a4a
Set default log level to warn to shut the tests up
2012-06-11 14:59:26 +01:00
nick
8513144354
Automated merge with ssh://dev/flexnbd-c
2012-06-11 14:40:53 +01:00
nick
5ab9e10019
test: make check_serve bind() its outgoing socket to a known IP for these tests
2012-06-11 14:40:41 +01:00
Alex Young
710d8254d4
Make sure all ifs are braced
2012-06-11 14:34:17 +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
Alex Young
8825f86726
Merge
2012-06-11 13:49:56 +01:00
Alex Young
b5427d13db
Explicitly check for which fd is acceptable in server_accept
2012-06-11 13:49:35 +01:00
nick
893db71d7c
Whitespace
2012-06-11 13:05:22 +01:00
nick
224bdcbf87
Fix handling ACLs where > 1 entry exists
2012-06-11 12:56:45 +01:00
nick
0b90517035
tests: Get rid of a warning
2012-06-11 10:08:24 +01:00
nick
0441ef9d74
tests: Get check_serve working after the merge of doom
2012-06-11 10:04:31 +01:00
Matthew Bloch
e8b5fae7ab
Merge, just renaming old error macros.
2012-06-09 02:37:23 +01:00
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
b7096ef908
Audit client connections on acl update
2012-06-08 18:03:41 +01:00
Alex Young
35ca93b42c
Lock around acl updates
2012-06-08 11:02:40 +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
5fb0cd4cca
Fix O_NONBLOCK setting on self_pipes
2012-06-08 10:11:06 +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