Lines Matching full:server
157 int sys_samples = 0; /* number of samples/server, will be modified later */
159 struct server *sys_servers; /* the server list */
203 static void transmit (struct server *);
205 static void server_data (struct server *, s_fp, l_fp *, u_fp);
206 static void clock_filter (struct server *);
207 static struct server *clock_select (void);
210 static struct server *findserver (sockaddr_u *);
223 static void print_server (struct server *, FILE *);
345 errflg = (argc < 2); /* need at least server on cmdline */ in ntpdatemain()
439 …%s [-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeo] server ...\n", in ntpdatemain()
502 "Adding time server %s from NetInfo configuration.", in ntpdatemain()
655 * transmit - transmit a packet to the given server, or mark it completed.
661 register struct server *server in transmit() argument
666 if (server->filter_nextpt < server->xmtcnt) { in transmit()
669 * Last message to this server timed out. Shift in transmit()
673 server_data(server, 0, &ts, 0); in transmit()
676 if ((int)server->filter_nextpt >= sys_samples) { in transmit()
681 server->event_time = 0; in transmit()
687 printf("transmit(%s)\n", stoa(&server->srcadr)); in transmit()
690 * If we're here, send another message to the server. Fill in in transmit()
714 get_systime(&server->xmt); in transmit()
715 L_ADDUF(&server->xmt, sys_authdelay); in transmit()
716 HTONL_FP(&server->xmt, &xpkt.xmt); in transmit()
718 sendpkt(&server->srcadr, &xpkt, (int)(LEN_PKT_NOMAC + len)); in transmit()
722 stoa(&server->srcadr)); in transmit()
724 get_systime(&(server->xmt)); in transmit()
725 HTONL_FP(&server->xmt, &xpkt.xmt); in transmit()
726 sendpkt(&server->srcadr, &xpkt, LEN_PKT_NOMAC); in transmit()
729 printf("transmit to %s\n", stoa(&server->srcadr)); in transmit()
733 * Update the server timeout and transmit count in transmit()
735 server->event_time = current_time + sys_timeout; in transmit()
736 server->xmtcnt++; in transmit()
749 register struct server *server; in receive() local
791 * So far, so good. See if this is from a server we know. in receive()
793 server = findserver(&(rbufp->recv_srcadr)); in receive()
794 if (server == NULL) { in receive()
796 printf("receive: server not found\n"); in receive()
805 if (!L_ISEQU(&org, &server->xmt)) { in receive()
833 server->trust <<= 1; in receive()
835 server->trust |= 1; in receive()
843 msyslog(LOG_ERR, "%s rate limit response from server.", in receive()
845 server->event_time = 0; in receive()
853 server->leap = PKT_LEAP(rpkt->li_vn_mode); in receive()
854 server->stratum = PKT_TO_STRATUM(rpkt->stratum); in receive()
855 server->precision = rpkt->precision; in receive()
856 server->rootdelay = ntohl(rpkt->rootdelay); in receive()
857 server->rootdisp = ntohl(rpkt->rootdisp); in receive()
858 server->refid = rpkt->refid; in receive()
859 NTOHL_FP(&rpkt->reftime, &server->reftime); in receive()
861 NTOHL_FP(&rpkt->xmt, &server->org); in receive()
864 * Make sure the server is at least somewhat sane. If not, try in receive()
867 if (L_ISZERO(&rec) || !L_ISHIS(&server->org, &rec)) { in receive()
868 server->event_time = current_time + sys_timeout; in receive()
879 t10 = server->org; /* pkt.xmt == t1 */ in receive()
907 + (FP_SECOND >> (-(int)server->precision)) + NTP_MAXSKW; in receive()
919 server_data(server, (s_fp) di, &ci, 0); in receive()
921 if ((int)server->filter_nextpt >= sys_samples) { in receive()
926 server->event_time = 0; in receive()
931 server->event_time = current_time + sys_timeout; in receive()
936 * server_data - add a sample to the server's filter registers
940 register struct server *server, in server_data() argument
948 i = server->filter_nextpt; in server_data()
950 server->filter_delay[i] = d; in server_data()
951 server->filter_offset[i] = *c; in server_data()
952 server->filter_soffset[i] = LFPTOFP(c); in server_data()
953 server->filter_error[i] = e; in server_data()
954 server->filter_nextpt = (u_short)(i + 1); in server_data()
960 * clock_filter - determine a server's delay, dispersion and offset
964 register struct server *server in clock_filter() argument
980 if (server->filter_delay[ord[j]] == 0) in clock_filter()
982 if (server->filter_delay[ord[i]] == 0 in clock_filter()
983 || (server->filter_delay[ord[i]] in clock_filter()
984 > server->filter_delay[ord[j]])) { in clock_filter()
999 if (server->filter_delay[ord[0]] == 0) { in clock_filter()
1000 server->delay = 0; in clock_filter()
1001 L_CLR(&server->offset); in clock_filter()
1002 server->soffset = 0; in clock_filter()
1003 server->dispersion = PEER_MAXDISP; in clock_filter()
1007 server->delay = server->filter_delay[ord[0]]; in clock_filter()
1008 server->offset = server->filter_offset[ord[0]]; in clock_filter()
1009 server->soffset = LFPTOFP(&server->offset); in clock_filter()
1010 server->dispersion = 0; in clock_filter()
1012 if (server->filter_delay[ord[i]] == 0) in clock_filter()
1015 d = server->filter_soffset[ord[i]] in clock_filter()
1016 - server->filter_soffset[ord[0]]; in clock_filter()
1025 server->dispersion += (u_fp)(d) >> i; in clock_filter()
1038 static struct server *
1041 struct server *server; in clock_select() local
1050 struct server *server_list[NTP_MAXCLOCK]; in clock_select()
1052 struct server *sys_server; in clock_select()
1064 for (server = sys_servers; server != NULL; server = server->next_server) { in clock_select()
1065 if (server->stratum == 0) { in clock_select()
1067 printf("%s: Server dropped: no data\n", ntoa(&server->srcadr)); in clock_select()
1070 if (server->stratum > NTP_INFIN) { in clock_select()
1072 printf("%s: Server dropped: strata too high\n", ntoa(&server->srcadr)); in clock_select()
1075 if (server->delay > NTP_MAXWGT) { in clock_select()
1077 printf("%s: Server dropped: server too far away\n", in clock_select()
1078 ntoa(&server->srcadr)); in clock_select()
1081 if (server->leap == LEAP_NOTINSYNC) { in clock_select()
1083 printf("%s: Server dropped: leap not in sync\n", ntoa(&server->srcadr)); in clock_select()
1086 if (!L_ISHIS(&server->org, &server->reftime)) { in clock_select()
1088 printf("%s: Server dropped: server is very broken\n", in clock_select()
1089 ntoa(&server->srcadr)); in clock_select()
1092 if ((server->org.l_ui - server->reftime.l_ui) in clock_select()
1095 printf("%s: Server dropped: server has gone too long without sync\n", in clock_select()
1096 ntoa(&server->srcadr)); in clock_select()
1099 if (server->trust != 0) { in clock_select()
1101 printf("%s: Server dropped: Server is untrusted\n", in clock_select()
1102 ntoa(&server->srcadr)); in clock_select()
1110 d = server->dispersion + server->dispersion; in clock_select()
1112 if (server->stratum <= server_list[i]->stratum) in clock_select()
1115 if (server->stratum < server_list[i]->stratum) in clock_select()
1134 server_list[i] = server; in clock_select()
1168 * server.delay. in clock_select()
1179 server = server_list[i]; in clock_select()
1181 server_list[j] = server; in clock_select()
1229 * i is the index of the server with the worst in clock_select()
1250 * That's it. Return our server. in clock_select()
1263 register struct server *sp, *server; in clock_adjust() local
1268 server = clock_select(); in clock_adjust()
1277 if (server == 0) { in clock_adjust()
1279 "no server suitable for synchronization found"); in clock_adjust()
1292 if (server->soffset < 0) in clock_adjust()
1293 absoffset = 1u + (u_fp)(-(server->soffset + 1)); in clock_adjust()
1295 absoffset = (u_fp)server->soffset; in clock_adjust()
1300 if (simple_query || l_step_systime(&server->offset)){ in clock_adjust()
1301 msyslog(LOG_NOTICE, "step time server %s offset %s sec", in clock_adjust()
1302 stoa(&server->srcadr), in clock_adjust()
1303 lfptoa(&server->offset, 6)); in clock_adjust()
1306 if (simple_query || l_adj_systime(&server->offset)) { in clock_adjust()
1307 msyslog(LOG_NOTICE, "adjust time server %s offset %s sec", in clock_adjust()
1308 stoa(&server->srcadr), in clock_adjust()
1309 lfptoa(&server->offset, 6)); in clock_adjust()
1342 * addserver - determine a server's address and allocate a new structure
1350 register struct server *server; in addserver() local
1381 /* Name server is unusable. Exit after failing on the in addserver()
1382 first server, in order to shorten the timeout caused in addserver()
1384 fprintf(stderr, "Exiting, name server cannot be used: %s (%d)", in addserver()
1386 msyslog(LOG_ERR, "name server cannot be used: %s (%d)", in addserver()
1405 /* We must get all returned server in case the first one fails */ in addserver()
1411 server = emalloc_zero(sizeof(*server)); in addserver()
1412 memcpy(&server->srcadr, ptr->ai_addr, ptr->ai_addrlen); in addserver()
1413 server->event_time = ++sys_numservers; in addserver()
1415 sys_servers = server; in addserver()
1417 struct server *sp; in addserver()
1422 sp->next_server = server; in addserver()
1432 * findserver - find a server in the list given its address
1435 static struct server *
1440 struct server *server; in findserver() local
1441 struct server *mc_server; in findserver()
1447 for (server = sys_servers; server != NULL; in findserver()
1448 server = server->next_server) { in findserver()
1449 if (SOCK_EQ(addr, &server->srcadr)) in findserver()
1450 return server; in findserver()
1452 if (AF(addr) == AF(&server->srcadr)) { in findserver()
1453 if (IS_MCAST(&server->srcadr)) in findserver()
1454 mc_server = server; in findserver()
1460 struct server *sp; in findserver()
1467 server = emalloc_zero(sizeof(*server)); in findserver()
1469 server->srcadr = *addr; in findserver()
1471 server->event_time = ++sys_numservers; in findserver()
1476 sp->next_server = server; in findserver()
1477 transmit(server); in findserver()
1489 struct server *server; in timer() local
1497 * Search through the server list looking for guys in timer()
1501 for (server = sys_servers; server != NULL; in timer()
1502 server = server->next_server) { in timer()
1503 if (server->event_time != 0 in timer()
1504 && server->event_time <= current_time) in timer()
1505 transmit(server); in timer()
1860 /* Find a local family compatible socket to send ntp packet to ntp server */ in sendpkt()
2145 * print_server - print detail information for a server
2149 register struct server *pp, in print_server()
2161 (void) fprintf(fp, "server %s, stratum %d, offset %s, delay %s\n", in print_server()
2167 (void) fprintf(fp, "server %s, port %d\n", in print_server()
2239 /* Find a time server in NetInfo */ in getnetinfoservers()
2251 if (ni_lookupprop(domain, &confdir, "server", namelist) != NI_OK) { in getnetinfoservers()