aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2016-02-08 13:21:21 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2016-02-08 17:05:22 +0200
commit32a55b403a2bbd774aed5b714d25ddad4e062d4f (patch)
treeccdf5eecef4f32a6a32c5b68115a49d78603734a
parentc9f6dc168ead762e02db1e27c5bc7c42282c9e50 (diff)
downloadvmod-tbf-32a55b403a2bbd774aed5b714d25ddad4e062d4f.tar.gz
vmod-tbf-32a55b403a2bbd774aed5b714d25ddad4e062d4f.tar.bz2
Fix debug levels. Document data structures.
-rw-r--r--src/tbf.c9
-rw-r--r--src/tbf.h19
2 files changed, 15 insertions, 13 deletions
diff --git a/src/tbf.c b/src/tbf.c
index f906e7c..129e1f5 100644
--- a/src/tbf.c
+++ b/src/tbf.c
@@ -42,13 +42,13 @@ lru_link_node(struct tree *tree, struct node *node, struct node *ref)
tree->head->prev = node;
else
tree->tail = node;
tree->head = node;
} else {
struct node *x;
- //debug(0, ("LINK %p %p %p", node, ref, ref->next));
+
node->prev = ref;
node->next = ref->next;
if ((x = ref->next))
x->prev = node;
else
tree->tail = node;
@@ -662,13 +662,13 @@ tree_load_nodes(struct tree *tree, struct dump_header *hdr,
for (i = 0; i < hdr->count; i++) {
struct node node, *np;
uint32_t len;
uint32_t flags;
- debug(0,("Load record %lu/%lu %lu", i, hdr->count, incomplete));
+ debug(3,("Load record %lu/%lu %lu", i, hdr->count, incomplete));
if (READREC(fp, len))
return -1;
if (READREC(fp, flags))
return -1;
if (READREC(fp, node.key))
@@ -721,13 +721,13 @@ tree_load_nodes(struct tree *tree, struct dump_header *hdr,
nodes[i] = np;
}
np->timestamp = node.timestamp;
np->tokens = node.tokens;
#if DEBUG
np->keystr = node.keystr;
- debug(0, ("loaded %p: %s %1x (%lu,%lu): time: %"PRIu64" us, tokens: %lu",
+ debug(3, ("loaded %p: %s %1x (%lu,%lu): time: %"PRIu64" us, tokens: %lu",
np,
np->keystr,
flags,
ord[CHILD_LEFT],
ord[CHILD_RIGHT],
np->timestamp, np->tokens));
@@ -765,13 +765,12 @@ tree_load_nodes(struct tree *tree, struct dump_header *hdr,
if (incomplete) {
syslog(LOG_DAEMON|LOG_ERR, "tbf.%s: %lu incomplete nodes left",
__FUNCTION__, incomplete);
return 1;
}
tree->root = nodes[hdr->root];
-// debug(0,("Loaded nodes"));
return 0;
}
struct tree *
tree_load(char const *filename)
{
@@ -789,13 +788,13 @@ tree_load(char const *filename)
if (READREC(fp, header))
rc = -1;
else {
struct node **nodes;
- debug(0,("elements: %"PRIu32", size: %"PRIu32", root: %"PRIu32,
+ debug(3,("elements: %"PRIu32", size: %"PRIu32", root: %"PRIu32,
header.count, header.size, header.root));
tree = tree_create();
nodes = calloc(header.count, sizeof(*nodes));
rc = tree_load_nodes(tree, &header, nodes, fp);
fclose(fp);
if (rc) {
diff --git a/src/tbf.h b/src/tbf.h
index 9a9765c..f01ba61 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -58,26 +58,29 @@ struct dump_header {
enum { CHILD_LEFT, CHILD_RIGHT };
#define FL_CHILD_LEFT 0x1
#define FL_CHILD_RIGHT 0x2
-enum { NST_INCOMPLETE, NST_INIT };
+enum node_status { NST_INCOMPLETE, NST_INIT };
struct node {
uint8_t key[SHA256_LEN];
#ifdef DEBUG
char *keystr;
#endif
- struct node *parent;
- struct node *child[2];
- struct node *prev, *next;
- pthread_cond_t notbusy;
- int busy:1;
- int status;
- uint32_t ord;
+ struct node *parent; /* Parent node */
+ struct node *child[2]; /* Left and right child nodes */
+ struct node *prev, *next; /* More (prev) and less (next) recently
+ updated nodes. */
+ pthread_cond_t notbusy; /* Prevent simultaneous updates */
+ int busy:1; /* Node is in use if 1 */
+ enum node_status status; /* Node status */
+ uint32_t ord; /* Used when dumping nodes and computing tree
+ stats */
+ /* Actual TBF payload: */
uint64_t timestamp; /* microseconds since epoch */
size_t tokens; /* tokens available */
};
struct tree
{

Return to:

Send suggestions and report system problems to the System administrator.