1 #include <assert.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <time.h> 5 6 #include <libmnl/libmnl.h> 7 #include <libnetfilter_conntrack/libnetfilter_conntrack.h> 8 9 static void print_label(struct nfct_labelmap *map) 10 { 11 int b = nfct_labelmap_get_bit(map, "test label 1"); 12 assert(b == 1); 13 14 b = nfct_labelmap_get_bit(map, "zero"); 15 assert(b == 0); 16 17 b = nfct_labelmap_get_bit(map, "test label 2"); 18 assert(b == 2); 19 20 b = nfct_labelmap_get_bit(map, "duplicate"); 21 assert(b < 0); 22 23 b = nfct_labelmap_get_bit(map, "invalid label"); 24 assert(b < 0); 25 26 b = nfct_labelmap_get_bit(map, "T"); 27 assert(b == 42); 28 } 29 30 static void dump_map(struct nfct_labelmap *map) 31 { 32 unsigned int i = 0; 33 34 for (;;) { 35 const char *name = nfct_labelmap_get_name(map, i); 36 if (!name) 37 break; 38 if (name[0]) 39 printf("\t\"%s\", bit %d\n", name, i); 40 i++; 41 } 42 } 43 44 int main(void) 45 { 46 struct nfct_labelmap *l; 47 48 l = nfct_labelmap_new("/"); 49 assert(l == NULL); 50 51 l = nfct_labelmap_new(NULL); 52 if (l) { 53 puts("default connlabel.conf:"); 54 dump_map(l); 55 nfct_labelmap_destroy(l); 56 } else { 57 puts("no default config found"); 58 } 59 60 l = nfct_labelmap_new("qa-connlabel.conf"); 61 if (!l) 62 l = nfct_labelmap_new("qa/qa-connlabel.conf"); 63 assert(l); 64 puts("qa-connlabel.conf:"); 65 dump_map(l); 66 print_label(l); 67 nfct_labelmap_destroy(l); 68 69 return 0; 70 } 71