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

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

?? stun.h

?? ORTP開源的rtp庫
?? H
字號:
 /*  The oRTP library is an RTP (Realtime Transport Protocol - rfc3550) stack.  Copyright (C) 2001  Simon MORLAT simon.morlat@linphone.org  This library is free software; you can redistribute it and/or  modify it under the terms of the GNU Lesser General Public  License as published by the Free Software Foundation; either  version 2.1 of the License, or (at your option) any later version.  This library 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  Lesser General Public License for more details.  You should have received a copy of the GNU Lesser General Public  License along with this library; if not, write to the Free Software  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//* ==================================================================== * The Vovida Software License, Version 1.0  *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. * */#ifndef __STUN_H__#define __STUN_H__#include <stdio.h>#include <time.h>#include <ortp/stun_udp.h>/* if you change this version, change in makefile too  */#define STUN_VERSION "0.94"#define STUN_MAX_STRING 256#define STUN_MAX_UNKNOWN_ATTRIBUTES 8#define STUN_MAX_MESSAGE_SIZE 2048#define STUN_PORT 3478/* define some basic types */typedef unsigned char  UInt8;typedef unsigned short UInt16;typedef unsigned int   UInt32;#if defined( WIN32 )typedef unsigned __int64 UInt64;#elsetypedef unsigned long long UInt64;#endiftypedef struct { unsigned char octet[16]; }  UInt128;/* define a structure to hold a stun address  */#define  IPv4Family  0x01#define  IPv6Family  0x02/* define  flags  */#define ChangeIpFlag    0x04#define ChangePortFlag  0x02/* define  stun attribute */#define MappedAddress     0x0001#define ResponseAddress   0x0002#define ChangeRequest     0x0003#define SourceAddress     0x0004#define ChangedAddress    0x0005#define Username          0x0006#define Password          0x0007#define MessageIntegrity  0x0008#define ErrorCode         0x0009#define UnknownAttribute  0x000A#define ReflectedFrom     0x000B#define XorMappedAddress  0x0020#define XorOnly           0x0021#define ServerName        0x0022#define SecondaryAddress  0x0050 /* Non standard extention *//* define types for a stun message */#define BindRequestMsg                0x0001#define BindResponseMsg               0x0101#define BindErrorResponseMsg          0x0111#define SharedSecretRequestMsg        0x0002#define SharedSecretResponseMsg       0x0102#define SharedSecretErrorResponseMsg  0x0112typedef struct {      UInt16 msgType;      UInt16 msgLength;      UInt128 id;} StunMsgHdr;typedef struct{      UInt16 type;      UInt16 length;} StunAtrHdr;typedef struct{      UInt16 port;      UInt32 addr;} StunAddress4;typedef struct{      UInt8 pad;      UInt8 family;      StunAddress4 ipv4;} StunAtrAddress4;typedef struct{      UInt32 value;} StunAtrChangeRequest;typedef struct{      UInt16 pad; /* all 0 */      UInt8 errorClass;      UInt8 number;      char reason[STUN_MAX_STRING];      UInt16 sizeReason;} StunAtrError;typedef struct{      UInt16 attrType[STUN_MAX_UNKNOWN_ATTRIBUTES];      UInt16 numAttributes;} StunAtrUnknown;typedef struct{      char value[STUN_MAX_STRING];            UInt16 sizeValue;} StunAtrString;typedef struct{      char hash[20];} StunAtrIntegrity;typedef enum {   HmacUnkown=0,   HmacOK,   HmacBadUserName,   HmacUnkownUserName,   HmacFailed} StunHmacStatus;typedef struct{      StunMsgHdr msgHdr;	      bool hasMappedAddress;      StunAtrAddress4  mappedAddress;	      bool hasResponseAddress;      StunAtrAddress4  responseAddress;	      bool hasChangeRequest;      StunAtrChangeRequest changeRequest;	      bool hasSourceAddress;      StunAtrAddress4 sourceAddress;	      bool hasChangedAddress;      StunAtrAddress4 changedAddress;	      bool hasUsername;      StunAtrString username;	      bool hasPassword;      StunAtrString password;	      bool hasMessageIntegrity;      StunAtrIntegrity messageIntegrity;	      bool hasErrorCode;      StunAtrError errorCode;	      bool hasUnknownAttributes;      StunAtrUnknown unknownAttributes;	      bool hasReflectedFrom;      StunAtrAddress4 reflectedFrom;      bool hasXorMappedAddress;      StunAtrAddress4  xorMappedAddress;	      bool xorOnly;      bool hasServerName;      StunAtrString serverName;            bool hasSecondaryAddress;      StunAtrAddress4 secondaryAddress;} StunMessage; /* Define enum with different types of NAT */typedef enum {   StunTypeUnknown=0,   StunTypeOpen,   StunTypeConeNat,   StunTypeRestrictedNat,   StunTypePortRestrictedNat,   StunTypeSymNat,   StunTypeSymFirewall,   StunTypeBlocked,   StunTypeFailure} NatType;#define MAX_MEDIA_RELAYS 500#define MAX_RTP_MSG_SIZE 1500#define MEDIA_RELAY_TIMEOUT 3*60typedef struct {      int relayPort;       /* media relay port */      int fd;              /* media relay file descriptor */      StunAddress4 destination; /* NAT IP:port */      time_t expireTime;      /* if no activity after time, close the socket */} StunMediaRelay;typedef struct{      StunAddress4 myAddr;      StunAddress4 altAddr;      Socket myFd;      Socket altPortFd;      Socket altIpFd;      Socket altIpPortFd;      bool relay; /* true if media relaying is to be done */      StunMediaRelay relays[MAX_MEDIA_RELAYS];} StunServerInfo;boolstunParseMessage( char* buf,                   unsigned int bufLen,                   StunMessage *message,                   bool verbose );voidstunBuildReqSimple( StunMessage* msg,                    const StunAtrString *username,                    bool changePort, bool changeIp, unsigned int id );unsigned intstunEncodeMessage( const StunMessage *message,                    char* buf,                    unsigned int bufLen,                    const StunAtrString *password,                   bool verbose);voidstunCreateUserName(const StunAddress4 *addr, StunAtrString* username);void stunGetUserNameAndPassword(  const StunAddress4 *dest,                              StunAtrString* username,                             StunAtrString* password);voidstunCreatePassword(const StunAtrString *username, StunAtrString* password);int stunRand(void);UInt64stunGetSystemTimeSecs(void);/* find the IP address of a the specified stun server - return false is fails parse  */bool  stunParseServerName( char* serverName, StunAddress4 *stunServerAddr);bool stunParseHostName( char* peerName,                   UInt32 *ip,                   UInt16 *portVal,                   UInt16 defaultPort );/* return true if all is OK    Create a media relay and do the STERN thing if startMediaPort is non-zero */boolstunInitServer(StunServerInfo *info,                const StunAddress4 *myAddr,                const StunAddress4 *altAddr,               int startMediaPort,               bool verbose);voidstunStopServer(StunServerInfo *info);/* return true if all is OK */boolstunServerProcess(StunServerInfo *info, bool verbose);/* returns number of address found - take array or addres */int stunFindLocalInterfaces(UInt32* addresses, int maxSize );int stunTest( StunAddress4 *dest, int testNum, bool verbose, StunAddress4* srcAddr, StunAddress4 *sMappedAddr, StunAddress4* sChangedAddr);NatTypestunNatType( StunAddress4 *dest, bool verbose,              bool* preservePort, /* if set, is return for if NAT preservers ports or not */             bool* hairpin ,  /* if set, is the return for if NAT will hairpin packets */             int port, /* port to use for the test, 0 to choose random port */             StunAddress4* sAddr /* NIC to use */   );boolstunServerProcessMsg( char* buf,                      unsigned int bufLen,                      StunAddress4 *from,                       StunAddress4 *secondary,                      StunAddress4 *myAddr,                      StunAddress4 *altAddr,                       StunMessage *resp,                      StunAddress4 *destination,                      StunAtrString *hmacPassword,                      bool* changePort,                      bool* changeIp,                      bool verbose);intstunOpenSocket( StunAddress4 *dest,                 StunAddress4* mappedAddr,                 int port,                 StunAddress4* srcAddr,                 bool verbose );boolstunOpenSocketPair(StunAddress4 *dest,                   StunAddress4* mapAddr_rtp,                    StunAddress4* mapAddr_rtcp,                    int* fd1, int* fd2,                    int srcPort,  StunAddress4* srcAddr,                   bool verbose);#endif/* Local Variables:   mode:c   c-file-style:"ellemtel"   c-file-offsets:((case-label . +))   indent-tabs-mode:nil   End:*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久久久久久 | 国产一区二区不卡在线| proumb性欧美在线观看| 国产拍欧美日韩视频二区| 久久精品二区亚洲w码| 91成人在线观看喷潮| 日一区二区三区| 欧美成人bangbros| 国产精品一区二区三区乱码| 国产精品青草综合久久久久99| 成人av资源在线观看| 亚洲免费毛片网站| 欧美精选午夜久久久乱码6080| 视频一区视频二区中文字幕| 久久久久九九视频| 日本电影欧美片| 奇米精品一区二区三区四区| 久久综合狠狠综合久久激情 | 色中色一区二区| 日一区二区三区| 国产女主播视频一区二区| 99精品偷自拍| 蜜桃视频在线观看一区| 日本一区二区三区视频视频| 欧洲一区在线观看| 国产综合久久久久久久久久久久| 国产精品毛片久久久久久久| 欧美一级二级在线观看| 91丝袜美腿高跟国产极品老师 | 亚洲成人一二三| 99久久婷婷国产精品综合| 亚洲精品免费在线观看| 欧美日韩国产小视频在线观看| 同产精品九九九| 精品剧情在线观看| 国产福利视频一区二区三区| 国产精品国产三级国产普通话蜜臀| 99久久99久久精品国产片果冻| 亚洲高清视频在线| 精品成人一区二区| 97se亚洲国产综合自在线观| 无码av中文一区二区三区桃花岛| 欧美tickling挠脚心丨vk| 免费人成在线不卡| 国产精品国产三级国产普通话99| 欧美精品vⅰdeose4hd| 丁香另类激情小说| 午夜精品国产更新| 国产精品青草久久| 欧美日韩午夜影院| 国产九色精品成人porny| 亚洲女同ⅹxx女同tv| 精品第一国产综合精品aⅴ| 欧美在线观看禁18| 国产成人av福利| 性做久久久久久免费观看欧美| 久久女同精品一区二区| 欧美日韩国产成人在线免费| 国产成人在线免费观看| 日本亚洲视频在线| 国产精品视频看| 宅男噜噜噜66一区二区66| 99久久精品国产一区二区三区| 另类小说综合欧美亚洲| 亚洲欧美二区三区| 国产欧美精品一区二区色综合朱莉 | 日韩综合一区二区| 欧美激情一区二区三区蜜桃视频| 在线这里只有精品| 91香蕉视频mp4| 成人午夜激情视频| 国产原创一区二区三区| 美女精品自拍一二三四| 夜夜嗨av一区二区三区网页 | 国产精品少妇自拍| www国产亚洲精品久久麻豆| 在线观看91av| 欧洲精品一区二区| aaa亚洲精品| www.成人在线| 国产一区二区三区久久久| 免费日本视频一区| 首页欧美精品中文字幕| 亚洲免费观看视频| 中文字幕亚洲一区二区av在线| 久久久久久久久免费| 日韩欧美国产综合在线一区二区三区| 精品视频在线看| 成人a级免费电影| www.欧美日韩国产在线| 不卡视频一二三四| 94-欧美-setu| 91麻豆免费看| 欧美综合一区二区| 在线观看免费视频综合| 欧亚洲嫩模精品一区三区| 91精品91久久久中77777| 99精品久久久久久| 91同城在线观看| 91啪亚洲精品| 色婷婷激情一区二区三区| 91久久精品一区二区二区| 日本久久一区二区三区| 欧美日韩一级视频| 7777精品伊人久久久大香线蕉的 | 亚洲激情六月丁香| 亚洲国产精品久久一线不卡| 亚洲丶国产丶欧美一区二区三区| 一区二区三区日本| 亚洲电影在线播放| 日韩在线观看一区二区| 蜜臀久久久久久久| 国产在线一区二区| 成人在线综合网| 91视频精品在这里| 欧美日韩高清影院| 精品国产乱码久久久久久1区2区 | 日韩精品久久理论片| 免费看日韩a级影片| 国产精品自拍三区| 欧美伊人久久久久久午夜久久久久| 欧美日韩亚洲综合一区 | 一本大道av一区二区在线播放| 精品污污网站免费看| 久久综合色婷婷| 亚洲乱码中文字幕| 免费成人小视频| 成人高清免费观看| 欧美一区二区女人| 国产精品久久午夜夜伦鲁鲁| 亚洲人成精品久久久久久 | 日韩精品在线一区| 日韩毛片一二三区| 另类小说图片综合网| 色婷婷综合久久久久中文| 欧美电影免费观看高清完整版在线观看| 国产日韩欧美亚洲| 欧美a级一区二区| 色综合久久久久久久| 日韩精品一区二区三区在线 | 久久日韩精品一区二区五区| 亚洲狼人国产精品| 国产又黄又大久久| 欧美少妇一区二区| 国产精品无码永久免费888| 日韩影院精彩在线| 色综合色综合色综合色综合色综合 | 亚洲欧美日韩在线不卡| 国内偷窥港台综合视频在线播放| 色婷婷亚洲综合| 国产视频一区二区在线| 日本大胆欧美人术艺术动态| 91年精品国产| 国产精品免费久久| 国产在线观看一区二区| 欧美丰满一区二区免费视频| 日韩美女视频19| 蜜桃精品视频在线| 欧美日韩一区在线| 亚洲精品欧美二区三区中文字幕| 精品一区二区久久久| 成人app在线观看| 国产精品国产三级国产aⅴ入口 | 精品国产百合女同互慰| 亚洲一区中文在线| 99久久er热在这里只有精品15| 久久久久久久久久久久电影 | 欧美日韩精品一区二区三区四区| 中文字幕欧美激情一区| 国产乱对白刺激视频不卡| 欧美精品一二三| 亚洲一区影音先锋| 国产不卡视频在线观看| 欧美精品日韩一本| 亚洲福利视频三区| 欧美日韩一卡二卡三卡| 亚洲影视资源网| 欧美精品日韩一区| 精品一区二区三区影院在线午夜| 欧美电影免费观看高清完整版在线 | 亚洲一区免费视频| av在线这里只有精品| 中文字幕色av一区二区三区| 99久久免费国产| 国产午夜精品在线观看| 精品一区二区在线看| 久久五月婷婷丁香社区| 国产在线播放一区二区三区| 久久―日本道色综合久久| 国产一区在线视频| 国产欧美一区二区三区在线看蜜臀| 国产精品一区二区x88av| 亚洲国产成人自拍| 成人影视亚洲图片在线| 亚洲精品一区二区三区99| 国产精品一区二区x88av| 中文字幕成人在线观看| 日本精品一区二区三区高清 | 日韩午夜激情av| 国产精品综合一区二区三区|