[Libguestfs] [PATCH nbdkit] server: Use bool for types which are really booleans.

Richard W.M. Jones rjones at redhat.com
Tue Jan 1 18:21:40 UTC 2019


For mainly historical reasons we tended to use int to store boolean
values.  However using bool is probably safer in some corner cases
(eg. ‘v == true’ can fail badly if v is an int, but works for bool).
bool was added in C99 so let's use it.
---
 server/internal.h    | 16 +++++------
 server/connections.c | 28 +++++++++---------
 server/crypto.c      |  4 +--
 server/main.c        | 67 ++++++++++++++++++++++----------------------
 server/plugins.c     |  2 +-
 5 files changed, 59 insertions(+), 58 deletions(-)

diff --git a/server/internal.h b/server/internal.h
index b13685e..76d3a6d 100644
--- a/server/internal.h
+++ b/server/internal.h
@@ -79,7 +79,7 @@ struct debug_flag {
   char *name;                   /* plugin or filter name */
   char *flag;                   /* flag name */
   int value;                    /* value of flag */
-  int used;                     /* if flag was successfully set */
+  bool used;                    /* if flag was successfully set */
 };
 
 enum log_to {
@@ -94,22 +94,22 @@ extern struct debug_flag *debug_flags;
 extern const char *exportname;
 extern const char *ipaddr;
 extern enum log_to log_to;
-extern int newstyle;
+extern bool newstyle;
 extern const char *port;
-extern int readonly;
+extern bool readonly;
 extern const char *selinux_label;
+extern int threads;
 extern int tls;
 extern const char *tls_certificates_dir;
 extern const char *tls_psk;
-extern int tls_verify_peer;
+extern bool tls_verify_peer;
 extern char *unixsocket;
-extern int verbose;
-extern int threads;
+extern bool verbose;
 
 extern volatile int quit;
 extern int quit_fd;
 
-extern int forked_into_background;
+extern bool forked_into_background;
 
 extern struct backend *backend;
 #define for_each_backend(b) for (b = backend; b != NULL; b = b->next)
@@ -140,7 +140,7 @@ extern void connection_set_close (struct connection *, connection_close_function
 
 /* crypto.c */
 #define root_tls_certificates_dir sysconfdir "/pki/" PACKAGE_NAME
-extern void crypto_init (int tls_set_on_cli);
+extern void crypto_init (bool tls_set_on_cli);
 extern void crypto_free (void);
 extern int crypto_negotiate_tls (struct connection *conn, int sockin, int sockout);
 
diff --git a/server/connections.c b/server/connections.c
index 0d1bd74..0a89315 100644
--- a/server/connections.c
+++ b/server/connections.c
@@ -78,13 +78,13 @@ struct connection {
   uint32_t cflags;
   uint64_t exportsize;
   uint16_t eflags;
-  int readonly;
-  int can_flush;
-  int is_rotational;
-  int can_trim;
-  int can_zero;
-  int can_fua;
-  int using_tls;
+  bool readonly;
+  bool can_flush;
+  bool is_rotational;
+  bool can_trim;
+  bool can_zero;
+  bool can_fua;
+  bool using_tls;
 
   int sockin, sockout;
   connection_recv_function recv;
@@ -419,7 +419,7 @@ compute_eflags (struct connection *conn, uint16_t *flags)
     return -1;
   if (readonly || !fl) {
     eflags |= NBD_FLAG_READ_ONLY;
-    conn->readonly = 1;
+    conn->readonly = true;
   }
   if (!conn->readonly) {
     fl = backend->can_zero (backend, conn);
@@ -427,7 +427,7 @@ compute_eflags (struct connection *conn, uint16_t *flags)
       return -1;
     if (fl) {
       eflags |= NBD_FLAG_SEND_WRITE_ZEROES;
-      conn->can_zero = 1;
+      conn->can_zero = true;
     }
 
     fl = backend->can_trim (backend, conn);
@@ -435,7 +435,7 @@ compute_eflags (struct connection *conn, uint16_t *flags)
       return -1;
     if (fl) {
       eflags |= NBD_FLAG_SEND_TRIM;
-      conn->can_trim = 1;
+      conn->can_trim = true;
     }
 
     fl = backend->can_fua (backend, conn);
@@ -443,7 +443,7 @@ compute_eflags (struct connection *conn, uint16_t *flags)
       return -1;
     if (fl) {
       eflags |= NBD_FLAG_SEND_FUA;
-      conn->can_fua = 1;
+      conn->can_fua = true;
     }
   }
 
@@ -452,7 +452,7 @@ compute_eflags (struct connection *conn, uint16_t *flags)
     return -1;
   if (fl) {
     eflags |= NBD_FLAG_SEND_FLUSH;
-    conn->can_flush = 1;
+    conn->can_flush = true;
   }
 
   fl = backend->is_rotational (backend, conn);
@@ -460,7 +460,7 @@ compute_eflags (struct connection *conn, uint16_t *flags)
     return -1;
   if (fl) {
     eflags |= NBD_FLAG_ROTATIONAL;
-    conn->is_rotational = 1;
+    conn->is_rotational = true;
   }
 
   *flags = eflags;
@@ -793,7 +793,7 @@ _negotiate_handshake_newstyle_options (struct connection *conn)
         /* Upgrade the connection to TLS.  Also performs access control. */
         if (crypto_negotiate_tls (conn, conn->sockin, conn->sockout) == -1)
           return -1;
-        conn->using_tls = 1;
+        conn->using_tls = true;
         debug ("using TLS on this connection");
       }
       break;
diff --git a/server/crypto.c b/server/crypto.c
index 5b01684..4638a69 100644
--- a/server/crypto.c
+++ b/server/crypto.c
@@ -230,7 +230,7 @@ start_psk (void)
  * and loading the server certificate.
  */
 void
-crypto_init (int tls_set_on_cli)
+crypto_init (bool tls_set_on_cli)
 {
   int err, r;
   const char *what;
@@ -521,7 +521,7 @@ crypto_negotiate_tls (struct connection *conn, int sockin, int sockout)
  */
 
 void
-crypto_init (int tls_set_on_cli)
+crypto_init (bool tls_set_on_cli)
 {
   if (tls > 0) {
     fprintf (stderr,
diff --git a/server/main.c b/server/main.c
index e8a15f7..5e538bf 100644
--- a/server/main.c
+++ b/server/main.c
@@ -35,6 +35,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdbool.h>
 #include <string.h>
 #include <fcntl.h>
 #include <unistd.h>
@@ -75,26 +76,26 @@ static unsigned int get_socket_activation (void);
 static int is_config_key (const char *key, size_t len);
 
 struct debug_flag *debug_flags; /* -D */
-int exit_with_parent;           /* --exit-with-parent */
+bool exit_with_parent;          /* --exit-with-parent */
 const char *exportname;         /* -e */
-int foreground;                 /* -f */
+bool foreground;                /* -f */
 const char *ipaddr;             /* -i */
 enum log_to log_to = LOG_TO_DEFAULT; /* --log */
-int newstyle = 1;               /* 0 = -o, 1 = -n */
+bool newstyle = true;           /* false = -o, true = -n */
 char *pidfile;                  /* -P */
 const char *port;               /* -p */
-int readonly;                   /* -r */
+bool readonly;                  /* -r */
 char *run;                      /* --run */
-int listen_stdin;               /* -s */
+bool listen_stdin;              /* -s */
 const char *selinux_label;      /* --selinux-label */
 int threads;                    /* -t */
 int tls;                        /* --tls : 0=off 1=on 2=require */
 const char *tls_certificates_dir; /* --tls-certificates */
 const char *tls_psk;            /* --tls-psk */
-int tls_verify_peer;            /* --tls-verify-peer */
+bool tls_verify_peer;           /* --tls-verify-peer */
 char *unixsocket;               /* -U */
 const char *user, *group;       /* -u & -g */
-int verbose;                    /* -v */
+bool verbose;                   /* -v */
 unsigned int socket_activation  /* $LISTEN_FDS and $LISTEN_PID set */;
 
 /* Detection of request to exit via signal.  Most places in the code
@@ -106,7 +107,7 @@ int quit_fd;
 static int write_quit_fd;
 
 /* True if we forked into the background (used to control log messages). */
-int forked_into_background;
+bool forked_into_background;
 
 /* The currently loaded plugin. */
 struct backend *backend;
@@ -160,8 +161,8 @@ int
 main (int argc, char *argv[])
 {
   int c;
-  int help = 0, version = 0, dump_plugin = 0;
-  int tls_set_on_cli = 0;
+  bool help = false, version = false, dump_plugin = false;
+  int tls_set_on_cli = false;
   int short_name;
   const char *filename;
   char *p;
@@ -229,7 +230,7 @@ main (int argc, char *argv[])
         flag->flag = strndup (p, q-p-1);
         if (!flag->flag) goto debug_flag_perror;
         if (sscanf (q, "%d", &flag->value) != 1) goto bad_debug_flag;
-        flag->used = 0;
+        flag->used = false;
 
         /* Add flag to the linked list. */
         flag->next = debug_flags;
@@ -242,13 +243,13 @@ main (int argc, char *argv[])
       exit (EXIT_SUCCESS);
 
     case DUMP_PLUGIN_OPTION:
-      dump_plugin = 1;
+      dump_plugin = true;
       break;
 
     case EXIT_WITH_PARENT_OPTION:
 #ifdef HAVE_EXIT_WITH_PARENT
-      exit_with_parent = 1;
-      foreground = 1;
+      exit_with_parent = true;
+      foreground = true;
       break;
 #else
       fprintf (stderr,
@@ -300,7 +301,7 @@ main (int argc, char *argv[])
         exit (EXIT_FAILURE);
       }
       run = optarg;
-      foreground = 1;
+      foreground = true;
       break;
 
     case SELINUX_LABEL_OPTION:
@@ -315,7 +316,7 @@ main (int argc, char *argv[])
       exit (EXIT_SUCCESS);
 
     case TLS_OPTION:
-      tls_set_on_cli = 1;
+      tls_set_on_cli = true;
       if (strcasecmp (optarg, "require") == 0 ||
           strcasecmp (optarg, "required") == 0 ||
           strcasecmp (optarg, "force") == 0)
@@ -336,16 +337,16 @@ main (int argc, char *argv[])
       break;
 
     case TLS_VERIFY_PEER_OPTION:
-      tls_verify_peer = 1;
+      tls_verify_peer = true;
       break;
 
     case 'e':
       exportname = optarg;
-      newstyle = 1;
+      newstyle = true;
       break;
 
     case 'f':
-      foreground = 1;
+      foreground = true;
       break;
 
     case 'g':
@@ -362,11 +363,11 @@ main (int argc, char *argv[])
       break;
 
     case 'n':
-      newstyle = 1;
+      newstyle = true;
       break;
 
     case 'o':
-      newstyle = 0;
+      newstyle = false;
       break;
 
     case 'P':
@@ -385,7 +386,7 @@ main (int argc, char *argv[])
       break;
 
     case 'r':
-      readonly = 1;
+      readonly = true;
       break;
 
     case 's':
@@ -394,7 +395,7 @@ main (int argc, char *argv[])
                  program_name);
         exit (EXIT_FAILURE);
       }
-      listen_stdin = 1;
+      listen_stdin = true;
       break;
 
     case 't':
@@ -431,15 +432,15 @@ main (int argc, char *argv[])
       break;
 
     case 'v':
-      verbose = 1;
+      verbose = true;
       break;
 
     case 'V':
-      version = 1;
+      version = true;
       break;
 
     case HELP_OPTION:
-      help = 1;
+      help = true;
       break;
 
     default:
@@ -477,7 +478,7 @@ main (int argc, char *argv[])
   }
 
   /* Oldstyle protocol + exportname not allowed. */
-  if (newstyle == 0 && exportname != NULL) {
+  if (!newstyle && exportname != NULL) {
     fprintf (stderr,
              "%s: cannot use oldstyle protocol (-o) and exportname (-e)\n",
              program_name);
@@ -489,7 +490,7 @@ main (int argc, char *argv[])
     exportname = "";
 
   /* --tls=require and oldstyle won't work. */
-  if (tls == 2 && newstyle == 0) {
+  if (tls == 2 && !newstyle) {
     fprintf (stderr,
              "%s: cannot use oldstyle protocol (-o) and require TLS\n",
              program_name);
@@ -727,7 +728,7 @@ open_plugin_so (size_t i, const char *name, int short_name)
 {
   struct backend *ret;
   char *filename = (char *) name;
-  int free_filename = 0;
+  bool free_filename = false;
   void *dl;
   struct nbdkit_plugin *(*plugin_init) (void);
   char *error;
@@ -739,7 +740,7 @@ open_plugin_so (size_t i, const char *name, int short_name)
       perror ("asprintf");
       exit (EXIT_FAILURE);
     }
-    free_filename = 1;
+    free_filename = true;
   }
 
   dl = dlopen (filename, RTLD_NOW|RTLD_GLOBAL);
@@ -780,7 +781,7 @@ open_filter_so (struct backend *next, size_t i,
 {
   struct backend *ret;
   char *filename = (char *) name;
-  int free_filename = 0;
+  bool free_filename = false;
   void *dl;
   struct nbdkit_filter *(*filter_init) (void);
   char *error;
@@ -792,7 +793,7 @@ open_filter_so (struct backend *next, size_t i,
       perror ("asprintf");
       exit (EXIT_FAILURE);
     }
-    free_filename = 1;
+    free_filename = true;
   }
 
   dl = dlopen (filename, RTLD_NOW|RTLD_GLOBAL);
@@ -1023,7 +1024,7 @@ fork_into_background (void)
   if (!verbose)
     dup2 (1, 2);
 
-  forked_into_background = 1;
+  forked_into_background = true;
   debug ("forked into background (new pid = %d)", getpid ());
 }
 
diff --git a/server/plugins.c b/server/plugins.c
index 52dd3a5..701c18e 100644
--- a/server/plugins.c
+++ b/server/plugins.c
@@ -811,7 +811,7 @@ set_debug_flags (void *dl, const char *name)
       *sym = flag->value;
 
       /* Mark this flag as used. */
-      flag->used = 1;
+      flag->used = true;
     }
   }
 }
-- 
2.19.2




More information about the Libguestfs mailing list