亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? refclock_arc.c

?? 網絡時間協議NTP 源碼 版本v4.2.0b 該源碼用于linux平臺下
?? C
?? 第 1 頁 / 共 4 頁
字號:
	   (pp->day < 1) || (pp->day > 31) ||	   (month < 1) || (month > 12) ||	   (pp->year < 0) || (pp->year > 99)) {		/* Data out of range. */		pp->lencode = 0;		refclock_report(peer, CEVNT_BADREPLY);		return;	}	if(peer->MODE == 0) { /* compatiblity to original version */		int bst = flags;		/* Check that BST/UTC bits are the complement of one another. */		if(!(bst & 2) == !(bst & 4)) {			pp->lencode = 0;			refclock_report(peer, CEVNT_BADREPLY);			return;		}	}	if(status & 0x8) { msyslog(LOG_NOTICE, "ARCRON: battery low"); }	/* Year-2000 alert! */	/* Attempt to wrap 2-digit date into sensible window. */	if(pp->year < YEAR_PIVOT) { pp->year += 100; }		/* Y2KFixes */	pp->year += 1900;	/* use full four-digit year */	/* Y2KFixes */	/*	  Attempt to do the right thing by screaming that the code will	  soon break when we get to the end of its useful life.  What a	  hero I am...  PLEASE FIX LEAP-YEAR AND WRAP CODE IN 209X!	*/	if(pp->year >= YEAR_PIVOT+2000-2 ) {  			/* Y2KFixes */		/*This should get attention B^> */		msyslog(LOG_NOTICE,		       "ARCRON: fix me!  EITHER YOUR DATE IS BADLY WRONG or else I will break soon!");	}#ifdef DEBUG	if(debug) {		printf("arc: n=%d %02d:%02d:%02d %02d/%02d/%04d %1d %1d\n",		       n,		       pp->hour, pp->minute, pp->second,		       pp->day, month, pp->year, flags, status);	}#endif	/*	  The status value tested for is not strictly supported by the	  clock spec since the value of bit 2 (0x4) is claimed to be	  undefined for MSF, yet does seem to indicate if the last resync	  was successful or not.	*/	pp->leap = LEAP_NOWARNING;	status &= 0x7;	if(status == 0x3) {		if(status != up->status)		{ msyslog(LOG_NOTICE, "ARCRON: signal acquired"); }	} else {		if(status != up->status) {			msyslog(LOG_NOTICE, "ARCRON: signal lost");			pp->leap = LEAP_NOTINSYNC; /* MSF clock is free-running. */			up->status = status;			pp->lencode = 0;			refclock_report(peer, CEVNT_FAULT);			return;		}	}	up->status = status;	if (peer->MODE == 0) { /* compatiblity to original version */		int bst = flags;		pp->day += moff[month - 1];		if(isleap_4(pp->year) && month > 2) { pp->day++; }/* Y2KFixes */		/* Convert to UTC if required */		if(bst & 2) {			pp->hour--;			if (pp->hour < 0) {				pp->hour = 23;				pp->day--;				/* If we try to wrap round the year				 * (BST on 1st Jan), reject.*/				if(pp->day < 0) {					pp->lencode = 0;					refclock_report(peer, CEVNT_BADTIME);					return;				}			}		}	}	if(peer->MODE > 0) {		if(pp->sloppyclockflag & CLK_FLAG1) {			struct tm  local;		        struct tm *gmtp;		        time_t     unixtime;		        /*		         * Convert to GMT for sites that distribute localtime.			 * This means we have to do Y2K conversion on the			 * 2-digit year; otherwise, we get the time wrong.	        	 */	   			local.tm_year  = pp->year-1900;	     	  	local.tm_mon   = month-1;	      	  	local.tm_mday  = pp->day;	        	local.tm_hour  = pp->hour;	        	local.tm_min   = pp->minute;	        	local.tm_sec   = pp->second;	        	switch (peer->MODE) {			    case 1:				local.tm_isdst = (flags & 2);				break;			    case 2:			        local.tm_isdst = (flags & 2);				break;			    case 3:				switch (flags & 3) {				    case 0: /* It is unclear exactly when the 				    	       Arcron changes from DST->ST and 					       ST->DST. Testing has shown this					       to be irregular. For the time 					       being, let the OS decide. */				        local.tm_isdst = 0;#ifdef DEBUG					if (debug)					    printf ("arc: DST = 00 (0)\n"); #endif					break;				    case 1: /* dst->st time */				        local.tm_isdst = -1;#ifdef DEBUG					if (debug) 					    printf ("arc: DST = 01 (1)\n"); #endif					break;				    case 2: /* st->dst time */				        local.tm_isdst = -1;#ifdef DEBUG					if (debug) 					    printf ("arc: DST = 10 (2)\n"); #endif					break;				    case 3: /* dst time */				        local.tm_isdst = 1;#ifdef DEBUG					if (debug) 					    printf ("arc: DST = 11 (3)\n"); #endif					break;				}				break;			    default:				msyslog(LOG_NOTICE, "ARCRON: Invalid mode %d",		      			peer->MODE);				return;				break;			}	        	unixtime = mktime (&local);	        	if ((gmtp = gmtime (&unixtime)) == NULL)	        	{				pp->lencode = 0;			        refclock_report (peer, CEVNT_FAULT);			        return;	        	}			pp->year = gmtp->tm_year+1900;	        	month = gmtp->tm_mon+1;		    	pp->day = ymd2yd(pp->year,month,gmtp->tm_mday);	       	 	/* pp->day = gmtp->tm_yday; */	        	pp->hour = gmtp->tm_hour;	        	pp->minute = gmtp->tm_min;	        	pp->second = gmtp->tm_sec;#ifdef DEBUG	        	if (debug)			{				printf ("arc: time is %04d/%02d/%02d %02d:%02d:%02d UTC\n",					pp->year,month,gmtp->tm_mday,pp->hour,pp->minute,					pp->second);			}#endif		} else 		{		    	/*		     	* For more rational sites distributing UTC		     	*/		    	pp->day    = ymd2yd(pp->year,month,pp->day);		}	}	if (peer->MODE == 0) { /* compatiblity to original version */				/* If clock signal quality is 				 * unknown, revert to default PRECISION...*/		if(up->quality == QUALITY_UNKNOWN) { 			peer->precision = PRECISION; 		} else { /* ...else improve precision if flag3 is set... */			peer->precision = ((pp->sloppyclockflag & CLK_FLAG3) ?					   HIGHPRECISION : PRECISION);		}	} else {		if ((status == 0x3) && (pp->sloppyclockflag & CLK_FLAG2)) {			peer->precision = ((pp->sloppyclockflag & CLK_FLAG3) ?					   HIGHPRECISION : PRECISION);		} else if (up->quality == QUALITY_UNKNOWN) {			peer->precision = PRECISION;		} else {			peer->precision = ((pp->sloppyclockflag & CLK_FLAG3) ?					   HIGHPRECISION : PRECISION);		}	}	/* Notice and log any change (eg from initial defaults) for flags. */	if(up->saved_flags != pp->sloppyclockflag) {#ifdef DEBUG		msyslog(LOG_NOTICE, "ARCRON: flags enabled: %s%s%s%s",		       ((pp->sloppyclockflag & CLK_FLAG1) ? "1" : "."),		       ((pp->sloppyclockflag & CLK_FLAG2) ? "2" : "."),		       ((pp->sloppyclockflag & CLK_FLAG3) ? "3" : "."),		       ((pp->sloppyclockflag & CLK_FLAG4) ? "4" : "."));		/* Note effects of flags changing... */		if(debug) {			printf("arc: PRECISION = %d.\n", peer->precision);		}#endif		up->saved_flags = pp->sloppyclockflag;	}	/* Note time of last believable timestamp. */	pp->lastrec = up->lastrec;#ifdef ARCRON_LEAPSECOND_KEEN	/* Find out if a leap-second might just have happened...	   (ie is this the first hour of the first day of Jan or Jul?)	*/	if((pp->hour == 0) &&	   (pp->day == 1) &&	   ((month == 1) || (month == 7))) {		if(possible_leap >= 0) {			/* A leap may have happened, and no resync has started yet...*/			possible_leap = 1;		}	} else {		/* Definitely not leap-second territory... */		possible_leap = 0;	}#endif	if (!refclock_process(pp)) {		pp->lencode = 0;		refclock_report(peer, CEVNT_BADTIME);		return;	}	record_clock_stats(&peer->srcadr, pp->a_lastcode);	refclock_receive(peer);}/* request_time() sends a time request to the clock with given peer. *//* This automatically reports a fault if necessary. *//* No data should be sent after this until arc_poll() returns. */static  void    request_time    P((int, struct peer *));static voidrequest_time(	int unit,	struct peer *peer	){	struct refclockproc *pp = peer->procptr;	register struct arcunit *up = (struct arcunit *)pp->unitptr;#ifdef DEBUG	if(debug) { printf("arc: unit %d: requesting time.\n", unit); }#endif	if (!send_slow(up, pp->io.fd, "o\r")) {#ifdef DEBUG		if (debug) {			printf("arc: unit %d: problem sending", unit);		}#endif		pp->lencode = 0;		refclock_report(peer, CEVNT_FAULT);		return;	}	pp->polls++;}/* * arc_poll - called by the transmit procedure */static voidarc_poll(	int unit,	struct peer *peer	){	register struct arcunit *up;	struct refclockproc *pp;	int resync_needed;              /* Should we start a resync? */	pp = peer->procptr;	up = (struct arcunit *)pp->unitptr;#if 0	pp->lencode = 0;	memset(pp->a_lastcode, 0, sizeof(pp->a_lastcode));#endif#if 0	/* Flush input. */	tcflush(pp->io.fd, TCIFLUSH);#endif	/* Resync if our next scheduled resync time is here or has passed. */	resync_needed = ( !(pp->sloppyclockflag & CLK_FLAG2) &&			  (up->next_resync <= current_time) );#ifdef ARCRON_LEAPSECOND_KEEN	/*	  Try to catch a potential leap-second insertion or deletion quickly.	  In addition to the normal NTP fun of clocks that don't report	  leap-seconds spooking their hosts, this clock does not even	  sample the radio sugnal the whole time, so may miss a	  leap-second insertion or deletion for up to a whole sample	  time.	  To try to minimise this effect, if in the first few minutes of	  the day immediately following a leap-second-insertion point	  (ie in the first hour of the first day of the first and sixth	  months), and if the last resync was in the previous day, and a	  resync is not already in progress, resync the clock	  immediately.	*/	if((possible_leap > 0) &&       /* Must be 00:XX 01/0{1,7}/XXXX. */	   (!up->resyncing)) {          /* No resync in progress yet. */		resync_needed = 1;		possible_leap = -1;          /* Prevent multiple resyncs. */		msyslog(LOG_NOTICE,"ARCRON: unit %d: checking for leap second",unit);	}#endif	/* Do a resync if required... */	if(resync_needed) {		/* First, reset quality value to `unknown' so we can detect */		/* when a quality message has been responded to by this     */		/* being set to some other value.                           */		up->quality = QUALITY_UNKNOWN;		/* Note that we are resyncing... */		up->resyncing = 1;		/* Now actually send the resync command and an immediate poll. */#ifdef DEBUG		if(debug) { printf("arc: sending resync command (h\\r).\n"); }#endif		msyslog(LOG_NOTICE, "ARCRON: unit %d: sending resync command", unit);		send_slow(up, pp->io.fd, "h\r");		/* Schedule our next resync... */		up->next_resync = current_time + DEFAULT_RESYNC_TIME;		/* Drop through to request time if appropriate. */	}	/* If clock quality is too poor to trust, indicate a fault. */	/* If quality is QUALITY_UNKNOWN and ARCRON_KEEN is defined,*/	/* we'll cross our fingers and just hope that the thing     */	/* synced so quickly we did not catch it---we'll            */	/* double-check the clock is OK elsewhere.                  */	if(#ifdef ARCRON_KEEN		(up->quality != QUALITY_UNKNOWN) &&#else		(up->quality == QUALITY_UNKNOWN) ||#endif		(up->quality < MIN_CLOCK_QUALITY_OK)) {#ifdef DEBUG		if(debug) {			printf("arc: clock quality %d too poor.\n", up->quality);		}#endif		pp->lencode = 0;		refclock_report(peer, CEVNT_FAULT);		return;	}	/* This is the normal case: request a timestamp. */	request_time(unit, peer);}#elseint refclock_arc_bs;#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品粉嫩超白一线天av| 美女任你摸久久| 久久综合久久久久88| 777xxx欧美| 91精品久久久久久久99蜜桃| 欧美日韩国产综合一区二区三区| 色老头久久综合| 欧美三级中文字| 欧美精品久久一区| 欧美一区二区精品在线| 日韩女优制服丝袜电影| 久久综合久久鬼色| 欧美韩日一区二区三区| 综合激情成人伊人| 一区二区三区中文免费| 午夜精品久久久久久不卡8050| 亚洲国产成人av| 久久国产麻豆精品| 成人午夜又粗又硬又大| 91在线观看污| 91精品国产欧美一区二区| 日韩欧美一区二区久久婷婷| 久久精子c满五个校花| 国产精品传媒入口麻豆| 亚洲成人动漫在线免费观看| 日本欧美久久久久免费播放网| 国产乱人伦精品一区二区在线观看 | 欧美精品一区二区三区很污很色的| 久久一夜天堂av一区二区三区| 国产精品美女视频| 丝袜诱惑亚洲看片| 国产精品一区二区你懂的| 99视频热这里只有精品免费| 久久久久国产精品麻豆 | 亚洲第一av色| 青青草国产成人av片免费| 国产盗摄一区二区三区| 欧美伊人久久久久久久久影院| 日韩欧美一区中文| 亚洲女人****多毛耸耸8| 美国一区二区三区在线播放| 99精品久久久久久| 久久久久一区二区三区四区| 国产精品久久久久影视| 蜜臀久久99精品久久久画质超高清| 国产不卡视频一区二区三区| 欧美日韩免费电影| 中文字幕一区免费在线观看| 日本欧美加勒比视频| 91视频.com| 国产日产欧产精品推荐色| 日本亚洲最大的色成网站www| 99re6这里只有精品视频在线观看| 日韩一区二区三区免费观看| 亚洲美女少妇撒尿| 成人综合日日夜夜| 精品国产sm最大网站免费看| 天天影视网天天综合色在线播放| a4yy欧美一区二区三区| 久久精品亚洲一区二区三区浴池| 亚洲成人精品在线观看| 色爱区综合激月婷婷| 中文字幕一区二区三区在线观看| 极品少妇xxxx精品少妇| 日韩一区二区三区视频| 亚洲成人一区在线| 欧美日韩你懂的| 亚洲国产日日夜夜| 日本高清不卡视频| 一区二区日韩电影| 在线观看91视频| 夜夜爽夜夜爽精品视频| 91免费版pro下载短视频| 亚洲欧洲成人精品av97| 99久久精品国产毛片| 国产精品电影院| 色综合视频在线观看| 亚洲精品视频免费看| 色综合色综合色综合| 有码一区二区三区| 欧美午夜一区二区三区免费大片| 有坂深雪av一区二区精品| 91福利在线看| 日韩电影在线免费| 久久综合久久综合久久综合| 国产乱码精品一品二品| 欧美国产日韩精品免费观看| 成人成人成人在线视频| 亚洲精品免费一二三区| 欧美性大战久久久| 奇米亚洲午夜久久精品| 精品国产99国产精品| 东方欧美亚洲色图在线| 中文字幕亚洲一区二区av在线| 色呦呦日韩精品| 亚洲国产精品一区二区尤物区| 91麻豆精品国产自产在线 | 亚洲综合在线免费观看| 7777精品久久久大香线蕉| 久久精品99国产精品| 国产欧美精品日韩区二区麻豆天美 | 人人超碰91尤物精品国产| 欧美成人精品3d动漫h| 国产成人精品www牛牛影视| 97久久精品人人做人人爽| 久久综合网色—综合色88| 亚洲欧美在线视频| 国产v综合v亚洲欧| 这里只有精品99re| 麻豆一区二区三| 久久精品一区四区| 日本久久一区二区| 黄色日韩三级电影| 亚洲精品大片www| 日韩精品一区二区三区在线观看| 成人黄色小视频| 免费精品99久久国产综合精品| 日本一二三四高清不卡| 宅男在线国产精品| 99久久免费视频.com| 久久99精品久久只有精品| 一区二区三区毛片| 中文字幕+乱码+中文字幕一区| 欧美视频一二三区| 国产 日韩 欧美大片| 免费三级欧美电影| 91农村精品一区二区在线| 国模冰冰炮一区二区| 亚洲五码中文字幕| 国产精品视频你懂的| 日韩欧美国产高清| 欧美艳星brazzers| 成人动漫一区二区| 国产精品18久久久| 午夜免费久久看| 亚洲日韩欧美一区二区在线| 久久久亚洲午夜电影| 7878成人国产在线观看| 在线视频国内一区二区| 成人午夜激情在线| 国产在线精品视频| 久久99精品国产麻豆婷婷 | 国产一区在线看| 麻豆精品在线视频| 日本三级亚洲精品| 首页亚洲欧美制服丝腿| 亚洲国产成人av网| 亚洲一二三专区| 夜夜爽夜夜爽精品视频| 亚洲另类春色校园小说| 自拍视频在线观看一区二区| 国产精品的网站| 国产精品久久久一本精品| 国产精品欧美一区二区三区| 国产日韩亚洲欧美综合| 欧美国产一区二区| 国产精品私人影院| 日韩美女啊v在线免费观看| 自拍偷拍欧美激情| 亚洲激情一二三区| 性做久久久久久久久| 午夜精品久久久久久久99樱桃| 亚洲第一福利视频在线| 免播放器亚洲一区| 国产一区二区三区四区五区美女 | 亚洲国产精华液网站w| 国产亚洲精品7777| 自拍偷拍国产精品| 亚洲r级在线视频| 麻豆91小视频| 国产·精品毛片| 91丝袜高跟美女视频| 欧美性一二三区| 欧美r级在线观看| 中文一区在线播放| 亚洲一区二区三区三| 蜜臀va亚洲va欧美va天堂| 国产不卡高清在线观看视频| 97久久精品人人做人人爽| 欧美日韩精品三区| 精品国产髙清在线看国产毛片| 国产视频一区二区在线| 亚洲精品视频自拍| 人人爽香蕉精品| 99精品国产99久久久久久白柏 | 麻豆国产精品视频| 国产成人精品亚洲午夜麻豆| 色综合天天做天天爱| 欧美一级在线观看| 日韩毛片精品高清免费| 奇米777欧美一区二区| 成人18视频日本| 日韩一级片在线观看| 亚洲女人****多毛耸耸8| 久久精品国产99久久6| 91豆麻精品91久久久久久| 久久精品夜色噜噜亚洲a∨| 亚洲综合色婷婷| 懂色av噜噜一区二区三区av| 欧美精品日韩一本|