Annotation of embedaddon/lighttpd/src/status_counter.c, revision 1.1
1.1 ! misho 1: #include "status_counter.h"
! 2:
! 3: #include <stdlib.h>
! 4:
! 5: /**
! 6: * The status array can carry all the status information you want
! 7: * the key to the array is <module-prefix>.<name>
! 8: * and the values are counters
! 9: *
! 10: * example:
! 11: * fastcgi.backends = 10
! 12: * fastcgi.active-backends = 6
! 13: * fastcgi.backend.<key>.load = 24
! 14: * fastcgi.backend.<key>....
! 15: *
! 16: * fastcgi.backend.<key>.disconnects = ...
! 17: */
! 18:
! 19: data_integer *status_counter_get_counter(server *srv, const char *s, size_t len) {
! 20: data_integer *di;
! 21:
! 22: if (NULL == (di = (data_integer *)array_get_element(srv->status, s))) {
! 23: /* not found, create it */
! 24:
! 25: if (NULL == (di = (data_integer *)array_get_unused_element(srv->status, TYPE_INTEGER))) {
! 26: di = data_integer_init();
! 27: }
! 28: buffer_copy_string_len(di->key, s, len);
! 29: di->value = 0;
! 30:
! 31: array_insert_unique(srv->status, (data_unset *)di);
! 32: }
! 33: return di;
! 34: }
! 35:
! 36: /* dummies of the statistic framework functions
! 37: * they will be moved to a statistics.c later */
! 38: int status_counter_inc(server *srv, const char *s, size_t len) {
! 39: data_integer *di = status_counter_get_counter(srv, s, len);
! 40:
! 41: di->value++;
! 42:
! 43: return 0;
! 44: }
! 45:
! 46: int status_counter_dec(server *srv, const char *s, size_t len) {
! 47: data_integer *di = status_counter_get_counter(srv, s, len);
! 48:
! 49: if (di->value > 0) di->value--;
! 50:
! 51: return 0;
! 52: }
! 53:
! 54: int status_counter_set(server *srv, const char *s, size_t len, int val) {
! 55: data_integer *di = status_counter_get_counter(srv, s, len);
! 56:
! 57: di->value = val;
! 58:
! 59: return 0;
! 60: }
! 61:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>