static void writevar (struct parse *, FILE *);
static void clocklist (struct parse *, FILE *);
static void clockvar (struct parse *, FILE *);
-static int findassidrange (u_int32, u_int32, int *, int *);
+static int findassidrange (u_int32, u_int32, int *, int *,
+ FILE *);
static void mreadlist (struct parse *, FILE *);
static void mreadvar (struct parse *, FILE *);
static void printassoc (int, FILE *);
{ "assocID", "name=value,[...]", "", "" },
"write system or peer variables" },
{ "mreadlist", mreadlist, { NTP_UINT, NTP_UINT, NO, NO },
- { "assocID", "assocID", "", "" },
+ { "assocIDlow", "assocIDhigh", "", "" },
"read the peer variables in the variable list for multiple peers" },
{ "mrl", mreadlist, { NTP_UINT, NTP_UINT, NO, NO },
- { "assocID", "assocID", "", "" },
+ { "assocIDlow", "assocIDhigh", "", "" },
"read the peer variables in the variable list for multiple peers" },
{ "mreadvar", mreadvar, { NTP_UINT, NTP_UINT, OPT|NTP_STR, NO },
- { "assocID", "assocID", "name=value[,...]", "" },
+ { "assocIDlow", "assocIDhigh", "name=value[,...]", "" },
"read peer variables from multiple peers" },
{ "mrv", mreadvar, { NTP_UINT, NTP_UINT, OPT|NTP_STR, NO },
- { "assocID", "assocID", "name=value[,...]", "" },
+ { "assocIDlow", "assocIDhigh", "name=value[,...]", "" },
"read peer variables from multiple peers" },
{ "clocklist", clocklist, { OPT|NTP_UINT, NO, NO, NO },
{ "assocID", "", "", "" },
*/
static int
findassidrange(
- u_int32 assid1,
- u_int32 assid2,
- int *from,
- int *to
+ u_int32 assid1,
+ u_int32 assid2,
+ int * from,
+ int * to,
+ FILE * fp
)
{
associd_t assids[2];
u_int i;
size_t a;
+
+ if (0 == numassoc)
+ dogetassoc(fp);
+
assids[0] = checkassocid(assid1);
if (0 == assids[0])
return 0;
int from;
int to;
- /* HMS: uval? */
if (!findassidrange(pcmd->argval[0].uval, pcmd->argval[1].uval,
- &from, &to))
+ &from, &to, fp))
return;
for (i = from; i <= to; i++) {
if (i != from)
- (void) fprintf(fp, "\n");
- if (!dolist(g_varlist, (int)assoc_cache[i].assid,
- CTL_OP_READVAR, TYPE_PEER, fp))
+ fprintf(fp, "\n");
+ if (!dolist(g_varlist, assoc_cache[i].assid,
+ CTL_OP_READVAR, TYPE_PEER, fp))
return;
}
return;
struct varlist tmplist[MAXLIST];
struct varlist *pvars;
- /* HMS: uval? */
if (!findassidrange(pcmd->argval[0].uval, pcmd->argval[1].uval,
- &from, &to))
+ &from, &to, fp))
return;
if (pcmd->nargs >= 3) {
for (i = from; i <= to; i++) {
if (i != from)
fprintf(fp, "\n");
- if (!dolist(pvars, (int)assoc_cache[i].assid,
- CTL_OP_READVAR, TYPE_PEER, fp))
+ if (!dolist(pvars, assoc_cache[i].assid, CTL_OP_READVAR,
+ TYPE_PEER, fp))
break;
}
- doclearvlist(tmplist);
+
+ if (pvars == tmplist)
+ doclearvlist(tmplist);
+
return;
}