From: Harlan Stenn Date: Wed, 18 May 2005 09:36:08 +0000 (-0400) Subject: [Bug 408] fix based on proposed patch from cipo X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e53c44149e3215bfbcecd3714f8bd5c36b84f851;p=thirdparty%2Fntp.git [Bug 408] fix based on proposed patch from cipo bk: 428b0c887WSzhddpYPss6atWwStbmw --- diff --git a/ntpq/ntpq.c b/ntpq/ntpq.c index aa5407a560..84d0ea12f3 100644 --- a/ntpq/ntpq.c +++ b/ntpq/ntpq.c @@ -2751,12 +2751,15 @@ nextvar( /* - * findvar - see if this variable is known to us + * findvar - see if this variable is known to us. + * If "code" is 1, return ctl_var->code. + * Otherwise return the ordinal position of the found variable. */ int findvar( char *varname, - struct ctl_var *varlist + struct ctl_var *varlist, + int code ) { register char *np; @@ -2766,7 +2769,10 @@ findvar( np = varname; while (vl->fmt != EOV) { if (vl->fmt != PADDING && STREQ(np, vl->text)) - return vl->code; + return (code) + ? vl->code + : (vl - varlist) + ; vl++; } return 0; @@ -3030,7 +3036,7 @@ cookedprint( startoutput(); while (nextvar(&length, &data, &name, &value)) { - varid = findvar(name, varlist); + varid = findvar(name, varlist, 0); if (varid == 0) { output_raw = '*'; } else { diff --git a/ntpq/ntpq.h b/ntpq/ntpq.h index fbe17662af..0f29fd53c9 100644 --- a/ntpq/ntpq.h +++ b/ntpq/ntpq.h @@ -90,4 +90,4 @@ extern int nextvar P((int *, char **, char **, char **)); extern int decodetime P((char *, l_fp *)); extern void printvars P((int, char *, int, int, FILE *)); extern int decodeint P((char *, long *)); -extern int findvar P((char *, struct ctl_var *)); +extern int findvar P((char *, struct ctl_var *, int code)); diff --git a/ntpq/ntpq_ops.c b/ntpq/ntpq_ops.c index 707504d573..86dc85b591 100644 --- a/ntpq/ntpq_ops.c +++ b/ntpq/ntpq_ops.c @@ -1393,7 +1393,7 @@ doprintpeers( while (nextvar(&datalen, &data, &name, &value)) { struct sockaddr_storage dum_store; - i = findvar(name, peer_var); + i = findvar(name, peer_var, 1); if (i == 0) continue; /* don't know this one */ switch (i) {