diff options
| author | Daniel Willmann <daniel@totalueberwachung.de> | 2011-04-08 10:46:18 +0200 | 
|---|---|---|
| committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-04-09 20:52:12 +0200 | 
| commit | 2d42ddeba37ed7e0d54bf10dc66b7549ad43bc5b (patch) | |
| tree | e13f0915be3caacc5ea78ec917ab9a5109972f61 /src | |
| parent | 952a18ed19f531b82e26108f8c46ef225fddef43 (diff) | |
Add functions to search for rate counters by name
* rate_ctr_get_group_by_name_idx, rate_ctr_get_by_name
Diffstat (limited to 'src')
| -rw-r--r-- | src/rate_ctr.c | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/src/rate_ctr.c b/src/rate_ctr.c index dd56e806..a7fc9496 100644 --- a/src/rate_ctr.c +++ b/src/rate_ctr.c @@ -125,3 +125,37 @@ int rate_ctr_init(void *tall_ctx)  	return 0;  } + +struct rate_ctr_group *rate_ctr_get_group_by_name_idx(const char *name, const unsigned int idx) +{ +	struct rate_ctr_group *ctrg; + +	llist_for_each_entry(ctrg, &rate_ctr_groups, list) { +		if (!ctrg->desc) +			continue; + +		if (!strcmp(ctrg->desc->group_name_prefix, name) && +				ctrg->idx == idx) { +			return ctrg; +		} +	} +	return NULL; +} + +struct rate_ctr *rate_ctr_get_by_name(const struct rate_ctr_group *ctrg, const char *name) +{ +	int i; +	struct rate_ctr_desc *ctr_desc; + +	if (!ctrg->desc) +		return NULL; + +	for (i = 0; i < ctrg->desc->num_ctr; i++) { +		ctr_desc = &ctrg->desc->ctr_desc[i]; + +		if (!strcmp(ctr_desc->name, name)) { +			return &ctrg->ctr[i]; +		} +	} +	return NULL; +} | 
