tighten formatting rules
[oweals/gnunet.git] / src / util / crypto_hash_file.c
index 3e59002003a18949c880f71fa08935c18bdd3c19..e070918d34ebc722a8e79c0c3f8e6e3358e56f35 100644 (file)
@@ -2,22 +2,22 @@
      This file is part of GNUnet.
      Copyright (C) 2001-2013 GNUnet e.V.
 
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
+     GNUnet is free software: you can redistribute it and/or modify it
+     under the terms of the GNU Affero General Public License as published
+     by the Free Software Foundation, either version 3 of the License,
+     or (at your option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
+     Affero General Public License for more details.
 
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
+     You should have received a copy of the GNU Affero General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-*/
+     SPDX-License-Identifier: AGPL3.0-or-later
+
+ */
 /**
  * @file util/crypto_hash_file.c
  * @brief incremental hashing of files
 #include "gnunet_util_lib.h"
 #include <gcrypt.h>
 
-#define LOG(kind,...) GNUNET_log_from (kind, "util-crypto-hash-file", __VA_ARGS__)
+#define LOG(kind, ...) GNUNET_log_from (kind, "util-crypto-hash-file", \
+                                        __VA_ARGS__)
 
-#define LOG_STRERROR_FILE(kind,syscall,filename) GNUNET_log_from_strerror_file (kind, "util-crypto-hash-file", syscall, filename)
+#define LOG_STRERROR_FILE(kind, syscall, \
+                          filename) GNUNET_log_from_strerror_file (kind, \
+                                                                   "util-crypto-hash-file", \
+                                                                   syscall, \
+                                                                   filename)
 
 
 /**
@@ -37,7 +42,6 @@
  */
 struct GNUNET_CRYPTO_FileHashContext
 {
-
   /**
    * Function to call upon completion.
    */
@@ -81,7 +85,7 @@ struct GNUNET_CRYPTO_FileHashContext
   /**
    * Current task for hashing.
    */
-  struct GNUNET_SCHEDULER_Task * task;
+  struct GNUNET_SCHEDULER_Task *task;
 
   /**
    * Priority we use.
@@ -92,7 +96,6 @@ struct GNUNET_CRYPTO_FileHashContext
    * Blocksize.
    */
   size_t bsize;
-
 };
 
 
@@ -102,14 +105,14 @@ struct GNUNET_CRYPTO_FileHashContext
  */
 static void
 file_hash_finish (struct GNUNET_CRYPTO_FileHashContext *fhc,
-                  const struct GNUNET_HashCode * res)
+                  const struct GNUNET_HashCode *res)
 {
   fhc->callback (fhc->callback_cls, res);
   GNUNET_free (fhc->filename);
-  if (!GNUNET_DISK_handle_invalid (fhc->fh))
+  if (! GNUNET_DISK_handle_invalid (fhc->fh))
     GNUNET_break (GNUNET_OK == GNUNET_DISK_file_close (fhc->fh));
   gcry_md_close (fhc->md);
-  GNUNET_free (fhc);            /* also frees fhc->buffer */
+  GNUNET_free (fhc);             /* also frees fhc->buffer */
 }
 
 
@@ -124,34 +127,40 @@ file_hash_task (void *cls)
   struct GNUNET_CRYPTO_FileHashContext *fhc = cls;
   struct GNUNET_HashCode *res;
   size_t delta;
+  ssize_t sret;
 
   fhc->task = NULL;
   GNUNET_assert (fhc->offset <= fhc->fsize);
   delta = fhc->bsize;
   if (fhc->fsize - fhc->offset < delta)
     delta = fhc->fsize - fhc->offset;
