server/crypto.c: Improve error messages in crypto_send
[nbdkit.git] / tests / test-newstyle.c
blobc3be12c95389ae253bb9d441a7063d64b5bfd660
1 /* nbdkit
2 * Copyright Red Hat
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * * Neither the name of Red Hat nor the names of its contributors may be
16 * used to endorse or promote products derived from this software without
17 * specific prior written permission.
19 * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
22 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
27 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
33 #include <config.h>
35 #include <stdio.h>
36 #include <stdlib.h>
37 #include <string.h>
39 #include <libnbd.h>
41 int
42 main (int argc, char *argv[])
44 struct nbd_handle *nbd;
46 nbd = nbd_create ();
47 if (nbd == NULL) {
48 fprintf (stderr, "%s\n", nbd_get_error ());
49 exit (EXIT_FAILURE);
52 if (nbd_connect_command (nbd,
53 (char *[]) {
54 "nbdkit", "-s", "--exit-with-parent",
55 "--newstyle", "file", "file-data",
56 NULL }) == -1) {
57 fprintf (stderr, "%s\n", nbd_get_error ());
58 exit (EXIT_FAILURE);
61 /* Simply connecting successfully is enough, but with libnbd 1.2 we
62 * can also check that the protocol being used is the expected one.
64 #ifdef LIBNBD_HAVE_NBD_GET_PROTOCOL
65 const char *s = nbd_get_protocol (nbd);
66 if (s == NULL) {
67 fprintf (stderr, "%s\n", nbd_get_error ());
68 exit (EXIT_FAILURE);
70 if (strcmp (s, "newstyle-fixed") != 0) {
71 fprintf (stderr, "%s: FAILED incorrect protocol used: %s\n",
72 argv[0], s);
73 exit (EXIT_FAILURE);
75 #endif
77 nbd_close (nbd);
78 exit (EXIT_SUCCESS);