| @@ -20,27 +20,27 @@ | | | @@ -20,27 +20,27 @@ |
20 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | 20 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
21 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | | 21 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
22 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 22 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
23 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | 23 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
24 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 24 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
25 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | | 25 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
26 | * SUCH DAMAGE. | | 26 | * SUCH DAMAGE. |
27 | * | | 27 | * |
28 | *--------------------------------------------------------------------------- | | 28 | *--------------------------------------------------------------------------- |
29 | * | | 29 | * |
30 | * i4b daemon - runtime configuration parser | | 30 | * i4b daemon - runtime configuration parser |
31 | * ----------------------------------------- | | 31 | * ----------------------------------------- |
32 | * | | 32 | * |
33 | * $Id: rc_parse.y,v 1.6 2009/04/16 05:56:32 lukem Exp $ | | 33 | * $Id: rc_parse.y,v 1.7 2011/08/16 10:39:31 christos Exp $ |
34 | * | | 34 | * |
35 | * $FreeBSD$ | | 35 | * $FreeBSD$ |
36 | * | | 36 | * |
37 | * last edit-date: [Mon Oct 2 22:51:23 2000] | | 37 | * last edit-date: [Mon Oct 2 22:51:23 2000] |
38 | * | | 38 | * |
39 | *---------------------------------------------------------------------------*/ | | 39 | *---------------------------------------------------------------------------*/ |
40 | | | 40 | |
41 | %{ | | 41 | %{ |
42 | | | 42 | |
43 | /* #define YYDEBUG 1 */ | | 43 | /* #define YYDEBUG 1 */ |
44 | | | 44 | |
45 | #include <stdio.h> | | 45 | #include <stdio.h> |
46 | #include <stdlib.h> | | 46 | #include <stdlib.h> |
| @@ -239,46 +239,51 @@ sysentry: sysfileentry | | | @@ -239,46 +239,51 @@ sysentry: sysfileentry |
239 | | sysboolentry | | 239 | | sysboolentry |
240 | | sysnumentry | | 240 | | sysnumentry |
241 | | sysstrentry | | 241 | | sysstrentry |
242 | | sysmonitorstart | | 242 | | sysmonitorstart |
243 | | sysmonitorrights | | 243 | | sysmonitorrights |
244 | | nullentry | | 244 | | nullentry |
245 | | error '\n' | | 245 | | error '\n' |
246 | ; | | 246 | ; |
247 | | | 247 | |
248 | | | 248 | |
249 | sysmonitorstart: | | 249 | sysmonitorstart: |
250 | MONITOR '=' STRING '\n' | | 250 | MONITOR '=' STRING '\n' |
251 | { | | 251 | { |
252 | const char *err = NULL; | | 252 | const char *emsg; |
253 | switch (monitor_start_rights($3)) { | | 253 | switch (monitor_start_rights($3)) { |
254 | case I4BMAR_OK: | | 254 | case I4BMAR_OK: |
| | | 255 | emsg = NULL; |
255 | break; | | 256 | break; |
256 | case I4BMAR_LENGTH: | | 257 | case I4BMAR_LENGTH: |
257 | err = "local socket name too long: %s"; | | 258 | emsg = "local socket name too long"; |
258 | break; | | 259 | break; |
259 | case I4BMAR_DUP: | | 260 | case I4BMAR_DUP: |
260 | err = "duplicate entry: %s"; | | 261 | emsg = "duplicate entry"; |
261 | break; | | 262 | break; |
262 | case I4BMAR_CIDR: | | 263 | case I4BMAR_CIDR: |
263 | err = "invalid CIDR specification: %s"; | | 264 | emsg = "invalid CIDR specification"; |
264 | break; | | 265 | break; |
265 | case I4BMAR_NOIP: | | 266 | case I4BMAR_NOIP: |
266 | err = "could not resolve host or net specification: %s"; | | 267 | emsg = "could not resolve host or net " |
| | | 268 | "specification"; |
267 | break; | | 269 | break; |
| | | 270 | default: |
| | | 271 | emsg = "unknown"; |
| | | 272 | break; |
268 | } | | 273 | } |
269 | if (err) { | | 274 | if (emsg) { |
270 | char msg[1024]; | | 275 | char msg[1024]; |
271 | snprintf(msg, sizeof msg, err, $3); | | 276 | snprintf(msg, sizeof msg, "%s: %s", emsg, $3); |
272 | yyerror(msg); | | 277 | yyerror(msg); |
273 | } | | 278 | } |
274 | } | | 279 | } |
275 | ; | | 280 | ; |
276 | | | 281 | |
277 | sysmonitorrights: | | 282 | sysmonitorrights: |
278 | MONITORACCESS '=' monrights '\n' | | 283 | MONITORACCESS '=' monrights '\n' |
279 | { monitor_add_rights($3); } | | 284 | { monitor_add_rights($3); } |
280 | ; | | 285 | ; |
281 | | | 286 | |
282 | monrights: monrights ',' monright { $$ = $1 | $3; } | | 287 | monrights: monrights ',' monright { $$ = $1 | $3; } |
283 | | monright { $$ = $1; } | | 288 | | monright { $$ = $1; } |
284 | ; | | 289 | ; |