aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2007-03-05 01:51:42 +0000
committerChristian Grothoff <christian@grothoff.org>2007-03-05 01:51:42 +0000
commit21c076d305986a8cc2ee001fbec8082b4bd31d41 (patch)
treea284ceddcfb8066cbf96f8ffeb2723d8c4b32c56
parent2b6a6a4e1fcca369f57783610f41bf50a74b72b6 (diff)
downloadgnunet-gtk-21c076d305986a8cc2ee001fbec8082b4bd31d41.tar.gz
gnunet-gtk-21c076d305986a8cc2ee001fbec8082b4bd31d41.zip
handle restarts
-rw-r--r--src/plugins/stats/functions.c72
1 files changed, 49 insertions, 23 deletions
diff --git a/src/plugins/stats/functions.c b/src/plugins/stats/functions.c
index 3a804fd0..0a19b697 100644
--- a/src/plugins/stats/functions.c
+++ b/src/plugins/stats/functions.c
@@ -52,7 +52,8 @@ static struct CronManager * cron;
52static int getStatValue(long long * value, 52static int getStatValue(long long * value,
53 long long * lvalue, 53 long long * lvalue,
54 cron_t * dtime, 54 cron_t * dtime,
55 const char * optName) { 55 const char * optName,
56 int monotone) {
56 unsigned int i; 57 unsigned int i;
57 58
58 *value = 0; 59 *value = 0;
@@ -66,6 +67,9 @@ static int getStatValue(long long * value,
66 *lvalue = lastStatValues[i].lvalue; 67 *lvalue = lastStatValues[i].lvalue;
67 if (dtime != NULL) 68 if (dtime != NULL)
68 *dtime = lastStatValues[i].delta; 69 *dtime = lastStatValues[i].delta;
70 if ( (monotone == YES) &&
71 (*lvalue > *value) )
72 return SYSERR; /* gnunetd restart? */
69 return OK; 73 return OK;
70 } 74 }
71 } 75 }
@@ -121,7 +125,8 @@ static int getConnectedNodesStat(const void * closure,
121 if (OK != getStatValue(&val, 125 if (OK != getStatValue(&val,
122 NULL, 126 NULL,
123 NULL, 127 NULL,
124 "# of connected peers")) 128 "# of connected peers",
129 NO))
125 return SYSERR; 130 return SYSERR;
126 data[0][0] = ((gfloat) val) / connectionGoal; 131 data[0][0] = ((gfloat) val) / connectionGoal;
127 return OK; 132 return OK;
@@ -137,22 +142,26 @@ static int getLoadStat(const void * closure,
137 if (OK != getStatValue(&valc, 142 if (OK != getStatValue(&valc,
138 NULL, 143 NULL,
139 NULL, 144 NULL,
140 "% of allowed cpu load")) 145 "% of allowed cpu load",
146 NO))
141 return SYSERR; 147 return SYSERR;
142 if (OK != getStatValue(&vali, 148 if (OK != getStatValue(&vali,
143 NULL, 149 NULL,
144 NULL, 150 NULL,
145 "% of allowed io load")) 151 "% of allowed io load",
152 NO))
146 return SYSERR; 153 return SYSERR;
147 if (OK != getStatValue(&valu, 154 if (OK != getStatValue(&valu,
148 NULL, 155 NULL,
149 NULL, 156 NULL,
150 "% of allowed network load (up)")) 157 "% of allowed network load (up)",
158 NO))
151 return SYSERR; 159 return SYSERR;
152 if (OK != getStatValue(&vald, 160 if (OK != getStatValue(&vald,
153 NULL, 161 NULL,
154 NULL, 162 NULL,
155 "% of allowed network load (down)")) 163 "% of allowed network load (down)",
164 NO))
156 return SYSERR; 165 return SYSERR;
157 data[0][0] = (gfloat) valc / 100.0; 166 data[0][0] = (gfloat) valc / 100.0;
158 data[0][1] = (gfloat) vali / 100.0; 167 data[0][1] = (gfloat) vali / 100.0;
@@ -169,14 +178,16 @@ static int getQuotaStat(const void * closure,
169 if (OK != getStatValue(&allowed, 178 if (OK != getStatValue(&allowed,
170 NULL, 179 NULL,
171 NULL, 180 NULL,
172 "# bytes allowed in datastore")) 181 "# bytes allowed in datastore",
182 NO))
173 return SYSERR; 183 return SYSERR;
174 if (allowed == 0) 184 if (allowed == 0)
175 return SYSERR; 185 return SYSERR;
176 if (OK != getStatValue(&have, 186 if (OK != getStatValue(&have,
177 NULL, 187 NULL,
178 NULL, 188 NULL,
179 "# bytes in datastore")) 189 "# bytes in datastore",
190 NO))
180 return SYSERR; 191 return SYSERR;
181 data[0][0] = ((gfloat) have) / allowed; 192 data[0][0] = ((gfloat) have) / allowed;
182 return OK; 193 return OK;
@@ -202,12 +213,14 @@ static int getTrafficRecvStats(const void * closure,
202 if (OK != getStatValue(&total, 213 if (OK != getStatValue(&total,
203 &ltotal, 214 &ltotal,
204 &dtime, 215 &dtime,
205 "# bytes received")) 216 "# bytes received",
217 YES))
206 return SYSERR; 218 return SYSERR;
207 if (OK != getStatValue(&noise, 219 if (OK != getStatValue(&noise,
208 &lnoise, 220 &lnoise,
209 NULL, 221 NULL,
210 "# bytes of noise received")) 222 "# bytes of noise received",
223 YES))
211 return SYSERR; 224 return SYSERR;
212 buffer = MALLOC(512); 225 buffer = MALLOC(512);
213 SNPRINTF(buffer, 226 SNPRINTF(buffer,
@@ -217,7 +230,8 @@ static int getTrafficRecvStats(const void * closure,
217 if (OK != getStatValue(&content, 230 if (OK != getStatValue(&content,
218 &lcontent, 231 &lcontent,
219 NULL, 232 NULL,
220 buffer)) { 233 buffer,
234 YES)) {
221 content = 0; 235 content = 0;
222 lcontent = 0; 236 lcontent = 0;
223 } 237 }
@@ -228,7 +242,8 @@ static int getTrafficRecvStats(const void * closure,
228 if (OK != getStatValue(&hellos, 242 if (OK != getStatValue(&hellos,
229 &lhellos, 243 &lhellos,
230 NULL, 244 NULL,
231 buffer)) { 245 buffer,
246 YES)) {
232 hellos = 0; 247 hellos = 0;
233 lhellos = 0; 248 lhellos = 0;
234 } 249 }
@@ -239,14 +254,16 @@ static int getTrafficRecvStats(const void * closure,
239 if (OK != getStatValue(&queries, 254 if (OK != getStatValue(&queries,
240 &lqueries, 255 &lqueries,
241 NULL, 256 NULL,
242 buffer)) { 257 buffer,
258 YES)) {
243 queries = 0; 259 queries = 0;
244 lqueries = 0; 260 lqueries = 0;
245 } 261 }
246 if (OK != getStatValue(&rlimit, 262 if (OK != getStatValue(&rlimit,
247 &lrlimit, 263 &lrlimit,
248 NULL, 264 NULL,
249 "# total advertised bytes per second received limit")) { 265 "# total advertised bytes per second received limit",
266 NO)) {
250 rlimit = 0; 267 rlimit = 0;
251 lrlimit = 0; 268 lrlimit = 0;
252 } 269 }
@@ -303,12 +320,14 @@ static int getTrafficSendStats(const void * closure,
303 if (OK != getStatValue(&total, 320 if (OK != getStatValue(&total,
304 &ltotal, 321 &ltotal,
305 &dtime, 322 &dtime,
306 "# bytes transmitted")) 323 "# bytes transmitted",
324 YES))
307 return SYSERR; 325 return SYSERR;
308 if (OK != getStatValue(&noise, 326 if (OK != getStatValue(&noise,
309 &lnoise, 327 &lnoise,
310 NULL, 328 NULL,
311 "# bytes noise sent")) 329 "# bytes noise sent",
330 YES))
312 return SYSERR; 331 return SYSERR;
313 buffer = MALLOC(512); 332 buffer = MALLOC(512);
314 SNPRINTF(buffer, 333 SNPRINTF(buffer,
@@ -318,7 +337,8 @@ static int getTrafficSendStats(const void * closure,
318 if (OK != getStatValue(&content, 337 if (OK != getStatValue(&content,
319 &lcontent, 338 &lcontent,
320 NULL, 339 NULL,
321 buffer)) { 340 buffer,
341 YES)) {
322 content = 0; 342 content = 0;
323 lcontent = 0; 343 lcontent = 0;
324 } 344 }
@@ -329,7 +349,8 @@ static int getTrafficSendStats(const void * closure,
329 if (OK != getStatValue(&queries, 349 if (OK != getStatValue(&queries,
330 &lqueries, 350 &lqueries,
331 NULL, 351 NULL,
332 buffer)) { 352 buffer,
353 YES)) {
333 queries = 0; 354 queries = 0;
334 lqueries = 0; 355 lqueries = 0;
335 } 356 }
@@ -340,14 +361,16 @@ static int getTrafficSendStats(const void * closure,
340 if (OK != getStatValue(&hellos, 361 if (OK != getStatValue(&hellos,
341 &lhellos, 362 &lhellos,
342 NULL, 363 NULL,
343 buffer)) { 364 buffer,
365 YES)) {
344 queries = 0; 366 queries = 0;
345 lqueries = 0; 367 lqueries = 0;
346 } 368 }
347 if (OK != getStatValue(&slimit, 369 if (OK != getStatValue(&slimit,
348 &lslimit, 370 &lslimit,
349 NULL, 371 NULL,
350 "# total allowed bytes per second transmission limit")) { 372 "# total allowed bytes per second transmission limit",
373 NO)) {
351 slimit = 0; 374 slimit = 0;
352 lslimit = 0; 375 lslimit = 0;
353 } 376 }
@@ -408,17 +431,20 @@ static int getEffectivenessStats(const void * closure,
408 if (OK != getStatValue(&total, 431 if (OK != getStatValue(&total,
409 &ltotal, 432 &ltotal,
410 NULL, 433 NULL,
411 "# gap requests forwarded (counting each peer)")) 434 "# gap requests forwarded (counting each peer)",
435 YES))
412 return SYSERR; 436 return SYSERR;
413 if (OK != getStatValue(&success, 437 if (OK != getStatValue(&success,
414 &lsuccess, 438 &lsuccess,
415 NULL, 439 NULL,
416 "# gap routing successes (total)")) 440 "# gap routing successes (total)",
441 YES))
417 return SYSERR; 442 return SYSERR;
418 if (OK != getStatValue(&local, 443 if (OK != getStatValue(&local,
419 &llocal, 444 &llocal,
420 NULL, 445 NULL,
421 "# gap requests processed: local result")) 446 "# gap requests processed: local result",
447 YES))
422 return SYSERR; 448 return SYSERR;
423 total -= ltotal; 449 total -= ltotal;
424 data[0][0] = 0.0; 450 data[0][0] = 0.0;