From d2bdef77c4f13b1e51ac72340b7e1cc1535f6bb3 Mon Sep 17 00:00:00 2001 From: Julius Bünger Date: Sat, 20 Oct 2018 14:21:02 +0200 Subject: RPS: Fix writing internals to disk --- src/rps/Makefile.am | 3 +++ src/rps/rps-test_util.c | 72 +------------------------------------------------ src/rps/rps-test_util.h | 21 ++++++++++----- 3 files changed, 18 insertions(+), 78 deletions(-) diff --git a/src/rps/Makefile.am b/src/rps/Makefile.am index e6b74c9a2..3b5b1ef3e 100644 --- a/src/rps/Makefile.am +++ b/src/rps/Makefile.am @@ -30,6 +30,7 @@ gnunet_rps_LDADD = \ lib_LTLIBRARIES = libgnunetrps.la libgnunetrps_la_SOURCES = \ + gnunet-service-rps_sampler_elem.h gnunet-service-rps_sampler_elem.c \ rps-test_util.h rps-test_util.c \ rps-sampler_common.h rps-sampler_common.c \ rps-sampler_client.h rps-sampler_client.c \ @@ -40,6 +41,8 @@ libgnunetrps_la_LIBADD = \ libgnunetrps_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) $(WINFLAGS) \ -version-info 0:0:0 +# Fix 'created both with libtool and without' error: +libgnunetrps_la_CFLAGS = $(AM_CFLAGS) libexec_PROGRAMS = \ diff --git a/src/rps/rps-test_util.c b/src/rps/rps-test_util.c index ffd43f6b1..f3367e01b 100644 --- a/src/rps/rps-test_util.c +++ b/src/rps/rps-test_util.c @@ -57,76 +57,6 @@ static char buf_unaligned; */ static unsigned num_bits_buf_unaligned; -void -to_file_ (const char *file_name, char *line) -{ - struct GNUNET_DISK_FileHandle *f; - char output_buffer[512]; - size_t output_buffer_size = 512; - char *output_buffer_p; - //size_t size; - int size; - int size2; - - - if (NULL == (f = GNUNET_DISK_file_open (file_name, - GNUNET_DISK_OPEN_APPEND | - GNUNET_DISK_OPEN_WRITE | - GNUNET_DISK_OPEN_CREATE, - GNUNET_DISK_PERM_USER_READ | - GNUNET_DISK_PERM_USER_WRITE | - GNUNET_DISK_PERM_GROUP_READ | - GNUNET_DISK_PERM_OTHER_READ))) - { - LOG (GNUNET_ERROR_TYPE_WARNING, - "Not able to open file %s\n", - file_name); - return; - } - output_buffer_size = strlen (line) + 18; - if (512 < output_buffer_size) - { - output_buffer_p = GNUNET_malloc ((output_buffer_size) * sizeof (char)); - } else { - output_buffer_p = &output_buffer[0]; - } - size = GNUNET_snprintf (output_buffer_p, - output_buffer_size, - "%llu %s\n", - (GNUNET_TIME_absolute_get ().abs_value_us) / 1000000, // microsec -> sec - line); - if (0 > size) - { - LOG (GNUNET_ERROR_TYPE_WARNING, - "Failed to write string to buffer (size: %i)\n", - size); - return; - } - - size2 = GNUNET_DISK_file_write (f, output_buffer_p, size); - if (size != size2) - { - LOG (GNUNET_ERROR_TYPE_WARNING, - "Unable to write to file! (Size: %u, size2: %u)\n", - size, - size2); - - if (GNUNET_YES != GNUNET_DISK_file_close (f)) - LOG (GNUNET_ERROR_TYPE_WARNING, - "Unable to close file\n"); - - return; - } - - if (512 < output_buffer_size) - { - GNUNET_free (output_buffer_p); - } - - if (GNUNET_YES != GNUNET_DISK_file_close (f)) - LOG (GNUNET_ERROR_TYPE_WARNING, - "Unable to close file\n"); -} void to_file_raw (const char *file_name, const char *buf, size_t size_buf) @@ -457,7 +387,7 @@ static int ensure_folder_exist (void) return GNUNET_YES; } -const char * +char * store_prefix_file_name (const struct GNUNET_PeerIdentity *peer, const char *prefix) { diff --git a/src/rps/rps-test_util.h b/src/rps/rps-test_util.h index 2e6560723..11093420e 100644 --- a/src/rps/rps-test_util.h +++ b/src/rps/rps-test_util.h @@ -29,9 +29,6 @@ #define TO_FILE 1 -void -to_file_ (const char *file_name, char *line); - char * auth_key_to_string (struct GNUNET_CRYPTO_AuthKey auth_key); @@ -45,23 +42,33 @@ create_file (const char *name); * This function is used to facilitate writing important information to disk */ #ifdef TO_FILE -# define to_file(file_name, ...) do {char tmp_buf[512];\ +# define to_file(file_name, ...) do {char tmp_buf[512] = "";\ int size;\ size = GNUNET_snprintf(tmp_buf,sizeof(tmp_buf),__VA_ARGS__);\ if (0 > size)\ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,\ "Failed to create tmp_buf\n");\ else\ - to_file_(file_name,tmp_buf);\ + GNUNET_DISK_fn_write(file_name,tmp_buf, sizeof(tmp_buf),\ + GNUNET_DISK_PERM_USER_READ |\ + GNUNET_DISK_PERM_USER_WRITE |\ + GNUNET_DISK_PERM_GROUP_READ |\ + GNUNET_DISK_PERM_OTHER_READ);\ } while (0); -# define to_file_w_len(file_name, len, ...) do {char tmp_buf[len];\ + +#define to_file_w_len(file_name, len, ...) do {char tmp_buf[len];\ int size;\ + memset (tmp_buf, 0, len);\ size = GNUNET_snprintf(tmp_buf,sizeof(tmp_buf),__VA_ARGS__);\ if (0 > size)\ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,\ "Failed to create tmp_buf\n");\ else\ - to_file_(file_name,tmp_buf);\ + GNUNET_DISK_fn_write(file_name,tmp_buf, len, \ + GNUNET_DISK_PERM_USER_READ |\ + GNUNET_DISK_PERM_USER_WRITE |\ + GNUNET_DISK_PERM_GROUP_READ |\ + GNUNET_DISK_PERM_OTHER_READ);\ } while (0); #else /* TO_FILE */ # define to_file(file_name, ...) -- cgit v1.2.3