aboutsummaryrefslogtreecommitdiff
path: root/src/rps/rps-test_util.c
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2015-06-05 23:03:04 +0000
committerJulius Bünger <buenger@mytum.de>2015-06-05 23:03:04 +0000
commit1e4ddb54ca92d3feb5c6382c97c08de7fb9cb7e8 (patch)
tree6f83ceec54d8be3f01930987d84266c3cd2b978a /src/rps/rps-test_util.c
parent6c0a7bacca0e00bcaa72b8b0a279660d146649ad (diff)
downloadgnunet-1e4ddb54ca92d3feb5c6382c97c08de7fb9cb7e8.tar.gz
gnunet-1e4ddb54ca92d3feb5c6382c97c08de7fb9cb7e8.zip
-restructured the code to faciliate viewing the internals
Diffstat (limited to 'src/rps/rps-test_util.c')
-rw-r--r--src/rps/rps-test_util.c163
1 files changed, 163 insertions, 0 deletions
diff --git a/src/rps/rps-test_util.c b/src/rps/rps-test_util.c
new file mode 100644
index 000000000..c607a5300
--- /dev/null
+++ b/src/rps/rps-test_util.c
@@ -0,0 +1,163 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C)
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20
21/**
22 * @file rps/rps-test_util.c
23 * @brief Some utils faciliating the view into the internals for the sampler
24 * needed for evaluation
25 *
26 * @author Julius Bünger
27 */
28
29#include "platform.h"
30#include "gnunet_util_lib.h"
31
32#include <inttypes.h>
33
34#define LOG(kind, ...) GNUNET_log_from(kind,"rps-sampler",__VA_ARGS__)
35
36#ifndef TO_FILE
37#define TO_FILE
38#endif /* TO_FILE */
39
40#ifdef TO_FILE
41void
42to_file_ (char *file_name, char *line)
43{
44 struct GNUNET_DISK_FileHandle *f;
45 char output_buffer[512];
46 //size_t size;
47 int size;
48 size_t size2;
49
50
51 if (NULL == (f = GNUNET_DISK_file_open (file_name,
52 GNUNET_DISK_OPEN_APPEND |
53 GNUNET_DISK_OPEN_WRITE |
54 GNUNET_DISK_OPEN_CREATE,
55 GNUNET_DISK_PERM_USER_WRITE)))
56 {
57 LOG (GNUNET_ERROR_TYPE_WARNING,
58 "Not able to open file %s\n",
59 file_name);
60 return;
61 }
62 size = GNUNET_snprintf (output_buffer,
63 sizeof (output_buffer),
64 "%llu %s\n",
65 GNUNET_TIME_absolute_get ().abs_value_us,
66 line);
67 if (0 > size)
68 {
69 LOG (GNUNET_ERROR_TYPE_WARNING,
70 "Failed to write string to buffer (size: %i)\n",
71 size);
72 return;
73 }
74
75 size2 = GNUNET_DISK_file_write (f, output_buffer, size);
76 if (size != size2)
77 {
78 LOG (GNUNET_ERROR_TYPE_WARNING,
79 "Unable to write to file! (Size: %u, size2: %u)\n",
80 size,
81 size2);
82 return;
83 }
84
85 if (GNUNET_YES != GNUNET_DISK_file_close (f))
86 LOG (GNUNET_ERROR_TYPE_WARNING,
87 "Unable to close file\n");
88}
89
90char *
91auth_key_to_string (struct GNUNET_CRYPTO_AuthKey auth_key)
92{
93 int size;
94 size_t name_buf_size;
95 char *end;
96 char *buf;
97 char *name_buf;
98 size_t keylen = (sizeof (struct GNUNET_CRYPTO_AuthKey)) * 8;
99
100 name_buf_size = 512 * sizeof (char);
101 name_buf = GNUNET_malloc (name_buf_size);
102
103 if (keylen % 5 > 0)
104 keylen += 5 - keylen % 5;
105 keylen /= 5;
106 buf = GNUNET_malloc (keylen + 1);
107
108 end = GNUNET_STRINGS_data_to_string (&(auth_key.key),
109 sizeof (struct GNUNET_CRYPTO_AuthKey),
110 buf,
111 keylen);
112
113 if (NULL == end)
114 {
115 GNUNET_free (buf);
116 GNUNET_break (0);
117 }
118 else
119 {
120 *end = '\0';
121 }
122
123 size = GNUNET_snprintf (name_buf, name_buf_size, "sampler_el-%s-", buf);
124 if (0 > size)
125 LOG (GNUNET_ERROR_TYPE_WARNING, "Failed to create name_buf\n");
126
127 GNUNET_free (buf);
128
129 return name_buf;
130}
131
132char *
133create_file (const char *name)
134{
135 int size;
136 size_t name_buf_size;
137 char *name_buf;
138 char *prefix;
139 char *file_name;
140
141 prefix = "/tmp/rps/";
142 name_buf_size = (strlen (prefix) + strlen (name) + 2) * sizeof (char);
143 name_buf = GNUNET_malloc (name_buf_size);
144
145 size = GNUNET_snprintf (name_buf, name_buf_size, "%s%s-", prefix, name);
146 if (0 > size)
147 LOG (GNUNET_ERROR_TYPE_WARNING, "Failed to create name_buf\n");
148
149 GNUNET_DISK_directory_create (prefix);
150
151 file_name = GNUNET_malloc (strlen (name_buf) + 6);
152
153 if (NULL == (file_name = GNUNET_DISK_mktemp (name_buf)))
154 LOG (GNUNET_ERROR_TYPE_WARNING, "Could not create file\n");
155
156 GNUNET_free (name_buf);
157
158 return file_name;
159}
160
161#endif /* TO_FILE */
162
163/* end of gnunet-service-rps.c */