Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / tools / munin-plugins-busybox / common.c @ cbfa6b45

Historique | Voir | Annoter | Télécharger (1,19 ko)

1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
#include <unistd.h>
5

    
6
extern char **environ;
7

    
8
int writeyes(void) {
9
        puts("yes");
10
        return 0;
11
}
12

    
13
int writeno(const char *s) {
14
        if(s)
15
                printf("no (%s)\n", s);
16
        else
17
                puts("no");
18
        return 1;
19
}
20

    
21
int getenvint(const char *name, int defvalue) {
22
        const char *value;
23
        value = getenv(name);
24
        if(value == NULL)
25
                return defvalue;
26
        return atoi(value);
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
}