]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 408] fix based on proposed patch from cipo
authorHarlan Stenn <stenn@ntp.org>
Wed, 18 May 2005 09:36:08 +0000 (05:36 -0400)
committerHarlan Stenn <stenn@ntp.org>
Wed, 18 May 2005 09:36:08 +0000 (05:36 -0400)
bk: 428b0c887WSzhddpYPss6atWwStbmw

ntpq/ntpq.c
ntpq/ntpq.h
ntpq/ntpq_ops.c

index aa5407a560a735ed44b3d473bd2e30ffd58d453d..84d0ea12f3e071c8bf20cb1ef654ad3f8c978290 100644 (file)
@@ -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 {
index fbe17662af645b9672981bed33f8a5eeaf0e4dc0..0f29fd53c9d287d1aae53f460c4c4102f9cae21e 100644 (file)
@@ -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));
index 707504d573a8e988cf6485b5c82d2eb3eb80b7ca..86dc85b59181a355a508a5faa0717bccc8a786fc 100644 (file)
@@ -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) {