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

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

?? packet_id.h

?? 一個開源的VPN原碼
?? H
字號:
/* *  OpenVPN -- An application to securely tunnel IP networks *             over a single UDP port, with support for TLS-based *             session authentication and key exchange, *             packet encryption, packet authentication, and *             packet compression. * *  Copyright (C) 2002 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 *//* * These routines are designed to catch replay attacks, * where a man-in-the-middle captures packets and then * attempts to replay them back later. */#ifdef USE_CRYPTO#ifndef PACKET_ID_H#define PACKET_ID_H/* * Enables OpenVPN to be compiled in special packet_id test mode. *//*#define PID_TEST*/#include "circ_list.h"#include "buffer.h"#include "error.h"#if 1/* * These are the types that members of * a struct packet_id_net are converted * to for network transmission. */typedef uint32_t packet_id_type;typedef uint32_t net_time_t;/* * In TLS mode, when a packet ID gets to this level, * start thinking about triggering a new * SSL/TLS handshake. */#define PACKET_ID_WRAP_TRIGGER 0xFF000000/* convert a packet_id_type from host to network order */#define htonpid(x) htonl(x)/* convert a packet_id_type from network to host order */#define ntohpid(x) ntohl(x)/* convert a time_t in host order to a net_time_t in network order */#define htontime(x) htonl((net_time_t)x)/* convert a net_time_t in network order to a time_t in host order */#define ntohtime(x) ((time_t)ntohl(x))#else/* * DEBUGGING ONLY. * Make packet_id_type and net_time_t small. */typedef uint8_t packet_id_type;typedef uint16_t net_time_t;#define PACKET_ID_WRAP_TRIGGER 0x80#define htonpid(x) (x)#define ntohpid(x) (x)#define htontime(x) htons((net_time_t)x)#define ntohtime(x) ((time_t)ntohs(x))#endif/* * Printf formats for special types */#define packet_id_format "%u"/* * Maximum allowed backtrack in * sequence number due to packets arriving * out of order. */#define PACKET_BACKTRACK_MAX   1024CIRC_LIST (pkt_id, uint8_t, PACKET_BACKTRACK_MAX);/* * This is the data structure we keep on the receiving side, * to check that no packet-id (i.e. sequence number + optional timestamp) * was received more than once. */struct packet_id_rec{  time_t time;  packet_id_type id;  struct pkt_id id_list;};/* * Keep a record of our current packet-id state * on the sending side. */struct packet_id_send{  packet_id_type id;  time_t time;};/* * Communicate packet-id over the wire. * A short packet-id is just a 32 bit * sequence number.  A long packet-id * includes a timestamp as well. * * Long packet-ids are used as IVs for * CFB/OFB ciphers. * * This data structure is always sent * over the net in network byte order, * by calling htonpid, ntohpid, * htontime, and ntohtime on the * data elements to change them * to and from standard sizes. * * In addition, time is converted to * a net_time_t before sending, * since openvpn always * uses a 32-bit time_t but some * 64 bit platforms use a * 64 bit time_t. */struct packet_id_net{  packet_id_type id;  time_t time; /* converted to net_time_t before transmission */};struct packet_id{  struct packet_id_send send;  struct packet_id_rec rec;};/* should we accept an incoming packet id ? */bool packet_id_test (const struct packet_id_rec *p, const struct packet_id_net *pin);/* change our current state to reflect an accepted packet id */void packet_id_add (struct packet_id_rec *p, const struct packet_id_net *pin);const char* packet_id_net_print(const struct packet_id_net *pin);#ifdef PID_TESTvoid packet_id_interactive_test();#endif/* * Inline functions. */static inline intpacket_id_size (bool long_form){  return sizeof (packet_id_type) + (long_form ? sizeof (net_time_t) : 0);} static inline boolpacket_id_close_to_wrapping (const struct packet_id_send *p){  return p->id >= PACKET_ID_WRAP_TRIGGER;}/* * Allocate an outgoing packet id. * Sequence number ranges from 1 to 2^32-1. * In long_form, a time_t is added as well. */static inline voidpacket_id_alloc_outgoing (struct packet_id_send *p, struct packet_id_net *pin, bool long_form){  if (!p->time)    p->time = time (NULL);  pin->id = ++p->id;  if (!pin->id)    {      ASSERT (long_form);      p->time = time (NULL);      pin->id = p->id = 1;    }  pin->time = p->time;}/* * Read/write a packet ID to/from the buffer.  Short form is sequence number * only.  Long form is sequence number and timestamp. */static inline boolpacket_id_read (struct packet_id_net *pin, struct buffer *buf, bool long_form){  packet_id_type net_id;  net_time_t net_time;  pin->id = 0;  pin->time = 0;  if (!buf_read (buf, &net_id, sizeof (net_id)))    return false;  pin->id = ntohpid (net_id);  if (long_form)    {      if (!buf_read (buf, &net_time, sizeof (net_time)))	return false;      pin->time = ntohtime (net_time);    }  return true;}static inline boolpacket_id_write (const struct packet_id_net *pin, struct buffer *buf, bool long_form, bool prepend){  packet_id_type net_id = htonpid (pin->id);  net_time_t net_time = htontime (pin->time);  if (prepend)    {      if (long_form)	{	  if (!buf_write_prepend (buf, &net_time, sizeof (net_time)))	    return false;	}      if (!buf_write_prepend (buf, &net_id, sizeof (net_id)))	return false;    }  else    {      if (!buf_write (buf, &net_id, sizeof (net_id)))	return false;      if (long_form)	{	  if (!buf_write (buf, &net_time, sizeof (net_time)))	    return false;	}    }  return true;}#endif /* PACKET_ID_H */#endif /* USE_CRYPTO */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩女优电影在线观看| 欧美日韩国产a| 粉嫩欧美一区二区三区高清影视| 视频一区欧美精品| 青青国产91久久久久久| 日韩在线播放一区二区| 麻豆久久久久久| 国产露脸91国语对白| 国产suv精品一区二区三区| 国产福利不卡视频| 91日韩在线专区| 884aa四虎影成人精品一区| 成人h精品动漫一区二区三区| 国产精品影音先锋| 91女人视频在线观看| 在线观看av一区二区| 欧美一区二区在线视频| 国产欧美日韩激情| 午夜影视日本亚洲欧洲精品| 日本不卡视频一二三区| 风间由美中文字幕在线看视频国产欧美| 成人免费毛片片v| 欧美日韩久久久一区| 日本一区二区三区国色天香 | 国产麻豆精品视频| 91在线视频在线| 欧美电视剧免费观看| 精品国产一区二区三区久久久蜜月 | 欧美一级久久久久久久大片| 中文字幕巨乱亚洲| 日本一不卡视频| 欧美视频三区在线播放| 中文字幕成人在线观看| 九九热在线视频观看这里只有精品| 色哟哟国产精品| 国产精品久久久久久妇女6080| 日本成人在线电影网| 欧美日韩国产免费| 亚洲国产精品久久人人爱| 成人午夜激情影院| 久久精品亚洲精品国产欧美kt∨| 日韩精品久久久久久| 欧美日韩国产综合一区二区 | 一区二区三区日本| 色噜噜久久综合| 亚洲女性喷水在线观看一区| 色一区在线观看| 一区二区三区国产精品| 欧美日韩你懂的| 理论片日本一区| 国产亚洲精品超碰| av电影天堂一区二区在线观看| 成人欧美一区二区三区小说| 在线观看免费亚洲| 性欧美疯狂xxxxbbbb| 日韩欧美国产午夜精品| 国产老妇另类xxxxx| 国产精品国产三级国产aⅴ入口| 一本久久a久久免费精品不卡| 亚洲香肠在线观看| 精品99999| 色999日韩国产欧美一区二区| 天天影视网天天综合色在线播放| 91丨porny丨国产入口| 中文字幕一区二区三| 欧美日韩在线综合| 韩日欧美一区二区三区| 国产精品国产自产拍高清av| 制服丝袜亚洲播放| 91网址在线看| 国产精品亚洲视频| 免费久久99精品国产| 亚洲色图制服丝袜| 久久综合狠狠综合| 欧美人妖巨大在线| 色婷婷一区二区| 欧美aaaaa成人免费观看视频| 一区二区三区欧美日韩| 国产视频在线观看一区二区三区 | 亚洲卡通欧美制服中文| 久久久久久亚洲综合影院红桃| 欧美精品1区2区3区| 欧美三级视频在线观看| 九色|91porny| 日韩av一区二| 午夜不卡在线视频| 亚洲午夜精品17c| 亚洲高清免费观看| 肉丝袜脚交视频一区二区| 亚洲福中文字幕伊人影院| 亚洲一区二区三区在线看| 亚洲欧洲99久久| 亚洲午夜久久久久久久久电影院| 亚洲老妇xxxxxx| 亚洲chinese男男1069| 日本亚洲一区二区| 精品一区二区三区在线观看| 蜜臀av一级做a爰片久久| 久久97超碰国产精品超碰| 国产一区二区免费看| 国产精品一区二区久久精品爱涩| 国产高清在线观看免费不卡| 91视频免费看| 91精品久久久久久久91蜜桃| 欧美mv和日韩mv国产网站| 国产亚洲成年网址在线观看| 6080国产精品一区二区| 在线观看av一区| 亚洲精品一线二线三线| 国产午夜精品久久久久久久| 亚洲精品一二三| 激情综合五月婷婷| 91美女在线观看| 久久久久久电影| 视频在线观看一区二区三区| 国产电影精品久久禁18| 欧美军同video69gay| 中文字幕在线观看不卡视频| 亚洲bt欧美bt精品| 99精品视频免费在线观看| 日韩你懂的在线播放| 欧美激情自拍偷拍| 日本美女视频一区二区| 欧美日韩电影在线播放| 中文字幕一区二区在线播放| 久久精品国产**网站演员| 欧美伊人精品成人久久综合97 | 国产91精品露脸国语对白| 99re这里只有精品首页| 久久精品日产第一区二区三区高清版 | 亚洲免费伊人电影| 欧美怡红院视频| 亚洲国产精品久久艾草纯爱| 色婷婷久久久综合中文字幕| 国产精品不卡在线| 成人18精品视频| 亚洲自拍偷拍av| 911国产精品| 久久国产麻豆精品| 久久你懂得1024| a亚洲天堂av| 成人免费在线观看入口| 91在线视频观看| 午夜精品久久久| 精品久久人人做人人爰| 国产成人av电影免费在线观看| 中文字幕在线不卡一区二区三区| 99麻豆久久久国产精品免费| 欧美成人精品福利| 粉嫩av一区二区三区粉嫩| 136国产福利精品导航| 色八戒一区二区三区| 久久99久久久久| ...xxx性欧美| 日韩欧美成人午夜| av成人老司机| 国内精品国产成人| 亚洲美女视频一区| 精品美女被调教视频大全网站| eeuss鲁片一区二区三区| 日韩中文字幕91| 自拍偷拍亚洲综合| 欧美成人一区二区三区在线观看| 一本久道久久综合中文字幕| 蜜臀精品久久久久久蜜臀| 亚洲精品视频一区| 国产精品久久久久一区二区三区| 欧美一区二区女人| 欧美午夜宅男影院| aaa国产一区| 91一区一区三区| 91论坛在线播放| 色综合久久88色综合天天免费| 经典三级一区二区| 九九视频精品免费| 性做久久久久久久免费看| 中文字幕在线不卡国产视频| 国产日韩精品久久久| 久久久.com| 国产精品欧美经典| 亚洲欧美自拍偷拍| 伊人开心综合网| 亚洲国产一区二区三区| 一区二区三区四区国产精品| 夜夜精品视频一区二区| 一区二区三区精品视频| 一区二区三区免费| 午夜a成v人精品| 精品午夜一区二区三区在线观看| 激情都市一区二区| 成人av资源站| 欧美色综合久久| 亚洲精品一区二区三区蜜桃下载| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲人吸女人奶水| 亚洲一二三四区不卡| 久久国产精品99久久人人澡| 99精品热视频| 欧美精品18+| 国产精品天干天干在线综合|