[dm-devel] [PATCH 4/5] libmultipath: Print line number for which parsing failed

Sebastian Herbszt herbszt at gmx.de
Thu Jul 24 14:44:04 UTC 2014


Bart Van Assche wrote:
> Make it easier to figure out which line contains a syntax error
> by printing the line number and the offending line itself.
> 
> Signed-off-by: Bart Van Assche <bvanassche at acm.org>
> ---
>  libmultipath/parser.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/libmultipath/parser.c b/libmultipath/parser.c
> index b7bdfcc..d8673bc 100644
> --- a/libmultipath/parser.c
> +++ b/libmultipath/parser.c
> @@ -460,7 +460,7 @@ int
>  process_stream(vector keywords)
>  {
>  	int i;
> -	int r = 0;
> +	int r = 0, t;
>  	struct keyword *keyword;
>  	char *str;
>  	char *buf;
> @@ -501,8 +501,13 @@ process_stream(vector keywords)
>  						free_strvec(strvec);
>  						goto out;
>  				}
> -				if (keyword->handler)
> -					r += (*keyword->handler) (strvec);
> +				if (keyword->handler) {
> +					t = (*keyword->handler) (strvec);
> +					r += t;
> +					if (t)
> +						condlog(1, "multipath.conf +%d parsing failed: %s",
> +							line_nr, buf);
> +				}
>  
>  				if (keyword->sub) {
>  					kw_level++;

Further below
condlog(1, "multipath.conf +%d, invalid keyword: %s", line_nr, str);
is used, so maybe also add a comma after the line number too.

Sebastian




More information about the dm-devel mailing list