[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r29890 - in gnunet/src: fs include revocation util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r29890 - in gnunet/src: fs include revocation util |
Date: |
Sun, 6 Oct 2013 13:16:26 +0200 |
Author: grothoff
Date: 2013-10-06 13:16:26 +0200 (Sun, 06 Oct 2013)
New Revision: 29890
Modified:
gnunet/src/fs/fs_file_information.c
gnunet/src/include/gnunet_configuration_lib.h
gnunet/src/include/gnunet_crypto_lib.h
gnunet/src/include/gnunet_disk_lib.h
gnunet/src/revocation/gnunet-service-revocation.c
gnunet/src/util/disk.c
Log:
-load revocations from disk, misc doxygen/style fixes
Modified: gnunet/src/fs/fs_file_information.c
===================================================================
--- gnunet/src/fs/fs_file_information.c 2013-10-06 09:35:52 UTC (rev 29889)
+++ gnunet/src/fs/fs_file_information.c 2013-10-06 11:16:26 UTC (rev 29890)
@@ -116,7 +116,7 @@
char fn_conv[MAX_PATH];
#endif
- /* FIXME: should includeSymLinks be GNUNET_NO or GNUNET_YES here? */
+ /* FIXME: should include_symbolic_links be GNUNET_NO or GNUNET_YES here? */
if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fsize, GNUNET_NO,
GNUNET_YES))
{
GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "stat", filename);
Modified: gnunet/src/include/gnunet_configuration_lib.h
===================================================================
--- gnunet/src/include/gnunet_configuration_lib.h 2013-10-06 09:35:52 UTC
(rev 29889)
+++ gnunet/src/include/gnunet_configuration_lib.h 2013-10-06 11:16:26 UTC
(rev 29890)
@@ -324,9 +324,10 @@
* @return #GNUNET_OK on success, #GNUNET_SYSERR on error
*/
int
-GNUNET_CONFIGURATION_get_value_string (const struct GNUNET_CONFIGURATION_Handle
- *cfg, const char *section,
- const char *option, char **value);
+GNUNET_CONFIGURATION_get_value_string (const struct
GNUNET_CONFIGURATION_Handle *cfg,
+ const char *section,
+ const char *option,
+ char **value);
/**
@@ -341,11 +342,11 @@
* @return #GNUNET_OK on success, #GNUNET_SYSERR on error
*/
int
-GNUNET_CONFIGURATION_get_value_filename (const struct
- GNUNET_CONFIGURATION_Handle *cfg,
+GNUNET_CONFIGURATION_get_value_filename (const struct
GNUNET_CONFIGURATION_Handle *cfg,
const char *section,
const char *option, char **value);
+
/**
* Iterate over the set of filenames stored in a configuration value.
*
Modified: gnunet/src/include/gnunet_crypto_lib.h
===================================================================
--- gnunet/src/include/gnunet_crypto_lib.h 2013-10-06 09:35:52 UTC (rev
29889)
+++ gnunet/src/include/gnunet_crypto_lib.h 2013-10-06 11:16:26 UTC (rev
29890)
@@ -189,7 +189,6 @@
};
-
/**
* The identity of the host (wraps the signing key of the peer).
*/
@@ -296,7 +295,7 @@
* @param sum current sum, initially 0
* @param buf buffer to calculate CRC over (must be 16-bit aligned)
* @param len number of bytes in @a buf, must be multiple of 2
- * @return updated crc sum (must be subjected to GNUNET_CRYPTO_crc16_finish to
get actual crc16)
+ * @return updated crc sum (must be subjected to #GNUNET_CRYPTO_crc16_finish
to get actual crc16)
*/
uint32_t
GNUNET_CRYPTO_crc16_step (uint32_t sum, const void *buf, size_t len);
@@ -426,7 +425,7 @@
* @param iv initialization vector
* @param skey session key
* @param salt salt for the derivation
- * @param salt_len size of the salt
+ * @param salt_len size of the @a salt
* @param ... pairs of void * & size_t for context chunks, terminated by NULL
*/
void
@@ -441,7 +440,7 @@
* @param iv initialization vector
* @param skey session key
* @param salt salt for the derivation
- * @param salt_len size of the salt
+ * @param salt_len size of the @a salt
* @param argp pairs of void * & size_t for context chunks, terminated by NULL
*/
void
@@ -494,7 +493,7 @@
* @ingroup hash
*
* Compute the distance between 2 hashcodes. The
- * computation must be fast, not involve a[0] or a[4] (they're used
+ * computation must be fast, not involve @a a[0] or @a a[4] (they're used
* elsewhere), and be somewhat consistent. And of course, the result
* should be a positive number.
*
@@ -503,8 +502,8 @@
* @return number between 0 and UINT32_MAX
*/
uint32_t
-GNUNET_CRYPTO_hash_distance_u32 (const struct GNUNET_HashCode * a,
- const struct GNUNET_HashCode * b);
+GNUNET_CRYPTO_hash_distance_u32 (const struct GNUNET_HashCode *a,
+ const struct GNUNET_HashCode *b);
/**
@@ -542,8 +541,7 @@
* @param res resulting hash, NULL on error
*/
typedef void (*GNUNET_CRYPTO_HashCompletedCallback) (void *cls,
- const struct
GNUNET_HashCode *
- res);
+ const struct
GNUNET_HashCode *res);
/**
@@ -593,30 +591,30 @@
/**
* @ingroup hash
- * compute result(delta) = b - a
+ * compute @a result = @a b - @a a
*
* @param a some hash code
* @param b some hash code
* @param result set to @a b - @a a
*/
void
-GNUNET_CRYPTO_hash_difference (const struct GNUNET_HashCode * a,
- const struct GNUNET_HashCode * b,
- struct GNUNET_HashCode * result);
+GNUNET_CRYPTO_hash_difference (const struct GNUNET_HashCode *a,
+ const struct GNUNET_HashCode *b,
+ struct GNUNET_HashCode *result);
/**
* @ingroup hash
- * compute result(b) = a + delta
+ * compute @a result = @a a + @a delta
*
* @param a some hash code
* @param delta some hash code
* @param result set to @a a + @a delta
*/
void
-GNUNET_CRYPTO_hash_sum (const struct GNUNET_HashCode * a,
- const struct GNUNET_HashCode * delta,
- struct GNUNET_HashCode * result);
+GNUNET_CRYPTO_hash_sum (const struct GNUNET_HashCode *a,
+ const struct GNUNET_HashCode *delta,
+ struct GNUNET_HashCode *result);
/**
@@ -643,8 +641,7 @@
void
GNUNET_CRYPTO_hash_to_aes_key (const struct GNUNET_HashCode * hc,
struct GNUNET_CRYPTO_SymmetricSessionKey *skey,
- struct
GNUNET_CRYPTO_SymmetricInitializationVector
- *iv);
+ struct
GNUNET_CRYPTO_SymmetricInitializationVector *iv);
/**
@@ -663,7 +660,7 @@
/**
* @ingroup hash
* Determine how many low order bits match in two
- * struct GNUNET_HashCodes. i.e. - 010011 and 011111 share
+ * `struct GNUNET_HashCodes`. i.e. - 010011 and 011111 share
* the first two lowest order bits, and therefore the
* return value is two (NOT XOR distance, nor how many
* bits match absolutely!).
@@ -673,8 +670,8 @@
* @return the number of bits that match
*/
unsigned int
-GNUNET_CRYPTO_hash_matching_bits (const struct GNUNET_HashCode * first,
- const struct GNUNET_HashCode * second);
+GNUNET_CRYPTO_hash_matching_bits (const struct GNUNET_HashCode *first,
+ const struct GNUNET_HashCode *second);
/**
@@ -684,10 +681,11 @@
*
* @param h1 some hash code
* @param h2 some hash code
- * @return 1 if h1 > h2, -1 if h1 < h2 and 0 if h1 == h2.
+ * @return 1 if @a h1 > @a h2, -1 if @a h1 < @a h2 and 0 if @a h1 == @a h2.
*/
int
-GNUNET_CRYPTO_hash_cmp (const struct GNUNET_HashCode * h1, const struct
GNUNET_HashCode * h2);
+GNUNET_CRYPTO_hash_cmp (const struct GNUNET_HashCode *h1,
+ const struct GNUNET_HashCode *h2);
/**
@@ -698,12 +696,12 @@
* @param h1 some hash code
* @param h2 some hash code
* @param target some hash code
- * @return -1 if h1 is closer, 1 if h2 is closer and 0 if h1==h2.
+ * @return -1 if @a h1 is closer, 1 if @a h2 is closer and 0 if @a h1== @a h2.
*/
int
-GNUNET_CRYPTO_hash_xorcmp (const struct GNUNET_HashCode * h1,
- const struct GNUNET_HashCode * h2,
- const struct GNUNET_HashCode * target);
+GNUNET_CRYPTO_hash_xorcmp (const struct GNUNET_HashCode *h1,
+ const struct GNUNET_HashCode *h2,
+ const struct GNUNET_HashCode *target);
/**
Modified: gnunet/src/include/gnunet_disk_lib.h
===================================================================
--- gnunet/src/include/gnunet_disk_lib.h 2013-10-06 09:35:52 UTC (rev
29889)
+++ gnunet/src/include/gnunet_disk_lib.h 2013-10-06 11:16:26 UTC (rev
29890)
@@ -282,7 +282,7 @@
* (of a file that exists and that is not a directory).
*
* @param fil filename to check
- * @return GNUNET_YES if yes, GNUNET_NO if not a file, GNUNET_SYSERR if
something
+ * @return #GNUNET_YES if yes, #GNUNET_NO if not a file, #GNUNET_SYSERR if
something
* else (will print an error message in that case, too).
*/
int
@@ -320,15 +320,16 @@
* @param size set to the size of the file (or,
* in the case of directories, the sum
* of all sizes of files in the directory)
- * @param includeSymLinks should symbolic links be
+ * @param include_symbolic_links should symbolic links be
* included?
- * @param singleFileMode GNUNET_YES to only get size of one file
- * and return GNUNET_SYSERR for directories.
- * @return GNUNET_SYSERR on error, GNUNET_OK on success
+ * @param single_file_mode #GNUNET_YES to only get size of one file
+ * and return #GNUNET_SYSERR for directories.
+ * @return #GNUNET_SYSERR on error, #GNUNET_OK on success
*/
int
-GNUNET_DISK_file_size (const char *filename, uint64_t * size,
- int includeSymLinks, int singleFileMode);
+GNUNET_DISK_file_size (const char *filename, uint64_t *size,
+ int include_symbolic_links,
+ int single_file_mode);
/**
@@ -347,8 +348,9 @@
* @return GNUNET_OK on success
*/
int
-GNUNET_DISK_file_get_identifiers (const char *filename, uint64_t * dev,
- uint64_t * ino);
+GNUNET_DISK_file_get_identifiers (const char *filename,
+ uint64_t *dev,
+ uint64_t *ino);
/**
@@ -392,7 +394,8 @@
* @return IO handle on success, NULL on error
*/
struct GNUNET_DISK_FileHandle *
-GNUNET_DISK_file_open (const char *fn, enum GNUNET_DISK_OpenFlags flags,
+GNUNET_DISK_file_open (const char *fn,
+ enum GNUNET_DISK_OpenFlags flags,
enum GNUNET_DISK_AccessPermissions perm);
@@ -418,7 +421,10 @@
* @return handle to the new pipe, NULL on error
*/
struct GNUNET_DISK_PipeHandle *
-GNUNET_DISK_pipe (int blocking_read, int blocking_write, int inherit_read, int
inherit_write);
+GNUNET_DISK_pipe (int blocking_read,
+ int blocking_write,
+ int inherit_read,
+ int inherit_write);
/**
@@ -432,7 +438,9 @@
* @return handle to the new pipe, NULL on error
*/
struct GNUNET_DISK_PipeHandle *
-GNUNET_DISK_pipe_from_fd (int blocking_read, int blocking_write, int fd[2]);
+GNUNET_DISK_pipe_from_fd (int blocking_read,
+ int blocking_write,
+ int fd[2]);
/**
@@ -529,13 +537,15 @@
/**
* Read the contents of a binary file into a buffer.
+ *
* @param h handle to an open file
* @param result the buffer to write the result to
* @param len the maximum number of bytes to read
* @return the number of bytes read on success, #GNUNET_SYSERR on failure
*/
ssize_t
-GNUNET_DISK_file_read (const struct GNUNET_DISK_FileHandle *h, void *result,
+GNUNET_DISK_file_read (const struct GNUNET_DISK_FileHandle *h,
+ void *result,
size_t len);
@@ -579,18 +589,20 @@
*/
ssize_t
GNUNET_DISK_file_write (const struct GNUNET_DISK_FileHandle *h,
- const void *buffer, size_t n);
+ const void *buffer,
+ size_t n);
/**
* Write a buffer to a file, blocking, if necessary.
+ *
* @param h handle to open file
* @param buffer the data to write
* @param n number of bytes to write
* @return number of bytes written on success, #GNUNET_SYSERR on error
*/
ssize_t
-GNUNET_DISK_file_write_blocking (const struct GNUNET_DISK_FileHandle * h,
+GNUNET_DISK_file_write_blocking (const struct GNUNET_DISK_FileHandle *h,
const void *buffer,
size_t n);
@@ -606,7 +618,9 @@
* @return number of bytes written on success, #GNUNET_SYSERR on error
*/
ssize_t
-GNUNET_DISK_fn_write (const char *fn, const void *buffer, size_t n,
+GNUNET_DISK_fn_write (const char *fn,
+ const void *buffer,
+ size_t n,
enum GNUNET_DISK_AccessPermissions mode);
@@ -766,7 +780,8 @@
* @return #GNUNET_OK on success, #GNUNET_SYSERR on error
*/
int
-GNUNET_DISK_file_unlock (struct GNUNET_DISK_FileHandle *fh, OFF_T unlock_start,
+GNUNET_DISK_file_unlock (struct GNUNET_DISK_FileHandle *fh,
+ OFF_T unlock_start,
OFF_T unlock_end);
Modified: gnunet/src/revocation/gnunet-service-revocation.c
===================================================================
--- gnunet/src/revocation/gnunet-service-revocation.c 2013-10-06 09:35:52 UTC
(rev 29889)
+++ gnunet/src/revocation/gnunet-service-revocation.c 2013-10-06 11:16:26 UTC
(rev 29890)
@@ -31,7 +31,6 @@
* peers that connect.
*
* TODO:
- * - load revocations from disk
* - store revocations to disk
* - handle p2p revocations
* - handle p2p connect (trigger SET union)
@@ -122,6 +121,11 @@
static struct GNUNET_SERVER_NotificationContext *nc;
/**
+ * File handle for the revocation database.
+ */
+static struct GNUNET_DISK_FileHandle *revocation_db;
+
+/**
* Amount of work required (W-bit collisions) for REVOCATION proofs, in
collision-bits.
*/
static unsigned long long revocation_work_required;
@@ -401,6 +405,11 @@
GNUNET_SERVER_notification_context_destroy (nc);
nc = NULL;
}
+ if (NULL != revocation_db)
+ {
+ GNUNET_DISK_file_close (revocation_db);
+ revocation_db = NULL;
+ }
GNUNET_CONTAINER_multihashmap_iterate (revocation_map,
&free_entry,
NULL);
@@ -453,7 +462,23 @@
sizeof (struct RevokeMessage)},
{NULL, 0, 0}
};
+ char *fn;
+ uint64_t left;
+ struct RevokeMessage *rm;
+ struct GNUNET_HashCode hc;
+ if (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_filename (c,
+ "REVOCATION",
+ "DATABASE",
+ &fn))
+ {
+ GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
+ "REVOCATION",
+ "DATABASE");
+ GNUNET_SCHEDULER_shutdown ();
+ return;
+ }
cfg = c;
srv = server;
revocation_map = GNUNET_CONTAINER_multihashmap_create (16, GNUNET_NO);
@@ -466,6 +491,7 @@
"REVOCATION",
"WORKBITS");
GNUNET_SCHEDULER_shutdown ();
+ GNUNET_free (fn);
return;
}
if (revocation_work_required >= sizeof (struct GNUNET_HashCode) * 8)
@@ -475,10 +501,59 @@
"WORKBITS",
_("Value is too large.\n"));
GNUNET_SCHEDULER_shutdown ();
+ GNUNET_free (fn);
return;
}
revocation_set = GNUNET_SET_create (cfg,
GNUNET_SET_OPERATION_UNION);
+
+ revocation_db = GNUNET_DISK_file_open (fn,
+ GNUNET_DISK_OPEN_READWRITE |
+ GNUNET_DISK_OPEN_CREATE,
+ GNUNET_DISK_PERM_USER_READ |
GNUNET_DISK_PERM_USER_WRITE |
+ GNUNET_DISK_PERM_GROUP_READ |
+ GNUNET_DISK_PERM_OTHER_READ);
+ if (NULL == revocation_db)
+ {
+ GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
+ "REVOCATION",
+ "DATABASE",
+ _("Could not open revocation database file!"));
+ GNUNET_SCHEDULER_shutdown ();
+ GNUNET_free (fn);
+ return;
+ }
+ if (GNUNET_OK !=
+ GNUNET_DISK_file_size (fn, &left, GNUNET_YES, GNUNET_YES))
+ left = 0;
+ while (left > sizeof (struct RevokeMessage))
+ {
+ rm = GNUNET_new (struct RevokeMessage);
+ if (sizeof (struct RevokeMessage) !=
+ GNUNET_DISK_file_read (revocation_db,
+ rm,
+ sizeof (struct RevokeMessage)))
+ {
+ GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR,
+ "read",
+ fn);
+ GNUNET_free (rm);
+ GNUNET_SCHEDULER_shutdown ();
+ GNUNET_free (fn);
+ return;
+ }
+ GNUNET_break (0 == ntohl (rm->reserved));
+ GNUNET_CRYPTO_hash (&rm->public_key,
+ sizeof (struct GNUNET_CRYPTO_EccPublicSignKey),
+ &hc);
+ GNUNET_break (GNUNET_OK ==
+ GNUNET_CONTAINER_multihashmap_put (revocation_map,
+ &hc,
+ rm,
+
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
+ }
+ GNUNET_free (fn);
+
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
NULL);
peers = GNUNET_CONTAINER_multipeermap_create (128, GNUNET_NO);
Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c 2013-10-06 09:35:52 UTC (rev 29889)
+++ gnunet/src/util/disk.c 2013-10-06 11:16:26 UTC (rev 29890)
@@ -282,23 +282,23 @@
* @param size set to the size of the file (or,
* in the case of directories, the sum
* of all sizes of files in the directory)
- * @param includeSymLinks should symbolic links be
+ * @param include_symbolic_links should symbolic links be
* included?
- * @param singleFileMode GNUNET_YES to only get size of one file
+ * @param single_file_mode GNUNET_YES to only get size of one file
* and return GNUNET_SYSERR for directories.
* @return GNUNET_SYSERR on error, GNUNET_OK on success
*/
int
GNUNET_DISK_file_size (const char *filename, uint64_t * size,
- int includeSymLinks, int singleFileMode)
+ int include_symbolic_links, int single_file_mode)
{
struct GetFileSizeData gfsd;
int ret;
GNUNET_assert (size != NULL);
gfsd.total = 0;
- gfsd.include_sym_links = includeSymLinks;
- gfsd.single_file_mode = singleFileMode;
+ gfsd.include_sym_links = include_symbolic_links;
+ gfsd.single_file_mode = single_file_mode;
ret = getSizeRec (&gfsd, filename);
*size = gfsd.total;
return ret;
@@ -318,7 +318,7 @@
* @param filename name of the file
* @param dev set to the device ID
* @param ino set to the inode ID
- * @return GNUNET_OK on success
+ * @return #GNUNET_OK on success
*/
int
GNUNET_DISK_file_get_identifiers (const char *filename, uint64_t * dev,
@@ -557,15 +557,15 @@
/**
- * Test if "fil" is a directory and listable. Optionally, also check if the
+ * Test if @a fil is a directory and listable. Optionally, also check if the
* directory is readable. Will not print an error message if the directory
does
- * not exist. Will log errors if GNUNET_SYSERR is returned (i.e., a file
exists
+ * not exist. Will log errors if #GNUNET_SYSERR is returned (i.e., a file
exists
* with the same name).
*
* @param fil filename to test
- * @param is_readable GNUNET_YES to additionally check if "fil" is readable;
- * GNUNET_NO to disable this check
- * @return GNUNET_YES if yes, GNUNET_NO if not; GNUNET_SYSERR if it
+ * @param is_readable GNUNET_YES to additionally check if @a fil is readable;
+ * #GNUNET_NO to disable this check
+ * @return #GNUNET_YES if yes, #GNUNET_NO if not; #GNUNET_SYSERR if it
* does not exist or stat'ed
*/
int
@@ -605,7 +605,7 @@
* (of a file that exists and that is not a directory).
*
* @param fil filename to check
- * @return GNUNET_YES if yes, GNUNET_NO if not a file, GNUNET_SYSERR if
something
+ * @return #GNUNET_YES if yes, GNUNET_NO if not a file, #GNUNET_SYSERR if
something
* else (will print an error message in that case, too).
*/
int
@@ -651,7 +651,7 @@
* Implementation of "mkdir -p"
*
* @param dir the directory to create
- * @returns GNUNET_OK on success, GNUNET_SYSERR on failure
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on failure
*/
int
GNUNET_DISK_directory_create (const char *dir)
@@ -759,9 +759,9 @@
* a file.
*
* @param filename name of a file in the directory
- * @returns GNUNET_OK on success,
- * GNUNET_SYSERR on failure,
- * GNUNET_NO if the directory
+ * @returns #GNUNET_OK on success,
+ * #GNUNET_SYSERR on failure,
+ * #GNUNET_NO if the directory
* exists but is not writeable for us
*/
int
@@ -788,27 +788,29 @@
/**
* Read the contents of a binary file into a buffer.
+ *
* @param h handle to an open file
* @param result the buffer to write the result to
* @param len the maximum number of bytes to read
- * @return the number of bytes read on success, GNUNET_SYSERR on failure
+ * @return the number of bytes read on success, #GNUNET_SYSERR on failure
*/
ssize_t
-GNUNET_DISK_file_read (const struct GNUNET_DISK_FileHandle * h, void *result,
+GNUNET_DISK_file_read (const struct GNUNET_DISK_FileHandle *h,
+ void *result,
size_t len)
{
- if (h == NULL)
+ if (NULL == h)
{
errno = EINVAL;
return GNUNET_SYSERR;
}
#ifdef MINGW
- DWORD bytesRead;
+ DWORD bytes_read;
if (h->type != GNUNET_DISK_HANLDE_TYPE_PIPE)
{
- if (!ReadFile (h->h, result, len, &bytesRead, NULL))
+ if (!ReadFile (h->h, result, len, &bytes_read, NULL))
{
SetErrnoFromWinError (GetLastError ());
return GNUNET_SYSERR;
@@ -816,7 +818,7 @@
}
else
{
- if (!ReadFile (h->h, result, len, &bytesRead, h->oOverlapRead))
+ if (!ReadFile (h->h, result, len, &bytes_read, h->oOverlapRead))
{
if (GetLastError () != ERROR_IO_PENDING)
{
@@ -825,11 +827,11 @@
return GNUNET_SYSERR;
}
LOG (GNUNET_ERROR_TYPE_DEBUG, "Will get overlapped result\n");
- GetOverlappedResult (h->h, h->oOverlapRead, &bytesRead, TRUE);
+ GetOverlappedResult (h->h, h->oOverlapRead, &bytes_read, TRUE);
}
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Read %u bytes from pipe\n", bytesRead);
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "Read %u bytes from pipe\n", bytes_read);
}
- return bytesRead;
+ return bytes_read;
#else
return read (h->fd, result, len);
#endif
@@ -844,25 +846,25 @@
* @param h handle to an open file
* @param result the buffer to write the result to
* @param len the maximum number of bytes to read
- * @return the number of bytes read on success, GNUNET_SYSERR on failure
+ * @return the number of bytes read on success, #GNUNET_SYSERR on failure
*/
ssize_t
-GNUNET_DISK_file_read_non_blocking (const struct GNUNET_DISK_FileHandle * h,
+GNUNET_DISK_file_read_non_blocking (const struct GNUNET_DISK_FileHandle *h,
void *result,
size_t len)
{
- if (h == NULL)
+ if (NULL == h)
{
errno = EINVAL;
return GNUNET_SYSERR;
}
#ifdef MINGW
- DWORD bytesRead;
+ DWORD bytes_read;
if (h->type != GNUNET_DISK_HANLDE_TYPE_PIPE)
{
- if (!ReadFile (h->h, result, len, &bytesRead, NULL))
+ if (!ReadFile (h->h, result, len, &bytes_read, NULL))
{
SetErrnoFromWinError (GetLastError ());
return GNUNET_SYSERR;
@@ -870,7 +872,7 @@
}
else
{
- if (!ReadFile (h->h, result, len, &bytesRead, h->oOverlapRead))
+ if (!ReadFile (h->h, result, len, &bytes_read, h->oOverlapRead))
{
if (GetLastError () != ERROR_IO_PENDING)
{
@@ -887,9 +889,9 @@
return GNUNET_SYSERR;
}
}
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Read %u bytes\n", bytesRead);
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "Read %u bytes\n", bytes_read);
}
- return bytesRead;
+ return bytes_read;
#else
int flags;
ssize_t ret;
@@ -916,10 +918,12 @@
* @param fn file name
* @param result the buffer to write the result to
* @param len the maximum number of bytes to read
- * @return number of bytes read, GNUNET_SYSERR on failure
+ * @return number of bytes read, #GNUNET_SYSERR on failure
*/
ssize_t
-GNUNET_DISK_fn_read (const char *fn, void *result, size_t len)
+GNUNET_DISK_fn_read (const char *fn,
+ void *result,
+ size_t len)
{
struct GNUNET_DISK_FileHandle *fh;
ssize_t ret;
@@ -936,27 +940,28 @@
/**
* Write a buffer to a file.
+ *
* @param h handle to open file
* @param buffer the data to write
* @param n number of bytes to write
- * @return number of bytes written on success, GNUNET_SYSERR on error
+ * @return number of bytes written on success, #GNUNET_SYSERR on error
*/
ssize_t
GNUNET_DISK_file_write (const struct GNUNET_DISK_FileHandle * h,
const void *buffer, size_t n)
{
- if (h == NULL)
+ if (NULL == h)
{
errno = EINVAL;
return GNUNET_SYSERR;
}
#ifdef MINGW
- DWORD bytesWritten;
+ DWORD bytes_written;
if (h->type != GNUNET_DISK_HANLDE_TYPE_PIPE)
{
- if (!WriteFile (h->h, buffer, n, &bytesWritten, NULL))
+ if (!WriteFile (h->h, buffer, n, &bytes_written, NULL))
{
SetErrnoFromWinError (GetLastError ());
return GNUNET_SYSERR;
@@ -965,7 +970,7 @@
else
{
LOG (GNUNET_ERROR_TYPE_DEBUG, "It is a pipe trying to write %u bytes\n",
n);
- if (!WriteFile (h->h, buffer, n, &bytesWritten, h->oOverlapWrite))
+ if (!WriteFile (h->h, buffer, n, &bytes_written, h->oOverlapWrite))
{
if (GetLastError () != ERROR_IO_PENDING)
{
@@ -975,7 +980,7 @@
return GNUNET_SYSERR;
}
LOG (GNUNET_ERROR_TYPE_DEBUG, "Will get overlapped result\n");
- if (!GetOverlappedResult (h->h, h->oOverlapWrite, &bytesWritten, TRUE))
+ if (!GetOverlappedResult (h->h, h->oOverlapWrite, &bytes_written, TRUE))
{
SetErrnoFromWinError (GetLastError ());
LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -997,21 +1002,21 @@
{
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Wrote %u bytes (ovr says %u), picking the greatest\n",
- bytesWritten, ovr);
+ bytes_written, ovr);
}
}
- if (bytesWritten == 0)
+ if (bytes_written == 0)
{
if (n > 0)
{
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Wrote %u bytes, returning -1 with
EAGAIN\n", bytesWritten);
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "Wrote %u bytes, returning -1 with
EAGAIN\n", bytes_written);
errno = EAGAIN;
return GNUNET_SYSERR;
}
}
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Wrote %u bytes\n", bytesWritten);
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "Wrote %u bytes\n", bytes_written);
}
- return bytesWritten;
+ return bytes_written;
#else
return write (h->fd, buffer, n);
#endif
@@ -1020,37 +1025,39 @@
/**
* Write a buffer to a file, blocking, if necessary.
+ *
* @param h handle to open file
* @param buffer the data to write
* @param n number of bytes to write
- * @return number of bytes written on success, GNUNET_SYSERR on error
+ * @return number of bytes written on success, #GNUNET_SYSERR on error
*/
ssize_t
GNUNET_DISK_file_write_blocking (const struct GNUNET_DISK_FileHandle * h,
- const void *buffer, size_t n)
+ const void *buffer,
+ size_t n)
{
- if (h == NULL)
+ if (NULL == h)
{
errno = EINVAL;
return GNUNET_SYSERR;
}
#ifdef MINGW
- DWORD bytesWritten;
+ DWORD bytes_written;
/* We do a non-overlapped write, which is as blocking as it gets */
LOG (GNUNET_ERROR_TYPE_DEBUG, "Writing %u bytes\n", n);
- if (!WriteFile (h->h, buffer, n, &bytesWritten, NULL))
+ if (!WriteFile (h->h, buffer, n, &bytes_written, NULL))
{
SetErrnoFromWinError (GetLastError ());
LOG (GNUNET_ERROR_TYPE_DEBUG, "Error writing to pipe: %u\n",
GetLastError ());
return GNUNET_SYSERR;
}
- if (bytesWritten == 0 && n > 0)
+ if (bytes_written == 0 && n > 0)
{
LOG (GNUNET_ERROR_TYPE_DEBUG, "Waiting for pipe to clean\n");
WaitForSingleObject (h->h, INFINITE);
- if (!WriteFile (h->h, buffer, n, &bytesWritten, NULL))
+ if (!WriteFile (h->h, buffer, n, &bytes_written, NULL))
{
SetErrnoFromWinError (GetLastError ());
LOG (GNUNET_ERROR_TYPE_DEBUG, "Error writing to pipe: %u\n",
@@ -1058,8 +1065,10 @@
return GNUNET_SYSERR;
}
}
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Wrote %u bytes\n", bytesWritten);
- return bytesWritten;
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Wrote %u bytes\n",
+ bytes_written);
+ return bytes_written;
#else
int flags;
ssize_t ret;
@@ -1084,7 +1093,7 @@
* @param buffer the data to write
* @param n number of bytes to write
* @param mode file permissions
- * @return number of bytes written on success, GNUNET_SYSERR on error
+ * @return number of bytes written on success, #GNUNET_SYSERR on error
*/
ssize_t
GNUNET_DISK_fn_write (const char *fn, const void *buffer, size_t n,
@@ -1110,9 +1119,9 @@
* @param dir_name the name of the directory
* @param callback the method to call for each file,
* can be NULL, in that case, we only count
- * @param callback_cls closure for callback
- * @return the number of files found, GNUNET_SYSERR on error or
- * ieration aborted by callback returning GNUNET_SYSERR
+ * @param callback_cls closure for @a callback
+ * @return the number of files found, #GNUNET_SYSERR on error or
+ * ieration aborted by callback returning #GNUNET_SYSERR
*/
int
GNUNET_DISK_directory_scan (const char *dir_name,
@@ -1143,7 +1152,8 @@
}
if (!S_ISDIR (istat.st_mode))
{
- LOG (GNUNET_ERROR_TYPE_WARNING, _("Expected `%s' to be a directory!\n"),
+ LOG (GNUNET_ERROR_TYPE_WARNING,
+ _("Expected `%s' to be a directory!\n"),
dir_name);
GNUNET_free (dname);
return GNUNET_SYSERR;
@@ -1324,7 +1334,7 @@
{
struct GNUNET_DISK_DirectoryIterator *di;
- di = GNUNET_malloc (sizeof (struct GNUNET_DISK_DirectoryIterator));
+ di = GNUNET_new (struct GNUNET_DISK_DirectoryIterator);
di->callback = callback;
di->callback_cls = callback_cls;
di->directory = OPENDIR (dir_name);
@@ -1748,7 +1758,7 @@
}
#endif
- ret = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ ret = GNUNET_new (struct GNUNET_DISK_FileHandle);
#ifdef MINGW
ret->h = h;
ret->type = GNUNET_DISK_HANLDE_TYPE_FILE;
@@ -1843,7 +1853,7 @@
return NULL;
}
- fh = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ fh = GNUNET_new (struct GNUNET_DISK_FileHandle);
fh->h = osfh;
fh->type = ftype;
@@ -1883,7 +1893,7 @@
return NULL; /* invalid FD */
#ifndef WINDOWS
- fh = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ fh = GNUNET_new (struct GNUNET_DISK_FileHandle);
fh->fd = fno;
#else
@@ -2064,7 +2074,7 @@
return NULL;
}
- *m = GNUNET_malloc (sizeof (struct GNUNET_DISK_MapHandle));
+ *m = GNUNET_new (struct GNUNET_DISK_MapHandle);
(*m)->h = CreateFileMapping (h->h, NULL, protect, 0, 0, NULL);
if ((*m)->h == INVALID_HANDLE_VALUE)
{
@@ -2090,7 +2100,7 @@
prot = PROT_READ;
if (access & GNUNET_DISK_MAP_TYPE_WRITE)
prot |= PROT_WRITE;
- *m = GNUNET_malloc (sizeof (struct GNUNET_DISK_MapHandle));
+ *m = GNUNET_new (struct GNUNET_DISK_MapHandle);
(*m)->addr = mmap (NULL, len, prot, MAP_SHARED, h->fd, 0);
GNUNET_assert (NULL != (*m)->addr);
if (MAP_FAILED == (*m)->addr)
@@ -2322,9 +2332,9 @@
HANDLE tmp_handle;
int save_errno;
- p = GNUNET_malloc (sizeof (struct GNUNET_DISK_PipeHandle));
- p->fd[0] = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
- p->fd[1] = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ p = GNUNET_new (struct GNUNET_DISK_PipeHandle);
+ p->fd[0] = GNUNET_new (struct GNUNET_DISK_FileHandle);
+ p->fd[1] = GNUNET_new (struct GNUNET_DISK_FileHandle);
/* All pipes are overlapped. If you want them to block - just
* call WriteFile() and ReadFile() with NULL overlapped pointer.
@@ -2417,7 +2427,7 @@
{
struct GNUNET_DISK_PipeHandle *p;
- p = GNUNET_malloc (sizeof (struct GNUNET_DISK_PipeHandle));
+ p = GNUNET_new (struct GNUNET_DISK_PipeHandle);
#ifndef MINGW
int ret;
@@ -2427,7 +2437,7 @@
ret = 0;
if (fd[0] >= 0)
{
- p->fd[0] = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ p->fd[0] = GNUNET_new (struct GNUNET_DISK_FileHandle);
p->fd[0]->fd = fd[0];
if (!blocking_read)
{
@@ -2450,7 +2460,7 @@
if (fd[1] >= 0)
{
- p->fd[1] = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ p->fd[1] = GNUNET_new (struct GNUNET_DISK_FileHandle);
p->fd[1]->fd = fd[1];
if (!blocking_write)
{
@@ -2487,7 +2497,7 @@
#else
if (fd[0] >= 0)
{
- p->fd[0] = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ p->fd[0] = GNUNET_new (struct GNUNET_DISK_FileHandle);
p->fd[0]->h = (HANDLE) _get_osfhandle (fd[0]);
if (p->fd[0]->h != INVALID_HANDLE_VALUE)
{
@@ -2505,7 +2515,7 @@
}
if (fd[1] >= 0)
{
- p->fd[1] = GNUNET_malloc (sizeof (struct GNUNET_DISK_FileHandle));
+ p->fd[1] = GNUNET_new (struct GNUNET_DISK_FileHandle);
p->fd[1]->h = (HANDLE) _get_osfhandle (fd[1]);
if (p->fd[1]->h != INVALID_HANDLE_VALUE)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r29890 - in gnunet/src: fs include revocation util,
gnunet <=