Projet

Général

Profil

Révision cbfa6b45

IDcbfa6b45786e6b11c8f31a75f04932f14ae96af1
Parent 8fbe0ebe
Enfant db74999f

Ajouté par Helmut Grohne il y a presque 13 ans

support warning and critical environment variables

Like the mainline plugins do.

Voir les différences:

tools/munin-plugins-busybox/common.c
1 1
#include <stdio.h>
2 2
#include <stdlib.h>
3
#include <string.h>
4
#include <unistd.h>
5

  
6
extern char **environ;
3 7

  
4 8
int writeyes(void) {
5 9
	puts("yes");
......
21 25
		return defvalue;
22 26
	return atoi(value);
23 27
}
28

  
29
const char *getenv_composed(const char *name1, const char *name2) {
30
	char **p;
31
	size_t len1 = strlen(name1), len2 = strlen(name2);
32
	for(p = environ; *p; ++p) {
33
		if(0 == strncmp(*p, name1, len1) &&
34
				0 == strncmp(len1 + *p, name2, len2) &&
35
				(*p)[len1 + len2] == '=')
36
			return len1 + len2 + 1 + *p;
37
	}
38
	return NULL;
39
}
40

  
41
void print_warning(const char *name) {
42
	const char *p;
43
	p = getenv_composed(name, "_warning");
44
	if(p == NULL)
45
		p = getenv("warning");
46
	if(p == NULL)
47
		return;
48

  
49
	printf("%s.warning %s\n", name, p);
50
}
51

  
52
void print_critical(const char *name) {
53
	const char *p;
54
	p = getenv_composed(name, "_critical");
55
	if(p == NULL)
56
		p = getenv("critical");
57
	if(p == NULL)
58
		return;
59

  
60
	printf("%s.critial %s\n", name, p);
61
}
62

  
63
void print_warncrit(const char *name) {
64
	print_warning(name);
65
	print_critical(name);
66
}

Formats disponibles : Unified diff