Index: plugins/check_ntp_time.c =================================================================== --- plugins/check_ntp_time.c (revision 1884) +++ plugins/check_ntp_time.c (working copy) @@ -249,8 +249,12 @@ int best_offset_server(const ntp_server_results *slist, int nservers){ int i=0, j=0, cserver=0, candidates[5], csize=0; + if (verbose>2) + printf("best_offset_server() line %d: nservers=%d\n", __LINE__, nservers); /* for each server */ for(cserver=0; cserver2) + printf("best_offset_server() line %d: cserver=%d\n", __LINE__, cserver); /* sort out servers with error flags */ if ( LI(slist[cserver].flags) != LI_NOWARNING ){ if (verbose) printf("discarding peer id %d: flags=%d\n", cserver, LI(slist[cserver].flags)); @@ -261,25 +265,37 @@ for(i=0; i2) + printf("best_offset_server() line %d: slist[%d].stratum <= slist[%d].stratum\n", __LINE__, cserver, i); /* does it have an equal or better dispersion? */ if(slist[cserver].rtdisp <= slist[i].rtdisp){ + if (verbose>2) + printf("best_offset_server() line %d: slist[%d].rtdisp <= slist[%d].rtdisp\n", __LINE__, cserver, i); /* does it have a better rtdelay? */ if(slist[cserver].rtdelay < slist[i].rtdelay){ + if (verbose>2) + printf("best_offset_server() line %d: slist[%d].rtdelay < slist[%d].rtdelay\n", __LINE__, cserver, i); break; } } } + if (verbose>2) + printf("best_offset_server() line %d: i=%d, csize=%d\n", __LINE__, i, csize); } /* if we haven't reached the current list's end, move everyone * over one to the right, and insert the new candidate */ if(ii; j--){ + if (verbose>2) + printf("best_offset_server() line %d: candidates[%d]=candidates[%d-1] (i=%d, csize=%d)\n", __LINE__, j, j, i, csize); candidates[j]=candidates[j-1]; } } /* regardless, if they should be on the list... */ if(i<5) { + if (verbose>2) + printf("best_offset_server() line %d: candidates[%d]=%d (csize=%d)\n", __LINE__, i, cserver, csize); candidates[i]=cserver; if(csize<5) csize++; /* otherwise discard the server */ @@ -337,6 +353,7 @@ servers=(ntp_server_results*)malloc(sizeof(ntp_server_results)*num_hosts); if(servers==NULL) die(STATE_UNKNOWN, "can not allocate server array"); memset(servers, 0, sizeof(ntp_server_results)*num_hosts); + DBG(printf("Found %d peers to check\n", num_hosts)); /* setup each socket for writing, and the corresponding struct pollfd */ ai_tmp=ai;