case CP_REFID:
#ifdef REFCLOCK
- if (peer->flags & FLAG_REFCLOCK) {
- ctl_putrefid(peer_var[varid].text, peer->refid);
+ if (p->flags & FLAG_REFCLOCK) {
+ ctl_putrefid(peer_var[id].text, p->refid);
break;
}
#endif
- if (peer->stratum > 1 && peer->stratum < STRATUM_UNSPEC)
- ctl_putadr(peer_var[varid].text, peer->refid,
+ if (p->stratum > 1 && p->stratum < STRATUM_UNSPEC)
+ ctl_putadr(peer_var[id].text, p->refid,
NULL);
else
- ctl_putrefid(peer_var[varid].text, peer->refid);
+ ctl_putrefid(peer_var[id].text, p->refid);
break;
case CP_REFTIME:
pcs->fudgeval2, NULL);
else
ctl_putrefid(clock_var[id].text,
- clock_stat->fudgeval2);
+ pcs->fudgeval2);
}
break;
static struct peer * findexistingpeer_name(const char *, u_short,
struct peer *, int);
static struct peer * findexistingpeer_addr(sockaddr_u *,
- struct peer *, int);
+ struct peer *, int,
+ u_char);
static void free_peer(struct peer *, int);
static void getmorepeermem(void);
static int score(struct peer *);
findexistingpeer_addr(
sockaddr_u * addr,
struct peer * start_peer,
- int mode
+ int mode,
u_char cast_flags
)
{
* structure.
*/
if (dstadr != NULL) {
- peer = findexistingpeer(srcadr, hostname, hmode,
+ peer = findexistingpeer(srcadr, hostname, NULL, hmode,
cast_flags);
while (peer != NULL) {
if (peer->dstadr == dstadr ||
}
} else {
/* no endpt address given */
- peer = findexistingpeer(srcadr, hostname, hmode, cast_flags);
+ peer = findexistingpeer(srcadr, hostname, NULL, hmode,
+ cast_flags);
}
/*
extern char * chosts[];
extern char currenthost[];
extern int currenthostisnum;
-extern int numhosts;
size_t maxhostlen;
/*
int c;
int len;
int have_srchost;
+ int have_dstadr;
+ int have_da_rid;
int have_jitter;
sockaddr_u srcadr;
sockaddr_u dstadr;
u_long srcport = 0;
u_int32 u32;
const char *dstadr_refid = "0.0.0.0";
- char *serverlocal;
+ const char *serverlocal;
size_t drlen;
u_long stratum = 0;
long ppoll = 0;
get_systime(&ts);
have_srchost = FALSE;
+ have_dstadr = FALSE;
+ have_da_rid = FALSE;
have_jitter = FALSE;
ZERO_SOCK(&srcadr);
ZERO_SOCK(&dstadr);
} else if (!strcmp("dstadr", name)) {
if (decodenetnum(value, &dum_store)) {
type = decodeaddrtype(&dum_store);
- havevar[HAVE_DSTADR] = 1;
+ have_dstadr = TRUE;
dstadr = dum_store;
if (pvl == opeervarlist) {
+ have_da_rid = TRUE;
dstadr_refid = trunc_left(stoa(&dstadr), 15);
}
}
decodeint(value, &hmode);
} else if (!strcmp("refid", name)) {
if (pvl == peervarlist) {
+ have_da_rid = TRUE;
drlen = strlen(value);
if (0 == drlen) {
dstadr_refid = "";
dstadr_refid =
stoa(&refidadr);
} else {
- havevar[HAVE_REFID] = 0;
+ have_da_rid = FALSE;
}
}
} else if (!strcmp("stratum", name)) {
else
c = flash2[CTL_PEER_STATVAL(rstatus) & 0x3];
if (numhosts > 1) {
- if (peervarlist == pvl && havevar[HAVE_DSTADR]) {
+ if (peervarlist == pvl && have_dstadr) {
serverlocal = nntohost_col(&dstadr,
(size_t)min(LIB_BUFLENGTH - 1, maxhostlen),
TRUE);
strlcpy(clock_name, nntohost(&srcadr),
sizeof(clock_name));
fprintf(fp, "%c%-15.15s ", c, clock_name);
- drlen = strlen(dstadr_refid);
- makeascii(drlen, dstadr_refid, fp);
+ if (!have_da_rid) {
+ drlen = 0;
+ } else {
+ drlen = strlen(dstadr_refid);
+ makeascii(drlen, dstadr_refid, fp);
+ }
while (drlen++ < 15)
fputc(' ', fp);
fprintf(fp,
int af
)
{
- int i;
+ u_int u;
char fullname[LENHOSTNAME];
sockaddr_u netnum;
- char * name_or_num;
+ const char * name_or_num;
size_t sl;
if (!dogetassoc(fp))
return;
- for (i = 0; i < numhosts; ++i) {
- if (getnetnum(chosts[i], &netnum, fullname, af)) {
+ for (u = 0; u < numhosts; u++) {
+ if (getnetnum(chosts[u], &netnum, fullname, af)) {
name_or_num = nntohost(&netnum);
sl = strlen(name_or_num);
- maxhostlen = max(maxhostlen, (int)sl);
+ maxhostlen = max(maxhostlen, sl);
}
}
if (numhosts > 1)
fprintf(fp,
" remote refid st t when poll reach delay offset jitter\n");
if (numhosts > 1)
- for (i = 0; i <= maxhostlen; ++i)
+ for (u = 0; u <= maxhostlen; u++)
fprintf(fp, "=");
fprintf(fp,
"==============================================================================\n");
- for (i = 0; i < numassoc; i++) {
+ for (u = 0; u < numassoc; u++) {
if (!showall &&
- !(CTL_PEER_STATVAL(assoc_cache[i].status)
+ !(CTL_PEER_STATVAL(assoc_cache[u].status)
& (CTL_PST_CONFIG|CTL_PST_REACH))) {
if (debug)
- fprintf(stderr, "eliding [%d]\n", assoc_cache[i].assid);
+ fprintf(stderr, "eliding [%d]\n",
+ (int)assoc_cache[u].assid);
continue;
}
- if (!dogetpeers(peervarlist, (int)assoc_cache[i].assid, fp, af)) {
+ if (!dogetpeers(peervarlist, (int)assoc_cache[u].assid,
+ fp, af))
return;
- }
}
return;
}
extern void printvars (int, const char *, int, int, int, FILE *);
extern int decodeint (char *, long *);
extern void makeascii (int, const char *, FILE *);
-extern char * trunc_left (const char *, size_t);
-extern char * trunc_right (const char *, size_t);
+extern const char * trunc_left (const char *, size_t);
+extern const char * trunc_right(const char *, size_t);