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

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

?? otime.h

?? OpenVPN is a robust and highly flexible tunneling application that uses all of the encryption, authe
?? H
字號:
/* *  OpenVPN -- An application to securely tunnel IP networks *             over a single TCP/UDP port, with support for SSL/TLS-based *             session authentication and key exchange, *             packet encryption, packet authentication, and *             packet compression. * *  Copyright (C) 2002-2004 James Yonan <jim@yonan.net> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program (see the file COPYING included with this *  distribution); if not, write to the Free Software Foundation, Inc., *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//* * The interval_ routines are designed to optimize the calling of a routine * (normally tls_multi_process()) which can be called less frequently * between triggers. */#ifndef OTIME_H#define OTIME_H#include "common.h"#include "integer.h"#include "buffer.h"#include "thread.h"struct frequency_limit{  int max;  int per;  int n;  time_t reset;};struct frequency_limit *frequency_limit_init (int max, int per);void frequency_limit_free (struct frequency_limit *f);bool frequency_limit_event_allowed (struct frequency_limit *f);#ifdef WIN32int gettimeofday(struct timeval *tv, void *tz);#endif/* format a time_t as ascii, or use current time if 0 */const char* time_string (time_t t, int usec, bool show_usec, struct gc_arena *gc);/* struct timeval functions */const char *tv_string (const struct timeval *tv, struct gc_arena *gc);const char *tv_string_abs (const struct timeval *tv, struct gc_arena *gc);extern volatile time_t now; /* updated frequently to time(NULL) */static inline voidupdate_time (void){  const time_t real_time = time (NULL);  if (real_time != now)    now = real_time;}static inline voidtv_clear (struct timeval *tv){  tv->tv_sec = 0;  tv->tv_usec = 0;}static inline booltv_defined (const struct timeval *tv){  return tv->tv_sec > 0 && tv->tv_usec > 0;}/* return tv1 - tv2 in usec, constrained by max_seconds */static inline inttv_subtract (const struct timeval *tv1, const struct timeval *tv2, const unsigned int max_seconds){  const int max_usec = max_seconds * 1000000;  const int sec_diff = tv1->tv_sec - tv2->tv_sec;  if (sec_diff > ((int)max_seconds + 10))    return max_usec;  else if (sec_diff < -((int)max_seconds + 10))    return -max_usec;  return constrain_int (sec_diff * 1000000 + (tv1->tv_usec - tv2->tv_usec), -max_usec, max_usec);}static inline voidtv_add (struct timeval *dest, const struct timeval *src){  dest->tv_sec += src->tv_sec;  dest->tv_usec += src->tv_usec;  dest->tv_sec += (dest->tv_usec >> 20);  dest->tv_usec &= 0x000FFFFF;  if (dest->tv_usec >= 1000000)    {      dest->tv_usec -= 1000000;      dest->tv_sec += 1;    } }static inline booltv_lt (const struct timeval *t1, const struct timeval *t2){  if (t1->tv_sec < t2->tv_sec)    return true;  else if (t1->tv_sec > t2->tv_sec)    return false;  else    return t1->tv_usec < t2->tv_usec;}static inline booltv_le (const struct timeval *t1, const struct timeval *t2){  if (t1->tv_sec < t2->tv_sec)    return true;  else if (t1->tv_sec > t2->tv_sec)    return false;  else    return t1->tv_usec <= t2->tv_usec;}static inline booltv_ge (const struct timeval *t1, const struct timeval *t2){  if (t1->tv_sec > t2->tv_sec)    return true;  else if (t1->tv_sec < t2->tv_sec)    return false;  else    return t1->tv_usec >= t2->tv_usec;}static inline booltv_gt (const struct timeval *t1, const struct timeval *t2){  if (t1->tv_sec > t2->tv_sec)    return true;  else if (t1->tv_sec < t2->tv_sec)    return false;  else    return t1->tv_usec > t2->tv_usec;}static inline booltv_eq (const struct timeval *t1, const struct timeval *t2){  return t1->tv_sec == t2->tv_sec && t1->tv_usec == t2->tv_usec;}static inline voidtv_delta (struct timeval *dest, const struct timeval *t1, const struct timeval *t2){  int sec = t2->tv_sec - t1->tv_sec;  int usec = t2->tv_usec - t1->tv_usec;  while (usec < 0)    {      usec += 1000000;      sec -= 1;    }  if (sec < 0)    usec = sec = 0;  dest->tv_sec = sec;  dest->tv_usec = usec;}#define TV_WITHIN_SIGMA_MAX_SEC 600#define TV_WITHIN_SIGMA_MAX_USEC (TV_WITHIN_SIGMA_MAX_SEC * 1000000)/* * Is t1 and t2 within sigma microseconds of each other? */static inline booltv_within_sigma (const struct timeval *t1, const struct timeval *t2, unsigned int sigma){  const int delta = tv_subtract (t1, t2, TV_WITHIN_SIGMA_MAX_SEC); /* sigma should be less than 10 minutes */  return -(int)sigma <= delta && delta <= (int)sigma;}/* * Used to determine in how many seconds we should be * called again. */static inline voidinterval_earliest_wakeup (interval_t *wakeup, time_t at, time_t current) {  if (at > current)    {      const interval_t delta = (interval_t) (at - current);      if (delta < *wakeup)	*wakeup = delta;      if (*wakeup < 0)	*wakeup = 0;    }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡一区| 97se亚洲国产综合在线| 亚洲午夜电影在线观看| 亚洲人成伊人成综合网小说| 国产精品乱人伦中文| 中日韩av电影| 尤物av一区二区| 一区2区3区在线看| 成人黄色777网| 久久青草欧美一区二区三区| 在线播放亚洲一区| 日韩视频免费观看高清完整版| 在线成人av影院| 欧美大胆人体bbbb| 久久久精品一品道一区| 国产精品天美传媒沈樵| 亚洲免费观看在线视频| 亚洲国产日韩在线一区模特| 奇米综合一区二区三区精品视频| 免费在线观看成人| 国产乱子伦视频一区二区三区| 国产激情91久久精品导航| jlzzjlzz欧美大全| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩精品欧美日韩精品| 欧美电影免费观看高清完整版在线| 久久久夜色精品亚洲| 亚洲色图欧洲色图婷婷| 亚洲色图视频免费播放| 免费看欧美美女黄的网站| 日韩av中文字幕一区二区| 另类综合日韩欧美亚洲| 国产精品亚洲一区二区三区妖精| 国产成人免费视频网站| 91成人免费在线| 欧美精品一区二区三区蜜臀| 一区二区欧美视频| 国产真实精品久久二三区| eeuss鲁片一区二区三区在线看| 欧美日韩精品一区二区三区| 国产日韩精品一区二区三区在线| 樱花草国产18久久久久| 91最新地址在线播放| 日韩一区二区在线观看| 欧美亚洲一区二区在线观看| 午夜精品影院在线观看| 精品一区二区三区免费播放 | 懂色av一区二区三区蜜臀| 色悠悠久久综合| wwwwxxxxx欧美| 日韩高清一级片| 91麻豆文化传媒在线观看| ww久久中文字幕| 天使萌一区二区三区免费观看| 粉嫩蜜臀av国产精品网站| 精品少妇一区二区| 亚洲va欧美va国产va天堂影院| 成人app下载| 国产午夜亚洲精品理论片色戒 | 国产剧情av麻豆香蕉精品| 欧美色图激情小说| 亚洲三级在线播放| 高清不卡一区二区| 精品久久久久久久一区二区蜜臀| 午夜国产精品一区| 在线视频国产一区| 综合久久久久久久| 成人午夜av在线| 久久精品在这里| 国产一区二区中文字幕| 欧美一级艳片视频免费观看| 亚洲成人先锋电影| 欧美在线999| 一级精品视频在线观看宜春院| 99re热这里只有精品免费视频| 国产精品少妇自拍| 成人国产精品免费网站| 欧美高清在线视频| 成人激情校园春色| 日韩毛片精品高清免费| 日韩精品一区二区三区在线| 久久国产精品99精品国产| 日韩视频永久免费| 久久99精品久久只有精品| 精品国精品国产| 精品一区二区三区影院在线午夜 | 国产在线不卡一区| 久久噜噜亚洲综合| 成人av在线资源网| 一区二区三区成人在线视频| 欧美日韩一二三| 极品尤物av久久免费看| 久久九九久久九九| 色哟哟一区二区三区| 日韩国产在线一| 久久影视一区二区| av在线播放一区二区三区| 亚洲小说春色综合另类电影| 日韩三级中文字幕| 波多野结衣一区二区三区| 亚洲制服丝袜av| 精品久久一区二区| 日韩免费看网站| 国产精品一区专区| 亚洲激情综合网| 亚洲欧美日韩精品久久久久| 国产91丝袜在线18| 亚洲激情在线激情| 日韩精品一区国产麻豆| 99精品视频在线播放观看| 婷婷六月综合亚洲| 中文字幕免费不卡在线| 欧美日本视频在线| 粉嫩嫩av羞羞动漫久久久 | 国模套图日韩精品一区二区| 国产精品久久福利| 欧美一区二区三区在线视频| 国内一区二区在线| 视频一区在线播放| 国产精品你懂的| 欧美电视剧在线看免费| 日本道免费精品一区二区三区| 蜜桃在线一区二区三区| 亚洲美女屁股眼交| 日本一区二区三区免费乱视频 | 天天影视色香欲综合网老头| 国产91丝袜在线18| 日韩有码一区二区三区| 国产精品午夜免费| 日韩精品中文字幕一区 | 午夜天堂影视香蕉久久| 国产人久久人人人人爽| 91精品国产色综合久久不卡蜜臀| 国产91在线看| 国精产品一区一区三区mba视频 | 一区二区三区电影在线播| 国产日韩欧美不卡| 精品欧美乱码久久久久久| 欧美久久久久久久久| 色婷婷精品大视频在线蜜桃视频| 国产精品一卡二| 久久电影国产免费久久电影| 亚洲成人免费av| 亚洲精品免费播放| 国产精品国产馆在线真实露脸| 精品精品国产高清一毛片一天堂| 欧美色视频在线| 在线观看日韩高清av| 一本色道久久加勒比精品| 成人动漫一区二区| 成人精品视频一区二区三区尤物| 国产一区二区三区日韩| 国产精品香蕉一区二区三区| 久久99国产乱子伦精品免费| 青青草成人在线观看| 免费的国产精品| 久久国产精品99精品国产| 久久99久久久久久久久久久| 蜜桃久久久久久| 美女看a上一区| 激情亚洲综合在线| 国产精品99久久久久久宅男| 丁香婷婷综合五月| 在线不卡a资源高清| 欧美电影在哪看比较好| 欧美一级欧美一级在线播放| 日韩手机在线导航| 精品99一区二区| 国产欧美日韩亚州综合 | 免费日韩伦理电影| 精品午夜久久福利影院| 国产精品99久| 99热99精品| 欧美亚洲丝袜传媒另类| 欧美精品久久久久久久多人混战 | 久久先锋影音av鲁色资源| 国产色一区二区| 亚洲精品国产一区二区精华液| 香蕉久久夜色精品国产使用方法| 免费精品视频在线| 成人av免费在线| 欧美日韩国产综合一区二区| 精品国产免费一区二区三区香蕉| 国产目拍亚洲精品99久久精品| 一区二区成人在线观看| 久久国产生活片100| 99久精品国产| 日韩精品一区二区三区老鸭窝| 中文字幕在线不卡一区二区三区| 五月天久久比比资源色| 大桥未久av一区二区三区中文| 色婷婷综合久久久中文字幕| 日韩欧美一级特黄在线播放| 成人欧美一区二区三区黑人麻豆| 奇米影视一区二区三区小说| 色呦呦日韩精品| 欧美国产综合一区二区| 日韩国产精品久久| 色综合天天综合色综合av | 亚洲欧美色一区|