Wouter Verhelst [Sun, 8 Mar 2015 23:03:52 +0000 (00:03 +0100)]
Drop support for the oldstyle protocol
The newstyle protocol was originally written for NBD 2.9.17, released in
2009. We are 2015 now. People have had over five years to migrate their
setups now.
Additionally, due to the fact that I originally wrote support for the
newstyle protocol in a somewhat confusing way, maintaining that part of
the code has become harder than it needs be. A bug did now appear
because I couldn't read my own code anymore.
While it should, in theory, be possible to just fix the damn code while
still retaining support for the oldstyle protocol, it's easier (and not
too unreasonable) to just drop that instead.
Also fix the test suite so it doesn't try to run tests using the oldstyle
protocol anymore
Wouter Verhelst [Thu, 5 Mar 2015 20:46:04 +0000 (21:46 +0100)]
Prepare 3.9.1
Christian Hesse [Thu, 5 Mar 2015 11:01:01 +0000 (12:01 +0100)]
remember in global variable whether or not to send zeros
For modern connection function negotiate() is called twice, but client
flags are sent only once. So remember in global variable whether or not
to send zeros.
Signed-off-by: Christian Hesse <mail@eworm.de>
Wouter Verhelst [Mon, 2 Mar 2015 17:55:54 +0000 (18:55 +0100)]
Release 3.9
Wouter Verhelst [Mon, 2 Mar 2015 17:55:37 +0000 (18:55 +0100)]
Make test suite script be more helpful when run in "set up config" mode
Wouter Verhelst [Mon, 2 Mar 2015 17:54:42 +0000 (18:54 +0100)]
Don't forget to signal success when things work
Wouter Verhelst [Mon, 2 Mar 2015 17:52:45 +0000 (18:52 +0100)]
Extend test suite to test AF_UNIX functionality
Wouter Verhelst [Sun, 1 Mar 2015 21:06:43 +0000 (22:06 +0100)]
Document unix domain server mode
Wouter Verhelst [Sun, 1 Mar 2015 21:02:21 +0000 (22:02 +0100)]
Add server-side support for UNIX domain sockets
Wouter Verhelst [Sun, 11 Jan 2015 17:52:44 +0000 (18:52 +0100)]
Don't forget to close the DIR* when we're not in error handling
Wouter Verhelst [Sun, 11 Jan 2015 17:41:32 +0000 (18:41 +0100)]
Reorder options
GNU getopt() will happily reorder non-option arguments if we ask it to
(which we do), but that's a GNU extension. Since we want to support
FreeBSD too, don't put these arguments at the end, but put them before
non-option arguments.
Wouter Verhelst [Sun, 11 Jan 2015 17:14:42 +0000 (18:14 +0100)]
Whoops; fix missed logging() call
Wouter Verhelst [Sun, 11 Jan 2015 17:12:18 +0000 (18:12 +0100)]
Unbreak --enable-syslog
Wouter Verhelst [Sun, 11 Jan 2015 17:00:37 +0000 (18:00 +0100)]
Merge CorvusCorax/treefiles
Adds support for exporting a single export as a swathload of files. This
is similar to, but not exactly the same as, the multifile export mode.
The difference lies in the fact that multifile expects the files to be
of differing sizes, and will not remove them; in contrast, the treefiles
mode will expect them all to be a single page in size, and will remove
them on a TRIM command.
This mode is useful for FUSE-backed exports which may have their storage
on a remote server (e.g., SSHFS), where it would be inefficient to
transfer the entire export for every (small) write.
* CorvusCorax/treefiles:
added test cases for tree mode
got rid of CamelCase
modified documentation to reflect removal of -t command line switch
Changed treefile implementation for better code compatibility
removed "treefiles" option from commandline as commandline is deprecated by policy and no new features must be added
removed new documentation section which had accidently been added twice
fixed error handling, messages, cleanups
fixed typo
Fix mistake in trim address calculation
Added support for "treefile" representation with one file per block in a subdir tree structure
Wouter Verhelst [Sat, 3 Jan 2015 09:13:15 +0000 (10:13 +0100)]
Make -F work on FreeBSD, too
Eric Price [Wed, 3 Dec 2014 14:29:27 +0000 (15:29 +0100)]
added test cases for tree mode
Eric Price [Wed, 3 Dec 2014 13:47:08 +0000 (14:47 +0100)]
got rid of CamelCase
Eric Price [Wed, 3 Dec 2014 13:40:55 +0000 (14:40 +0100)]
modified documentation to reflect removal of -t command line switch
Eric Price [Wed, 3 Dec 2014 13:04:16 +0000 (14:04 +0100)]
Changed treefile implementation for better code compatibility
Eric Price [Wed, 3 Dec 2014 09:16:58 +0000 (10:16 +0100)]
removed "treefiles" option from commandline as commandline is deprecated by policy and no new features must be added
Eric Price [Mon, 1 Dec 2014 15:14:50 +0000 (16:14 +0100)]
removed new documentation section which had accidently been added twice
Eric Price [Mon, 1 Dec 2014 10:53:59 +0000 (11:53 +0100)]
fixed error handling, messages, cleanups
Eric Price [Mon, 1 Dec 2014 09:09:01 +0000 (10:09 +0100)]
fixed typo
Eric Price [Mon, 1 Dec 2014 09:01:44 +0000 (10:01 +0100)]
Fix mistake in trim address calculation
Eric Price [Mon, 1 Dec 2014 08:31:21 +0000 (09:31 +0100)]
Merge branch 'master' into corvuscorax/treefiles
Conflicts:
nbd-server.c
Eric Price [Mon, 1 Dec 2014 08:28:54 +0000 (09:28 +0100)]
Added support for "treefile" representation with one file per block in a subdir tree structure
Wouter Verhelst [Fri, 7 Nov 2014 23:44:01 +0000 (00:44 +0100)]
Merge branch 'master' of github.com:yoe/nbd
* 'master' of github.com:yoe/nbd:
Make this listen to localhost only, too
Add missing include
Wouter Verhelst [Fri, 7 Nov 2014 23:42:31 +0000 (00:42 +0100)]
Add license statement
Acked-By: Paolo Bonzini <pbonzini@redhat.com>
Acked-By: Alex Bligh <alex@alex.org.uk>
Wouter Verhelst [Fri, 7 Nov 2014 14:19:13 +0000 (15:19 +0100)]
Merge branch 'master' of github.com:yoe/nbd
Wouter Verhelst [Fri, 7 Nov 2014 14:18:51 +0000 (15:18 +0100)]
Make this listen to localhost only, too
Wouter Verhelst [Fri, 7 Nov 2014 14:16:48 +0000 (15:16 +0100)]
Add missing include
setsockopt() wants <sys/types.h> and <sys/socket.h>. Add.
Wouter Verhelst [Thu, 6 Nov 2014 14:02:08 +0000 (15:02 +0100)]
Add missing return
CID#1193182
Wouter Verhelst [Thu, 6 Nov 2014 13:59:19 +0000 (14:59 +0100)]
Fix out-of-bounds write
In the (unlikely, if not impossible) case that that read returns 256
characters, we'll still be overwriting one stack byte, which is Wrong(tm).
CID#1193183
Wouter Verhelst [Sat, 25 Oct 2014 10:35:26 +0000 (12:35 +0200)]
Merge https://github.com/bamos/nbd
* https://github.com/bamos/nbd:
Disable swap option on Android.
Brandon Amos [Fri, 24 Oct 2014 23:06:57 +0000 (19:06 -0400)]
Disable swap option on Android.
Hi, this is a followup on http://sourceforge.net/p/nbd/mailman/message/
32862671/.
I've added options to disable the swap option when compiling for
with android-18, arm-linux-androideabi-4.8, and the Android NDK r10b.
I'm using the below snippet to create a standalone toolchain
and compile, and I'll try to keep my post at
http://bamos.github.io/2014/09/08/nbd-android/ synchronized
with the master branch of nbd, so feel free tag me if
any changes are made to this.
Regards,
Brandon.
---
die() { echo $*; return -1; }
touch man/nbd-{client.8,server.{1,5},trdump.1}.sh.in
autoreconf -f -i || die "autoreconf failed."
$ANDROID_NDK/build/tools/make-standalone-toolchain.sh \
--platform=android-18 \
--toolchain=arm-linux-androideabi-4.8 \
--install-dir=$PWD/toolchain
pathadd() { PATH="${PATH:+"$PATH:"}$1"; }
pathadd "$PWD/toolchain/bin"
command -v arm-linux-androideabi-gcc &> /dev/null || exit -1
export SYSROOT=$PWD/toolchain/sysroot
export CC="arm-linux-androideabi-gcc --sysroot=$SYSROOT"
export CXX=arm-linux-androideabi-g++
export LD=arm-linux-androideabi-ld
export RANLIB=arm-linux-androideabi-ranlib
export AR=arm-linux-androideabi-ar
export CROSS_PREFIX=arm-linux-androideabi-
export CFLAGS='-march=armv7-a -mfloat-abi=softfp -mfpu=neon'
export LDFLAGS='-Wl,--fix-cortex-a8'
./configure --host=armv7-unknown-linux --target=armv7-unknown-linux \
|| die "configure failed"
make nbd-client
Wouter Verhelst [Tue, 21 Oct 2014 07:16:51 +0000 (09:16 +0200)]
Update name.
Wouter Verhelst [Mon, 20 Oct 2014 22:07:13 +0000 (00:07 +0200)]
Update message number, after consultation with Takahiro
Wouter Verhelst [Mon, 20 Oct 2014 22:00:32 +0000 (00:00 +0200)]
Fix uninitialized variable in oldstyle negotiation
Coverity CID#1248168
Wouter Verhelst [Fri, 17 Oct 2014 22:01:33 +0000 (00:01 +0200)]
Document existing request types in a somewhat more detailed manner
Wouter Verhelst [Wed, 15 Oct 2014 20:01:58 +0000 (22:01 +0200)]
Modernize README, and point to sourceforge download pages for the benefit of github users.
Wouter Verhelst [Thu, 16 Oct 2014 06:29:07 +0000 (08:29 +0200)]
Point to mailinglist
Thomas Eriksson [Tue, 14 Oct 2014 23:35:47 +0000 (01:35 +0200)]
Extract the unix socket code from opennet() into a distinct openunix().
Thomas Eriksson [Tue, 14 Oct 2014 23:16:26 +0000 (01:16 +0200)]
Fixed previous mistakes with unix socket code.
Thomas Eriksson [Mon, 13 Oct 2014 12:07:45 +0000 (14:07 +0200)]
Adding capability for the client to connect to a unix socket.
Wouter Verhelst [Fri, 10 Oct 2014 15:24:21 +0000 (17:24 +0200)]
Avoid sending 124 zeroes of useless
Wouter Verhelst [Fri, 10 Oct 2014 13:49:04 +0000 (15:49 +0200)]
Handle absense of (struct dirent).d_type
*BSD and Linux implement this, but it's not required by POSIX and, e.g.,
Solaris/IllumOS don't support it.
Since we already have to deal with DT_UNKNOWN and call the stat stuff in
that case anyway, just do some autoconf and preprocessor magic to hide
the differences.
Should fix github.com issue#22.
Wouter Verhelst [Fri, 10 Oct 2014 13:34:00 +0000 (15:34 +0200)]
Clarify that gznbd is slightly outdated
Wouter Verhelst [Fri, 10 Oct 2014 13:32:47 +0000 (15:32 +0200)]
Merge https://github.com/ahippo/nbd
Wouter Verhelst [Wed, 8 Oct 2014 21:53:52 +0000 (23:53 +0200)]
Don't use XFAIL_TESTS, instead make nbd-tester-client exit with appropriate error state
Wouter Verhelst [Wed, 8 Oct 2014 21:13:12 +0000 (23:13 +0200)]
Test that trying to write to a read-only export fails
Wouter Verhelst [Wed, 8 Oct 2014 21:12:59 +0000 (23:12 +0200)]
Document a way for a default export
Andrey Mazo [Thu, 21 Aug 2014 09:28:42 +0000 (13:28 +0400)]
gznbd: use atoll() to convert size argument
gznbd works incorrectly with large size argument which overflows 32-bit integer.
For example:
gznbd /dev/nbd0 /root/test.gz
1000204886016
gznbd:
1000204886016 does not appear to be a valid size
The size is stored in u64, but is converted from a string using atol().
Simply replace atol() with atoll().
gznbd is compiled with -std=gnu99 (as the whole nbd), so atoll() is available.
Links to the original patch:
[1] https://sourceforge.net/p/nbd/mailman/nbd-general/thread/
560411311771602%40web126.yandex.ru/#msg27860052
[2] http://marc.info/?l=nbd-general&m=
131177162001072&w=2
Andrey Mazo [Thu, 2 Oct 2014 00:37:58 +0000 (04:37 +0400)]
Wire gznbd into general configure.ac/Makefile.am
Add --enable-gznbd configure option (disabled by default).
Avoid multiple recompilations of cliserv.c by factoring it into a static
library.
This fixes gznbd compilation broken after
43b96ec0d22c0a42c20104cb66aa2d2236da3e77:
gznbd.c:(.text.startup+0x420): undefined reference to `ntohll'
Wouter Verhelst [Wed, 1 Oct 2014 20:47:21 +0000 (22:47 +0200)]
Make short version of -V actually work
Wouter Verhelst [Wed, 1 Oct 2014 20:47:14 +0000 (22:47 +0200)]
Document -V option
Wouter Verhelst [Wed, 1 Oct 2014 20:42:18 +0000 (22:42 +0200)]
Fix various warnings that pop up by default with gcc 4.9
Wouter Verhelst [Wed, 1 Oct 2014 20:35:44 +0000 (22:35 +0200)]
Replace return by break statement
Both are extraneous, really, but keep the break there for consistency (and to
avoid "eep, forgot... ah, no" kind of things)
Using return instead (without argument) makes clang choke, which is useless.
txt.file [Wed, 1 Oct 2014 14:07:20 +0000 (16:07 +0200)]
Update nbd-server.c
Added a parameter to output a version string.
Wouter Verhelst [Thu, 18 Sep 2014 08:32:46 +0000 (10:32 +0200)]
Revert "Enable automatic coverity coverage"
This reverts commit
eb6365af2c4c8eecf62317940c06f2bc58810a98.
The travis stuff isn't supposed to work that way; also, we're doing
weekly coverity builds with buildbot now, so it's less relevant.
Wouter Verhelst [Mon, 15 Sep 2014 19:02:17 +0000 (21:02 +0200)]
Implement new config file option "cowdir"
Allows to specify a location where copy-on-write files should be
written.
delmasce [Sun, 14 Sep 2014 22:30:51 +0000 (00:30 +0200)]
Update clientacl.c
Update test code with new prototype of address_matches()
delmasce [Sun, 14 Sep 2014 21:53:51 +0000 (23:53 +0200)]
Pass whole struct sockaddr to function address_matches() and use it to
compare against the masks defined in auth file.
Wouter Verhelst [Sun, 14 Sep 2014 21:27:20 +0000 (23:27 +0200)]
Fix obi-wan (whoops)
Christian Hesse [Fri, 9 May 2014 07:06:06 +0000 (09:06 +0200)]
add missing include syslog.h
Wouter Verhelst [Sun, 14 Sep 2014 18:42:58 +0000 (20:42 +0200)]
Clear ai on return, also in case of error
Coverity CID#1238644
Wouter Verhelst [Sun, 14 Sep 2014 09:58:47 +0000 (11:58 +0200)]
Ensure pidftemplate is always 0-terminated
Coverity CID#1238650
Wouter Verhelst [Sun, 14 Sep 2014 09:54:55 +0000 (11:54 +0200)]
Ensure the "errstr" buffer is always 0-terminated
Coverity CID#1238651 (and many others)
Wouter Verhelst [Fri, 25 Jul 2014 07:46:19 +0000 (09:46 +0200)]
Don't try to be smarter than the compiler about inlining
When we specify "inline int foo()" (as opposed to "static inline", I
guess), compilation may fail when compiling with -O0, as I sometimes do
to simplify debugging.
The compiler is way smarter about deciding when things are best inlined,
anyway. So stop trying to tell it what to do.
Wouter Verhelst [Fri, 25 Jul 2014 07:45:52 +0000 (09:45 +0200)]
Don't warn about oldstyle exports if oldstyle is set to true.
Bug reported through Ubuntu Launchpad
Wouter Verhelst [Fri, 25 Jul 2014 07:44:24 +0000 (09:44 +0200)]
Fix up parse_cfile signature
parse_cfile repurposed the genconf parameter as a boolean flag (in
addition to its storing of generic configuration) to signal the
expectation (or absense thereof) of a [generic] section in the
configuration file.
Not only is this confusing, it also makes it impossible to reliably
detect whether we want an oldstyle export. Fix for that in the next
commit.
Christian Hesse [Thu, 8 May 2014 09:10:59 +0000 (11:10 +0200)]
fix typo
Christian Hesse [Thu, 8 May 2014 09:10:58 +0000 (11:10 +0200)]
do not try to open authorization file without filename
Wouter Verhelst [Thu, 20 Mar 2014 07:34:12 +0000 (08:34 +0100)]
Guard against errors
Wouter Verhelst [Thu, 20 Mar 2014 07:16:37 +0000 (08:16 +0100)]
Enable automatic coverity coverage
Wouter Verhelst [Thu, 20 Mar 2014 07:08:26 +0000 (08:08 +0100)]
Make the travis stuff work (after some testing on a separate branch)
Wouter Verhelst [Thu, 20 Mar 2014 07:06:18 +0000 (08:06 +0100)]
Clean up cliserv.h
Previously, cliserv.h also contained some functions, which would then be
defined twice if we hadn't inlined them.
That is a fairly ugly way of doing things, so instead move the few
functions in cliserv.h to a new cliserv.c, and compile and link that in.
This should also make more recent versions of clang not be unhappy about
"missing" functions
Wouter Verhelst [Wed, 19 Mar 2014 23:19:05 +0000 (00:19 +0100)]
Install a more recent version of automake through apt pinning. I hope.
Wouter Verhelst [Wed, 19 Mar 2014 22:53:27 +0000 (23:53 +0100)]
Figure out which versions of automake we have to work with
Wouter Verhelst [Wed, 19 Mar 2014 22:41:27 +0000 (23:41 +0100)]
autotools need to be regenerated
Wouter Verhelst [Wed, 19 Mar 2014 22:30:28 +0000 (23:30 +0100)]
Add travis config file
Wouter Verhelst [Wed, 19 Mar 2014 18:05:34 +0000 (19:05 +0100)]
Prepare for 3.8
Wouter Verhelst [Wed, 19 Mar 2014 17:55:52 +0000 (18:55 +0100)]
Don't go out of bounds in an array...
Wouter Verhelst [Wed, 19 Mar 2014 17:39:25 +0000 (18:39 +0100)]
Zero-terminate buffers with data supplied by remote parties
Found by coverity scan
Wouter Verhelst [Wed, 19 Mar 2014 17:36:36 +0000 (18:36 +0100)]
Close the directory handle when we no longer need it
Found by coverity scan
Wouter Verhelst [Wed, 19 Mar 2014 17:09:16 +0000 (18:09 +0100)]
Add assertion, to make LLVM static analyzer happy
Wouter Verhelst [Tue, 28 Jan 2014 07:44:13 +0000 (08:44 +0100)]
Revert "Make this part of the code at least look similar"
This reverts commit
701af5d057f523c714517085469dec556aa76b28.
The test suite apparently expects this to be there... do this properly
later on.
Wouter Verhelst [Tue, 28 Jan 2014 07:39:41 +0000 (08:39 +0100)]
Support systemd initrd kill protection
systemd wants us to mark our argv[0] when we don't want to be killed.
Since I think that's a bit ugly, add an option so it's only done when
necessary.
Wouter Verhelst [Sun, 26 Jan 2014 20:23:20 +0000 (21:23 +0100)]
Make this part of the code at least look similar
First we assert that s != NULL.
Then we check if a != NULL, and return -1 if it is. That just makes no sense.
Change the check for a to also be an assertion, and make things at least look similar.
Wouter Verhelst [Sat, 25 Jan 2014 11:56:00 +0000 (12:56 +0100)]
Silence warning
Wouter Verhelst [Wed, 22 Jan 2014 09:47:33 +0000 (10:47 +0100)]
Be less verbose
If we list each and every request, that means a build log becomes huge
and unwieldy, so reduce the chatter somewhat.
Wouter Verhelst [Wed, 22 Jan 2014 00:44:24 +0000 (01:44 +0100)]
Add build status applet, too
Somewhat ugly, but it works -- and that's what matters most.
Wouter Verhelst [Tue, 21 Jan 2014 20:57:24 +0000 (21:57 +0100)]
Disable integrityhuge test
nbd-server currently may deadlock on huge reads or writes, especially on
slower machines.
We're fixing this on the io_transaction branch, but meanwhile disable
integrityhuge again.
Wouter Verhelst [Tue, 21 Jan 2014 20:40:04 +0000 (21:40 +0100)]
Release 3.7
Wouter Verhelst [Tue, 21 Jan 2014 19:52:06 +0000 (20:52 +0100)]
Add README.md to Makefile.am
README files are distributed automatically, but README.md files are not;
so add it explicitly
Wouter Verhelst [Tue, 21 Jan 2014 19:36:18 +0000 (20:36 +0100)]
Create Coverity model
Wouter Verhelst [Tue, 21 Jan 2014 19:16:56 +0000 (20:16 +0100)]
Fix typo
the "dir" parameter contains the name of the directory, while the "dirh"
variable is an opendir() handle that'll only be NULL in case of error.
By complete accident, this compiled, but it wouldn't actually ever do
anything useful.
Wouter Verhelst [Tue, 21 Jan 2014 19:14:06 +0000 (20:14 +0100)]
Don't leak resources
Close the authorized file in _all_ cases, not just when authorized.
Found by coverity scan.
Wouter Verhelst [Tue, 21 Jan 2014 19:12:35 +0000 (20:12 +0100)]
Reformat README to markdown
Wouter Verhelst [Wed, 15 Jan 2014 12:32:09 +0000 (13:32 +0100)]
Make things work again
Wouter Verhelst [Wed, 15 Jan 2014 12:16:33 +0000 (13:16 +0100)]
Tickle the git repository
Did something wrong, hopefully it will work now.