static void
free_config_tree(struct config_tree *ptree)
{
+#if defined(_MSC_VER) && defined (_DEBUG)
+ _CrtCheckMemory();
+#endif
+
if (ptree->source.value.s != NULL)
free(ptree->source.value.s);
free_auth_node(ptree);
free(ptree);
+
+#if defined(_MSC_VER) && defined (_DEBUG)
+ _CrtCheckMemory();
+#endif
}
#endif /* DEBUG */
default:
fprintf(df, "# dump error:\n"
"# unknown peer token %d for:\n"
- "peer %s", peers->host_mode,
- addr->address);
+ "peer ", peers->host_mode);
break;
case T_Peer:
- fprintf(df, "peer %s", addr->address);
+ fprintf(df, "peer");
break;
case T_Server:
- fprintf(df, "server %s", addr->address);
+ fprintf(df, "server");
break;
case T_Broadcast:
- fprintf(df, "broadcast %s", addr->address);
+ fprintf(df, "broadcast");
break;
case T_Manycastclient:
- fprintf(df, "manycastclient %s", addr->address);
+ fprintf(df, "manycastclient");
break;
}
+ if (addr->type != AF_UNSPEC) {
+ switch (addr->type) {
+
+ default:
+ fprintf(df, "# dump error:\n"
+ "# unknown peer family %d for:\n"
+ "peer", addr->type);
+ break;
+
+ case AF_INET:
+ fprintf(df, " -4");
+ break;
+
+ case AF_INET6:
+ fprintf(df, " -6");
+ break;
+ }
+ }
+ fprintf(df, " %s", addr->address);
for (atrv = queue_head(peers->options);
atrv != NULL;
break;
case T_Bias:
- fprintf(df, " bias %f", atrv->value.d);
+ fprintf(df, " bias %g", atrv->value.d);
break;
case T_Key:
break;
case CLK_HAVETIME1:
- fprintf(df, " time1 %f", atrv->value.d);
+ fprintf(df, " time1 %g", atrv->value.d);
break;
case CLK_HAVETIME2:
- fprintf(df, " time2 %f", atrv->value.d);
+ fprintf(df, " time2 %g", atrv->value.d);
break;
case CLK_HAVEVAL1:
break;
case PROTO_ORPHAN:
- fprintf(df, " orphan %d", (int) atrv->value.d);
+ fprintf(df, " orphan %d", (int)atrv->value.d);
break;
case PROTO_MINDISP:
- fprintf(df, " mindist %f", atrv->value.d);
+ fprintf(df, " mindist %g", atrv->value.d);
break;
case PROTO_MAXDIST:
- fprintf(df, " maxdist %f", atrv->value.d);
+ fprintf(df, " maxdist %g", atrv->value.d);
break;
case PROTO_MINCLOCK:
- fprintf(df, " minclock %f", atrv->value.d);
+ fprintf(df, " minclock %d", (int)atrv->value.d);
break;
case PROTO_MAXCLOCK:
- fprintf(df, " maxclock %f", atrv->value.d);
+ fprintf(df, " maxclock %d", (int)atrv->value.d);
break;
case PROTO_MINSANE:
fprintf(df, "enable");
- switch (atrv->attr) {
+ switch (atrv->value.i) {
default:
fprintf(df, "\n# dump error:\n"
"# unknown enable token %d\n"
- "enable", atrv->attr);
- break;
-
- case T_Autokey:
- fprintf(df, " autokey");
- break;
-
- case T_Bias:
- fprintf(df, " bias");
- break;
-
- case T_Burst:
- fprintf(df, " burst");
- break;
-
- case T_Iburst:
- fprintf(df, " iburst");
- break;
-
- case T_Key:
- fprintf(df, " key");
- break;
-
- case T_Maxpoll:
- fprintf(df, " maxpoll");
- break;
-
- case T_Minpoll:
- fprintf(df, " minpoll");
+ "enable", atrv->value.i);
break;
- case T_Mode:
- fprintf(df, " mode");
+ case PROTO_AUTHENTICATE:
+ fprintf(df, " auth");
break;
- case T_Noselect:
- fprintf(df, " noselect");
+ case PROTO_BROADCLIENT:
+ fprintf(df, " bclient");
break;
- case T_Preempt:
- fprintf(df, " preempt");
+ case PROTO_CAL:
+ fprintf(df, " calibrate");
break;
- case T_True:
- fprintf(df, " true");
+ case PROTO_KERNEL:
+ fprintf(df, " kernel");
break;
- case T_Prefer:
- fprintf(df, " prefer");
+ case PROTO_MONITOR:
+ fprintf(df, " monitor");
break;
- case T_Ttl:
- fprintf(df, " ttl");
+ case PROTO_NTP:
+ fprintf(df, " ntp");
break;
- case T_Version:
- fprintf(df, " version");
- break;
-
- case T_Xleave:
- fprintf(df, " xleave");
+ case PROTO_FILEGEN:
+ fprintf(df, " stats");
break;
}
}
+ fprintf(df, "\n");
}
list_ptr = queue_head(ptree->disable_opts);
atrv = (struct attr_val *) list_ptr;
- switch (atrv->attr) {
+ switch (atrv->value.i) {
default:
fprintf(df, "\n# dump error:\n"
"# unknown disable token %d\n"
- "disable", atrv->attr);
- break;
-
- case T_Autokey:
- fprintf(df, " autokey");
- break;
-
- case T_Bias:
- fprintf(df, " bias");
- break;
-
- case T_Burst:
- fprintf(df, " burst");
+ "disable", atrv->value.i);
break;
- case T_Iburst:
- fprintf(df, " iburst");
+ case PROTO_AUTHENTICATE:
+ fprintf(df, " auth");
break;
- case T_Key:
- fprintf(df, " key");
+ case PROTO_BROADCLIENT:
+ fprintf(df, " bclient");
break;
- case T_Maxpoll:
- fprintf(df, " maxpoll");
+ case PROTO_CAL:
+ fprintf(df, " calibrate");
break;
- case T_Minpoll:
- fprintf(df, " minpoll");
+ case PROTO_KERNEL:
+ fprintf(df, " kernel");
break;
- case T_Mode:
- fprintf(df, " mode");
+ case PROTO_MONITOR:
+ fprintf(df, " monitor");
break;
- case T_Noselect:
- fprintf(df, " noselect");
+ case PROTO_NTP:
+ fprintf(df, " ntp");
break;
- case T_Preempt:
- fprintf(df, " preempt");
- break;
-
- case T_True:
- fprintf(df, " true");
- break;
-
- case T_Prefer:
- fprintf(df, " prefer");
- break;
-
- case T_Ttl:
- fprintf(df, " ttl");
- break;
-
- case T_Version:
- fprintf(df, " version");
- break;
-
- case T_Xleave:
- fprintf(df, " xleave");
+ case PROTO_FILEGEN:
+ fprintf(df, " stats");
break;
}
}
-
+ fprintf(df, "\n");
}
list_ptr = queue_head(ptree->tinker);
break;
case T_Broadcastdelay:
- fprintf(df, "broadcastdelay %f\n", atrv->value.d);
+ fprintf(df, "broadcastdelay %g\n", atrv->value.d);
break;
case T_Calldelay:
break;
case T_Tick:
- fprintf(df, "tick %f\n", atrv->value.d);
+ fprintf(df, "tick %g\n", atrv->value.d);
break;
case T_Driftfile:
break;
case T_WanderThreshold:
- fprintf(df, "wander_threshold %f\n", atrv->value.d);
+ fprintf(df, "wander_threshold %g\n", atrv->value.d);
break;
case T_Leapfile: