@cryptotaxi247 / netdata-1 / commits / d2463170f

Use named constants for keyword tokens. (#16787)

* name integer constants in keyword switch. * Update gperf config. - Use initializer suffix to silence warnings when enabling all warnings. - Mark the generated table as const * Fix pointer to bool conversion warwning ``` collectors/plugins.d/pluginsd_parser.c:798:37: warning: address of 'parser->user' will always evaluate to 'true' [-Wpointer-bool-conversion] _Bool can_copy = ((&parser->user) && ((&parser->user)->capabilities & (STREAM_CAP_IEEE754)) == (STREAM_CAP_IEEE754)) == ((&parser->user.v2.stream_buffer) && ((&parser->user.v2.stream_buffer)->capabilities & (STREAM_CAP_IEEE754)) == (STREAM_CAP_IEEE754)); ~~~~~~~~^~~~ ~~ ``` * Revert "Fix pointer to bool conversion warwning" This reverts commit 01171d03126411999764196986ffbf163a7df1f3. * Return parser error when handling an unknown keyword.

vkalintiris committed Jan 16, 2024 at 13:35 UTC d2463170f62e736fcb0cb1235fd28f46729a54aa
4 files changed +271 -203
collectors/plugins.d/gperf-config.txt
+86 -38
@@ -1,3 +1,49 @@
1 +%{
2 +
3 +#define PLUGINSD_KEYWORD_ID_FLUSH 97
4 +#define PLUGINSD_KEYWORD_ID_DISABLE 98
5 +#define PLUGINSD_KEYWORD_ID_EXIT 99
6 +#define PLUGINSD_KEYWORD_ID_HOST 71
7 +#define PLUGINSD_KEYWORD_ID_HOST_DEFINE 72
8 +#define PLUGINSD_KEYWORD_ID_HOST_DEFINE_END 73
9 +#define PLUGINSD_KEYWORD_ID_HOST_LABEL 74
10 +
11 +#define PLUGINSD_KEYWORD_ID_BEGIN 12
12 +#define PLUGINSD_KEYWORD_ID_CHART 32
13 +#define PLUGINSD_KEYWORD_ID_CLABEL 34
14 +#define PLUGINSD_KEYWORD_ID_CLABEL_COMMIT 35
15 +#define PLUGINSD_KEYWORD_ID_DIMENSION 31
16 +#define PLUGINSD_KEYWORD_ID_END 13
17 +#define PLUGINSD_KEYWORD_ID_FUNCTION 41
18 +#define PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN 42
19 +#define PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS 43
20 +#define PLUGINSD_KEYWORD_ID_LABEL 51
21 +#define PLUGINSD_KEYWORD_ID_OVERWRITE 52
22 +#define PLUGINSD_KEYWORD_ID_SET 11
23 +#define PLUGINSD_KEYWORD_ID_VARIABLE 53
24 +#define PLUGINSD_KEYWORD_ID_CONFIG 100
25 +
26 +#define PLUGINSD_KEYWORD_ID_CLAIMED_ID 61
27 +#define PLUGINSD_KEYWORD_ID_BEGIN2 2
28 +#define PLUGINSD_KEYWORD_ID_SET2 1
29 +#define PLUGINSD_KEYWORD_ID_END2 3
30 +
31 +#define PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END 33
32 +#define PLUGINSD_KEYWORD_ID_RBEGIN 22
33 +#define PLUGINSD_KEYWORD_ID_RDSTATE 23
34 +#define PLUGINSD_KEYWORD_ID_REND 25
35 +#define PLUGINSD_KEYWORD_ID_RSET 21
36 +#define PLUGINSD_KEYWORD_ID_RSSTATE 24
37 +
38 +#define PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE 901
39 +#define PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE 902
40 +#define PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB 903
41 +#define PLUGINSD_KEYWORD_ID_DYNCFG_RESET 904
42 +#define PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS 905
43 +#define PLUGINSD_KEYWORD_ID_DELETE_JOB 906
44 +
45 +%}
46 +
47 %struct-type
48 %omit-struct-type
49 %define hash-function-name gperf_keyword_hash_function
@@ -5,60 +51,62 @@
51 %define word-array-name gperf_keywords
52 %define constants-prefix GPERF_PARSER_
53 %define slot-name keyword
54 +%define initializer-suffix ,0,PARSER_INIT_PLUGINSD,0
55 %global-table
56 +%readonly-tables
57 %null-strings
58 PARSER_KEYWORD;
59 +
60 %%
61 #
62 # Plugins Only Keywords
63 #
15 -FLUSH, 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1
16 -DISABLE, 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2
17 -EXIT, 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3
18 -HOST, 71, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4
19 -HOST_DEFINE, 72, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5
20 -HOST_DEFINE_END, 73, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6
21 -HOST_LABEL, 74, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7
64 +FLUSH, PLUGINSD_KEYWORD_ID_FLUSH, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1
65 +DISABLE, PLUGINSD_KEYWORD_ID_DISABLE, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2
66 +EXIT, PLUGINSD_KEYWORD_ID_EXIT, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3
67 +HOST, PLUGINSD_KEYWORD_ID_HOST, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4
68 +HOST_DEFINE, PLUGINSD_KEYWORD_ID_HOST_DEFINE, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5
69 +HOST_DEFINE_END, PLUGINSD_KEYWORD_ID_HOST_DEFINE_END, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6
70 +HOST_LABEL, PLUGINSD_KEYWORD_ID_HOST_LABEL, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7
71 #
72 # Common keywords
73 #
25 -BEGIN, 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8
26 -CHART, 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 9
27 -CLABEL, 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10
28 -CLABEL_COMMIT, 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11
29 -DIMENSION, 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12
30 -END, 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13
31 -FUNCTION, 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14
32 -FUNCTION_RESULT_BEGIN, 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15
33 -FUNCTION_PROGRESS, 43, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16
34 -#
35 -LABEL, 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17
36 -OVERWRITE, 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18
37 -SET, 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19
38 -VARIABLE, 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20
39 -CONFIG, 100, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 21
74 +BEGIN, PLUGINSD_KEYWORD_ID_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8
75 +CHART, PLUGINSD_KEYWORD_ID_CHART, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 9
76 +CLABEL, PLUGINSD_KEYWORD_ID_CLABEL, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10
77 +CLABEL_COMMIT, PLUGINSD_KEYWORD_ID_CLABEL_COMMIT, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11
78 +DIMENSION, PLUGINSD_KEYWORD_ID_DIMENSION, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12
79 +END, PLUGINSD_KEYWORD_ID_END, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13
80 +FUNCTION, PLUGINSD_KEYWORD_ID_FUNCTION, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14
81 +FUNCTION_RESULT_BEGIN, PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15
82 +FUNCTION_PROGRESS, PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16
83 +LABEL, PLUGINSD_KEYWORD_ID_LABEL, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17
84 +OVERWRITE, PLUGINSD_KEYWORD_ID_OVERWRITE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18
85 +SET, PLUGINSD_KEYWORD_ID_SET, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19
86 +VARIABLE, PLUGINSD_KEYWORD_ID_VARIABLE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20
87 +CONFIG, PLUGINSD_KEYWORD_ID_CONFIG, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 21
88 #
89 # Streaming only keywords
90 #
43 -CLAIMED_ID, 61, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22
44 -BEGIN2, 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23
45 -SET2, 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24
46 -END2, 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25
91 +CLAIMED_ID, PLUGINSD_KEYWORD_ID_CLAIMED_ID, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22
92 +BEGIN2, PLUGINSD_KEYWORD_ID_BEGIN2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23
93 +SET2, PLUGINSD_KEYWORD_ID_SET2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24
94 +END2, PLUGINSD_KEYWORD_ID_END2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25
95 #
96 # Streaming Replication keywords
97 #
50 -CHART_DEFINITION_END, 33, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26
51 -RBEGIN, 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27
52 -RDSTATE, 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28
53 -REND, 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29
54 -RSET, 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30
55 -RSSTATE, 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31
98 +CHART_DEFINITION_END, PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26
99 +RBEGIN, PLUGINSD_KEYWORD_ID_RBEGIN, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27
100 +RDSTATE, PLUGINSD_KEYWORD_ID_RDSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28
101 +REND, PLUGINSD_KEYWORD_ID_REND, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29
102 +RSET, PLUGINSD_KEYWORD_ID_RSET, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30
103 +RSSTATE, PLUGINSD_KEYWORD_ID_RSSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31
104 #
105 # obsolete - do nothing commands
106 #
59 -DYNCFG_ENABLE, 901, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32
60 -DYNCFG_REGISTER_MODULE, 902, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33
61 -DYNCFG_REGISTER_JOB, 903, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34
62 -DYNCFG_RESET, 904, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35
63 -REPORT_JOB_STATUS, 905, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36
64 -DELETE_JOB, 906, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37
107 +DYNCFG_ENABLE, PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32
108 +DYNCFG_REGISTER_MODULE, PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33
109 +DYNCFG_REGISTER_JOB, PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34
110 +DYNCFG_RESET, PLUGINSD_KEYWORD_ID_DYNCFG_RESET, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35
111 +REPORT_JOB_STATUS, PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36
112 +DELETE_JOB, PLUGINSD_KEYWORD_ID_DELETE_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37
collectors/plugins.d/gperf-hashtable.h
+137 -86
@@ -29,6 +29,51 @@
29 #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
30 #endif
31
32 +#line 1 "gperf-config.txt"
33 +
34 +
35 +#define PLUGINSD_KEYWORD_ID_FLUSH 97
36 +#define PLUGINSD_KEYWORD_ID_DISABLE 98
37 +#define PLUGINSD_KEYWORD_ID_EXIT 99
38 +#define PLUGINSD_KEYWORD_ID_HOST 71
39 +#define PLUGINSD_KEYWORD_ID_HOST_DEFINE 72
40 +#define PLUGINSD_KEYWORD_ID_HOST_DEFINE_END 73
41 +#define PLUGINSD_KEYWORD_ID_HOST_LABEL 74
42 +
43 +#define PLUGINSD_KEYWORD_ID_BEGIN 12
44 +#define PLUGINSD_KEYWORD_ID_CHART 32
45 +#define PLUGINSD_KEYWORD_ID_CLABEL 34
46 +#define PLUGINSD_KEYWORD_ID_CLABEL_COMMIT 35
47 +#define PLUGINSD_KEYWORD_ID_DIMENSION 31
48 +#define PLUGINSD_KEYWORD_ID_END 13
49 +#define PLUGINSD_KEYWORD_ID_FUNCTION 41
50 +#define PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN 42
51 +#define PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS 43
52 +#define PLUGINSD_KEYWORD_ID_LABEL 51
53 +#define PLUGINSD_KEYWORD_ID_OVERWRITE 52
54 +#define PLUGINSD_KEYWORD_ID_SET 11
55 +#define PLUGINSD_KEYWORD_ID_VARIABLE 53
56 +#define PLUGINSD_KEYWORD_ID_CONFIG 100
57 +
58 +#define PLUGINSD_KEYWORD_ID_CLAIMED_ID 61
59 +#define PLUGINSD_KEYWORD_ID_BEGIN2 2
60 +#define PLUGINSD_KEYWORD_ID_SET2 1
61 +#define PLUGINSD_KEYWORD_ID_END2 3
62 +
63 +#define PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END 33
64 +#define PLUGINSD_KEYWORD_ID_RBEGIN 22
65 +#define PLUGINSD_KEYWORD_ID_RDSTATE 23
66 +#define PLUGINSD_KEYWORD_ID_REND 25
67 +#define PLUGINSD_KEYWORD_ID_RSET 21
68 +#define PLUGINSD_KEYWORD_ID_RSSTATE 24
69 +
70 +#define PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE 901
71 +#define PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE 902
72 +#define PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB 903
73 +#define PLUGINSD_KEYWORD_ID_DYNCFG_RESET 904
74 +#define PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS 905
75 +#define PLUGINSD_KEYWORD_ID_DELETE_JOB 906
76 +
77
78 #define GPERF_PARSER_TOTAL_KEYWORDS 37
79 #define GPERF_PARSER_MIN_WORD_LENGTH 3
@@ -47,7 +92,7 @@ inline
92 static unsigned int
93 gperf_keyword_hash_function (register const char *str, register size_t len)
94 {
50 - static unsigned char asso_values[] =
95 + static const unsigned char asso_values[] =
96 {
97 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
98 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
@@ -79,95 +124,101 @@ gperf_keyword_hash_function (register const char *str, register size_t len)
124 return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
125 }
126
82 -static PARSER_KEYWORD gperf_keywords[] =
127 +static const PARSER_KEYWORD gperf_keywords[] =
128 {
84 - {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
85 - {(char*)0}, {(char*)0}, {(char*)0},
86 -#line 18 "gperf-config.txt"
87 - {"HOST", 71, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4},
88 - {(char*)0},
89 -#line 39 "gperf-config.txt"
90 - {"CONFIG", 100, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 21},
91 -#line 53 "gperf-config.txt"
92 - {"REND", 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29},
93 -#line 26 "gperf-config.txt"
94 - {"CHART", 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 9},
95 -#line 36 "gperf-config.txt"
96 - {"OVERWRITE", 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18},
97 -#line 21 "gperf-config.txt"
98 - {"HOST_LABEL", 74, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7},
99 -#line 19 "gperf-config.txt"
100 - {"HOST_DEFINE", 72, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5},
101 - {(char*)0},
102 -#line 52 "gperf-config.txt"
103 - {"RDSTATE", 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28},
104 -#line 38 "gperf-config.txt"
105 - {"VARIABLE", 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20},
106 -#line 20 "gperf-config.txt"
107 - {"HOST_DEFINE_END", 73, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6},
108 -#line 17 "gperf-config.txt"
109 - {"EXIT", 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3},
110 -#line 31 "gperf-config.txt"
111 - {"FUNCTION", 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14},
112 -#line 62 "gperf-config.txt"
113 - {"DYNCFG_RESET", 904, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35},
114 -#line 59 "gperf-config.txt"
115 - {"DYNCFG_ENABLE", 901, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32},
116 -#line 63 "gperf-config.txt"
117 - {"REPORT_JOB_STATUS", 905, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36},
118 - {(char*)0},
129 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
130 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
131 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
132 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
133 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
134 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
135 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
136 +#line 67 "gperf-config.txt"
137 + {"HOST", PLUGINSD_KEYWORD_ID_HOST, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 4},
138 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
139 +#line 87 "gperf-config.txt"
140 + {"CONFIG", PLUGINSD_KEYWORD_ID_CONFIG, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 21},
141 +#line 101 "gperf-config.txt"
142 + {"REND", PLUGINSD_KEYWORD_ID_REND, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29},
143 +#line 75 "gperf-config.txt"
144 + {"CHART", PLUGINSD_KEYWORD_ID_CHART, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 9},
145 +#line 84 "gperf-config.txt"
146 + {"OVERWRITE", PLUGINSD_KEYWORD_ID_OVERWRITE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 18},
147 +#line 70 "gperf-config.txt"
148 + {"HOST_LABEL", PLUGINSD_KEYWORD_ID_HOST_LABEL, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 7},
149 +#line 68 "gperf-config.txt"
150 + {"HOST_DEFINE", PLUGINSD_KEYWORD_ID_HOST_DEFINE, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 5},
151 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
152 +#line 100 "gperf-config.txt"
153 + {"RDSTATE", PLUGINSD_KEYWORD_ID_RDSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28},
154 +#line 86 "gperf-config.txt"
155 + {"VARIABLE", PLUGINSD_KEYWORD_ID_VARIABLE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 20},
156 +#line 69 "gperf-config.txt"
157 + {"HOST_DEFINE_END", PLUGINSD_KEYWORD_ID_HOST_DEFINE_END, PARSER_INIT_PLUGINSD|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 6},
158 +#line 66 "gperf-config.txt"
159 + {"EXIT", PLUGINSD_KEYWORD_ID_EXIT, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3},
160 +#line 80 "gperf-config.txt"
161 + {"FUNCTION", PLUGINSD_KEYWORD_ID_FUNCTION, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 14},
162 +#line 110 "gperf-config.txt"
163 + {"DYNCFG_RESET", PLUGINSD_KEYWORD_ID_DYNCFG_RESET, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 35},
164 +#line 107 "gperf-config.txt"
165 + {"DYNCFG_ENABLE", PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32},
166 +#line 111 "gperf-config.txt"
167 + {"REPORT_JOB_STATUS", PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 36},
168 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
169 +#line 112 "gperf-config.txt"
170 + {"DELETE_JOB", PLUGINSD_KEYWORD_ID_DELETE_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37},
171 +#line 98 "gperf-config.txt"
172 + {"CHART_DEFINITION_END", PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26},
173 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
174 +#line 109 "gperf-config.txt"
175 + {"DYNCFG_REGISTER_JOB", PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34},
176 +#line 82 "gperf-config.txt"
177 + {"FUNCTION_PROGRESS", PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16},
178 +#line 99 "gperf-config.txt"
179 + {"RBEGIN", PLUGINSD_KEYWORD_ID_RBEGIN, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27},
180 +#line 108 "gperf-config.txt"
181 + {"DYNCFG_REGISTER_MODULE", PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33},
182 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
183 +#line 81 "gperf-config.txt"
184 + {"FUNCTION_RESULT_BEGIN", PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15},
185 +#line 102 "gperf-config.txt"
186 + {"RSET", PLUGINSD_KEYWORD_ID_RSET, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30},
187 +#line 74 "gperf-config.txt"
188 + {"BEGIN", PLUGINSD_KEYWORD_ID_BEGIN, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8},
189 +#line 92 "gperf-config.txt"
190 + {"BEGIN2", PLUGINSD_KEYWORD_ID_BEGIN2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23},
191 +#line 103 "gperf-config.txt"
192 + {"RSSTATE", PLUGINSD_KEYWORD_ID_RSSTATE, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31},
193 #line 64 "gperf-config.txt"
120 - {"DELETE_JOB", 906, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 37},
121 -#line 50 "gperf-config.txt"
122 - {"CHART_DEFINITION_END", 33, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 26},
123 - {(char*)0},
124 -#line 61 "gperf-config.txt"
125 - {"DYNCFG_REGISTER_JOB", 903, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 34},
126 -#line 33 "gperf-config.txt"
127 - {"FUNCTION_PROGRESS", 43, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16},
128 -#line 51 "gperf-config.txt"
129 - {"RBEGIN", 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27},
130 -#line 60 "gperf-config.txt"
131 - {"DYNCFG_REGISTER_MODULE", 902, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 33},
132 - {(char*)0},
133 -#line 32 "gperf-config.txt"
134 - {"FUNCTION_RESULT_BEGIN", 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15},
135 -#line 54 "gperf-config.txt"
136 - {"RSET", 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30},
137 -#line 25 "gperf-config.txt"
138 - {"BEGIN", 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8},
139 -#line 44 "gperf-config.txt"
140 - {"BEGIN2", 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23},
141 -#line 55 "gperf-config.txt"
142 - {"RSSTATE", 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31},
143 -#line 15 "gperf-config.txt"
144 - {"FLUSH", 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1},
145 -#line 37 "gperf-config.txt"
146 - {"SET", 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19},
147 -#line 45 "gperf-config.txt"
148 - {"SET2", 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24},
149 - {(char*)0},
150 -#line 27 "gperf-config.txt"
151 - {"CLABEL", 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10},
152 -#line 16 "gperf-config.txt"
153 - {"DISABLE", 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2},
154 -#line 35 "gperf-config.txt"
155 - {"LABEL", 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17},
156 -#line 29 "gperf-config.txt"
157 - {"DIMENSION", 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12},
158 -#line 43 "gperf-config.txt"
159 - {"CLAIMED_ID", 61, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22},
160 - {(char*)0}, {(char*)0},
161 -#line 28 "gperf-config.txt"
162 - {"CLABEL_COMMIT", 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11},
163 - {(char*)0},
164 -#line 30 "gperf-config.txt"
165 - {"END", 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13},
166 -#line 46 "gperf-config.txt"
167 - {"END2", 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25}
194 + {"FLUSH", PLUGINSD_KEYWORD_ID_FLUSH, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1},
195 +#line 85 "gperf-config.txt"
196 + {"SET", PLUGINSD_KEYWORD_ID_SET, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19},
197 +#line 93 "gperf-config.txt"
198 + {"SET2", PLUGINSD_KEYWORD_ID_SET2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24},
199 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
200 +#line 76 "gperf-config.txt"
201 + {"CLABEL", PLUGINSD_KEYWORD_ID_CLABEL, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 10},
202 +#line 65 "gperf-config.txt"
203 + {"DISABLE", PLUGINSD_KEYWORD_ID_DISABLE, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2},
204 +#line 83 "gperf-config.txt"
205 + {"LABEL", PLUGINSD_KEYWORD_ID_LABEL, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 17},
206 +#line 78 "gperf-config.txt"
207 + {"DIMENSION", PLUGINSD_KEYWORD_ID_DIMENSION, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 12},
208 +#line 91 "gperf-config.txt"
209 + {"CLAIMED_ID", PLUGINSD_KEYWORD_ID_CLAIMED_ID, PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 22},
210 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
211 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
212 +#line 77 "gperf-config.txt"
213 + {"CLABEL_COMMIT", PLUGINSD_KEYWORD_ID_CLABEL_COMMIT, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING|PARSER_REP_METADATA, WORKER_PARSER_FIRST_JOB + 11},
214 + {(char*)0,0,PARSER_INIT_PLUGINSD,0},
215 +#line 79 "gperf-config.txt"
216 + {"END", PLUGINSD_KEYWORD_ID_END, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13},
217 +#line 94 "gperf-config.txt"
218 + {"END2", PLUGINSD_KEYWORD_ID_END2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25}
219 };
220
170 -PARSER_KEYWORD *
221 +const PARSER_KEYWORD *
222 gperf_lookup_keyword (register const char *str, register size_t len)
223 {
224 if (len <= GPERF_PARSER_MAX_WORD_LENGTH && len >= GPERF_PARSER_MIN_WORD_LENGTH)
collectors/plugins.d/pluginsd_parser.c
+43 -74
@@ -1264,118 +1264,87 @@ inline size_t pluginsd_process(RRDHOST *host, struct plugind *cd, FILE *fp_plugi
1264 return count;
1265 }
1266
1267 -PARSER_RC parser_execute(PARSER *parser, PARSER_KEYWORD *keyword, char **words, size_t num_words) {
1267 +#include "gperf-hashtable.h"
1268 +
1269 +PARSER_RC parser_execute(PARSER *parser, const PARSER_KEYWORD *keyword, char **words, size_t num_words) {
1270 switch(keyword->id) {
1269 - case 1:
1271 + case PLUGINSD_KEYWORD_ID_SET2:
1272 return pluginsd_set_v2(words, num_words, parser);
1271 -
1272 - case 2:
1273 + case PLUGINSD_KEYWORD_ID_BEGIN2:
1274 return pluginsd_begin_v2(words, num_words, parser);
1274 -
1275 - case 3:
1275 + case PLUGINSD_KEYWORD_ID_END2:
1276 return pluginsd_end_v2(words, num_words, parser);
1277 -
1278 - case 11:
1277 + case PLUGINSD_KEYWORD_ID_SET:
1278 return pluginsd_set(words, num_words, parser);
1280 -
1281 - case 12:
1279 + case PLUGINSD_KEYWORD_ID_BEGIN:
1280 return pluginsd_begin(words, num_words, parser);
1283 -
1284 - case 13:
1281 + case PLUGINSD_KEYWORD_ID_END:
1282 return pluginsd_end(words, num_words, parser);
1286 -
1287 - case 21:
1283 + case PLUGINSD_KEYWORD_ID_RSET:
1284 return pluginsd_replay_set(words, num_words, parser);
1289 -
1290 - case 22:
1285 + case PLUGINSD_KEYWORD_ID_RBEGIN:
1286 return pluginsd_replay_begin(words, num_words, parser);
1292 -
1293 - case 23:
1287 + case PLUGINSD_KEYWORD_ID_RDSTATE:
1288 return pluginsd_replay_rrddim_collection_state(words, num_words, parser);
1295 -
1296 - case 24:
1289 + case PLUGINSD_KEYWORD_ID_RSSTATE:
1290 return pluginsd_replay_rrdset_collection_state(words, num_words, parser);
1298 -
1299 - case 25:
1291 + case PLUGINSD_KEYWORD_ID_REND:
1292 return pluginsd_replay_end(words, num_words, parser);
1301 -
1302 - case 31:
1293 + case PLUGINSD_KEYWORD_ID_DIMENSION:
1294 return pluginsd_dimension(words, num_words, parser);
1304 -
1305 - case 32:
1295 + case PLUGINSD_KEYWORD_ID_CHART:
1296 return pluginsd_chart(words, num_words, parser);
1307 -
1308 - case 33:
1297 + case PLUGINSD_KEYWORD_ID_CHART_DEFINITION_END:
1298 return pluginsd_chart_definition_end(words, num_words, parser);
1310 -
1311 - case 34:
1299 + case PLUGINSD_KEYWORD_ID_CLABEL:
1300 return pluginsd_clabel(words, num_words, parser);
1313 -
1314 - case 35:
1301 + case PLUGINSD_KEYWORD_ID_CLABEL_COMMIT:
1302 return pluginsd_clabel_commit(words, num_words, parser);
1316 -
1317 - case 41:
1303 + case PLUGINSD_KEYWORD_ID_FUNCTION:
1304 return pluginsd_function(words, num_words, parser);
1319 -
1320 - case 42:
1305 + case PLUGINSD_KEYWORD_ID_FUNCTION_RESULT_BEGIN:
1306 return pluginsd_function_result_begin(words, num_words, parser);
1322 -
1323 - case 43:
1307 + case PLUGINSD_KEYWORD_ID_FUNCTION_PROGRESS:
1308 return pluginsd_function_progress(words, num_words, parser);
1325 -
1326 - case 51:
1309 + case PLUGINSD_KEYWORD_ID_LABEL:
1310 return pluginsd_label(words, num_words, parser);
1328 -
1329 - case 52:
1311 + case PLUGINSD_KEYWORD_ID_OVERWRITE:
1312 return pluginsd_overwrite(words, num_words, parser);
1331 -
1332 - case 53:
1313 + case PLUGINSD_KEYWORD_ID_VARIABLE:
1314 return pluginsd_variable(words, num_words, parser);
1334 -
1335 - case 61:
1315 + case PLUGINSD_KEYWORD_ID_CLAIMED_ID:
1316 return streaming_claimed_id(words, num_words, parser);
1337 -
1338 - case 71:
1317 + case PLUGINSD_KEYWORD_ID_HOST:
1318 return pluginsd_host(words, num_words, parser);
1340 -
1341 - case 72:
1319 + case PLUGINSD_KEYWORD_ID_HOST_DEFINE:
1320 return pluginsd_host_define(words, num_words, parser);
1343 -
1344 - case 73:
1321 + case PLUGINSD_KEYWORD_ID_HOST_DEFINE_END:
1322 return pluginsd_host_define_end(words, num_words, parser);
1346 -
1347 - case 74:
1323 + case PLUGINSD_KEYWORD_ID_HOST_LABEL:
1324 return pluginsd_host_labels(words, num_words, parser);
1349 -
1350 - case 97:
1325 + case PLUGINSD_KEYWORD_ID_FLUSH:
1326 return pluginsd_flush(words, num_words, parser);
1352 -
1353 - case 98:
1327 + case PLUGINSD_KEYWORD_ID_DISABLE:
1328 return pluginsd_disable(words, num_words, parser);
1355 -
1356 - case 99:
1329 + case PLUGINSD_KEYWORD_ID_EXIT:
1330 return pluginsd_exit(words, num_words, parser);
1358 -
1359 - case 100:
1331 + case PLUGINSD_KEYWORD_ID_CONFIG:
1332 return pluginsd_config(words, num_words, parser);
1333
1362 - case 901:
1363 - case 902:
1364 - case 903:
1365 - case 904:
1366 - case 905:
1367 - case 906:
1334 + case PLUGINSD_KEYWORD_ID_DYNCFG_ENABLE:
1335 + case PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_MODULE:
1336 + case PLUGINSD_KEYWORD_ID_DYNCFG_REGISTER_JOB:
1337 + case PLUGINSD_KEYWORD_ID_DYNCFG_RESET:
1338 + case PLUGINSD_KEYWORD_ID_REPORT_JOB_STATUS:
1339 + case PLUGINSD_KEYWORD_ID_DELETE_JOB:
1340 return pluginsd_dyncfg_noop(words, num_words, parser);
1341
1342 default:
1371 - break;
1343 + netdata_log_error("Unknown keyword '%s' with id %zu", keyword->keyword, keyword->id);
1344 + return PARSER_RC_ERROR;;
1345 }
1373 -
1374 - fatal("Unknown keyword '%s' with id %zu", keyword->keyword, keyword->id);
1346 }
1347
1377 -#include "gperf-hashtable.h"
1378 -
1348 void parser_init_repertoire(PARSER *parser, PARSER_REPERTOIRE repertoire) {
1349 parser->repertoire = repertoire;
1350
@@ -1409,7 +1378,7 @@ int pluginsd_parser_unittest(void) {
1378 strncpyz(input, lines[line], PLUGINSD_LINE_MAX);
1379 size_t num_words = quoted_strings_splitter_pluginsd(input, words, PLUGINSD_MAX_WORDS);
1380 const char *command = get_word(words, num_words, 0);
1412 - PARSER_KEYWORD *keyword = parser_find_keyword(p, command);
1381 + const PARSER_KEYWORD *keyword = parser_find_keyword(p, command);
1382 if(unlikely(!keyword))
1383 fatal("Cannot parse the line '%s'", lines[line]);
1384 count++;
collectors/plugins.d/pluginsd_parser.h
+5 -5
@@ -112,7 +112,7 @@ typedef struct parser {
112
113 struct buffered_reader reader;
114 struct line_splitter line;
115 - PARSER_KEYWORD *keyword;
115 + const PARSER_KEYWORD *keyword;
116
117 struct {
118 const char *end_keyword;
@@ -137,7 +137,7 @@ void parser_init_repertoire(PARSER *parser, PARSER_REPERTOIRE repertoire);
137 void parser_destroy(PARSER *working_parser);
138 void pluginsd_cleanup_v2(PARSER *parser);
139 void pluginsd_keywords_init(PARSER *parser, PARSER_REPERTOIRE repertoire);
140 -PARSER_RC parser_execute(PARSER *parser, PARSER_KEYWORD *keyword, char **words, size_t num_words);
140 +PARSER_RC parser_execute(PARSER *parser, const PARSER_KEYWORD *keyword, char **words, size_t num_words);
141
142 static inline int find_first_keyword(const char *src, char *dst, int dst_size, bool *isspace_map) {
143 const char *s = src, *keyword_start;
@@ -153,10 +153,10 @@ static inline int find_first_keyword(const char *src, char *dst, int dst_size, b
153 return dst_size == 0 ? 0 : (int) (s - keyword_start);
154 }
155
156 -PARSER_KEYWORD *gperf_lookup_keyword(register const char *str, register size_t len);
156 +const PARSER_KEYWORD *gperf_lookup_keyword(register const char *str, register size_t len);
157
158 -static inline PARSER_KEYWORD *parser_find_keyword(PARSER *parser, const char *command) {
159 - PARSER_KEYWORD *t = gperf_lookup_keyword(command, strlen(command));
158 +static inline const PARSER_KEYWORD *parser_find_keyword(PARSER *parser, const char *command) {
159 + const PARSER_KEYWORD *t = gperf_lookup_keyword(command, strlen(command));
160 if(t && (t->repertoire & parser->repertoire))
161 return t;
162