-  if (delta != GNUNET_DISK_file_read (fhc->fh,
-                                     fhc->buffer,
-                                     delta))
+  sret = GNUNET_DISK_file_read (fhc->fh,
+                                fhc->buffer,
+                                delta);
+  if ((sret < 0) ||
+      (delta != (size_t) sret))
   {
     LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING,
-                      "read",
-                      fhc->filename);
-    file_hash_finish (fhc, NULL);
+                       "read",
+                       fhc->filename);
+    file_hash_finish (fhc,
+                      NULL);
     return;
   }
-  gcry_md_write (fhc->md, fhc->buffer, delta);
+  gcry_md_write (fhc->md,
+                 fhc->buffer,
+                 delta);
   fhc->offset += delta;
   if (fhc->offset == fhc->fsize)
   {
     res = (struct GNUNET_HashCode *) gcry_md_read (fhc->md,
-                                                  GCRY_MD_SHA512);
+                                                   GCRY_MD_SHA512);
     file_hash_finish (fhc, res);
     return;
   }
   fhc->task = GNUNET_SCHEDULER_add_with_priority (fhc->priority,
-                                                 &file_hash_task,
-                                                 fhc);
+                                                  &file_hash_task,
+                                                  fhc);
 }
 
 
@@ -168,7 +177,7 @@ file_hash_task (void *cls)
 struct GNUNET_CRYPTO_FileHashContext *
 GNUNET_CRYPTO_hash_file (enum GNUNET_SCHEDULER_Priority priority,
                          const char *filename,
-                        size_t blocksize,
+                         size_t blocksize,
                          GNUNET_CRYPTO_HashCompletedCallback callback,
                          void *callback_cls)
 {
@@ -176,7 +185,7 @@ GNUNET_CRYPTO_hash_file (enum GNUNET_SCHEDULER_Priority priority,
 
   GNUNET_assert (blocksize > 0);
   fhc =
-      GNUNET_malloc (sizeof (struct GNUNET_CRYPTO_FileHashContext) + blocksize);
+    GNUNET_malloc (sizeof(struct GNUNET_CRYPTO_FileHashContext) + blocksize);
   fhc->callback = callback;
   fhc->callback_cls = callback_cls;
   fhc->buffer = (unsigned char *) &fhc[1];
@@ -190,17 +199,17 @@ GNUNET_CRYPTO_hash_file (enum GNUNET_SCHEDULER_Priority priority,
   fhc->bsize = blocksize;
   if (GNUNET_OK !=
       GNUNET_DISK_file_size (filename,
-                            &fhc->fsize,
-                            GNUNET_NO,
-                            GNUNET_YES))
+                             &fhc->fsize,
+                             GNUNET_NO,
+                             GNUNET_YES))
   {
     GNUNET_free (fhc->filename);
     GNUNET_free (fhc);
     return NULL;
   }
   fhc->fh = GNUNET_DISK_file_open (filename,
-                                  GNUNET_DISK_OPEN_READ,
-                                  GNUNET_DISK_PERM_NONE);
+                                   GNUNET_DISK_OPEN_READ,
+                                   GNUNET_DISK_PERM_NONE);
   if (! fhc->fh)
   {
     GNUNET_free (fhc->filename);
@@ -209,8 +218,8 @@ GNUNET_CRYPTO_hash_file (enum GNUNET_SCHEDULER_Priority priority,
   }
   fhc->priority = priority;
   fhc->task = GNUNET_SCHEDULER_add_with_priority (priority,
-                                                 &file_hash_task,
-                                                 fhc);
+                                                  &file_hash_task,
+                                                  fhc);
   return fhc;
 }
 
@@ -226,8 +235,9 @@ GNUNET_CRYPTO_hash_file_cancel (struct GNUNET_CRYPTO_FileHashContext *fhc)
   GNUNET_SCHEDULER_cancel (fhc->task);
   GNUNET_free (fhc->filename);
   GNUNET_break (GNUNET_OK ==
-               GNUNET_DISK_file_close (fhc->fh));
+                GNUNET_DISK_file_close (fhc->fh));
   GNUNET_free (fhc);
 }
 
+
 /* end of crypto_hash_file.c */