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

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

?? osip_port.h

?? 基于GNU的VoIP SIP協議(RFC3261)實現代碼
?? H
字號:
/*  The oSIP library implements the Session Initiation Protocol (SIP -rfc3261-)  Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Aymeric MOIZARD jack@atosc.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*/#ifndef _OSIP_PORT_H_#define _OSIP_PORT_H_/* Include necessary headers for osip */#include <stdio.h>#if defined(__arc__)#include "includes_api.h"#include "os_cfg_pub.h"#include <posix_time_pub.h>#endif#if defined(__PALMOS__) && (__PALMOS__ >= 0x06000000)#	define STDC_HEADERS 1#	define HAVE_CTYPE_H 1#	define HAVE_STRING_H 1#	define HAVE_SYS_TYPES_H 1#	define HAVE_TIME_H 1#	define HAVE_STDARG_H 1#elif defined _WIN32_WCE#define STDC_HEADERS 1#define HAVE_CTYPE_H 1#define HAVE_STRING_H 1#define HAVE_TIME_H 1#define HAVE_STDARG_H 1#define snprintf  _snprintf#define EBUSY           16#elif defined(WIN32)#define STDC_HEADERS 1#define HAVE_CTYPE_H 1#define HAVE_STRING_H 1#define HAVE_SYS_TYPES_H 1#define HAVE_TIME_H 1#define HAVE_STDARG_H 1#define snprintf _snprintf/* use win32 crypto routines for random number generation *//* only use for vs .net (compiler v. 1300) or greater */#if _MSC_VER >= 1300#define WIN32_USE_CRYPTO 1#endif#endif#if defined(__VXWORKS_OS__) || defined(__rtems__) #include <string.h>#include <time.h>#include <sys/times.h>#include <stdarg.h>#include <sys/types.h>#include <stdlib.h>#define VA_START(a, f)  va_start(a, f)#if defined(__VXWORKS_OS__)/* VxWorks lacks support for snprintf */int osip_vsnprintf (char *buf, int max, const char *fmt, va_list ap);int osip_snprintf (char *buf, int max, const char *fmt, ...);#define snprintf  osip_snprintf#define vsnprintf osip_vsnprintf#endif #else /* end of __VXWORKS_OS__ */#if defined (HAVE_CONFIG_H)#include <config.h>#  if defined (HAVE_STRING_H)#    include <string.h>#  else#    include <strings.h>#  endif /* HAVE_STRING_H */#else#  include <string.h>#endif /* !HAVE_CONFIG_H */#if defined (HAVE_SYS_TYPES_H)#  include <sys/types.h>#endif#ifdef STDC_HEADERS#    include <stdlib.h>#endif /* !STDC_HEADERS */#if defined(HAVE_STDARG_H) || defined(WIN32)#  include <stdarg.h>#  define VA_START(a, f)  va_start(a, f)#else#  if defined(HAVE_VARARGS_H)#    include <varargs.h>#    define VA_START(a, f) va_start(a)#  else#    include <stdarg.h>#    define VA_START(a, f)  va_start(a, f)#  endif#endif#ifdef HAVE_TIME_H#  include <time.h>#endif#if defined (HAVE_SYS_TIME_H)#  include <sys/time.h>#endif#endif /* end of !__VXWORKS_OS__ */#ifdef _WIN32_WCE#define VA_START(a, f)  va_start(a, f)#endif#ifdef WIN32#define VA_START(a, f)  va_start(a, f)#endif#ifdef __PSOS__#define VA_START(a, f)  va_start(a, f)#include "pna.h"#include "stdlib.h"#include "time.h"#define timercmp(tvp, uvp, cmp) \        ((tvp)->tv_sec cmp (uvp)->tv_sec || \         (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)#define snprintf  osip_snprintf#ifndef INT_MAX#define INT_MAX 0x7FFFFFFF#endif#endif#if __STDC__#  ifndef NOPROTOS#    define PARAMS(args)   args#  endif#endif#ifndef PARAMS#  define PARAMS(args)     ()#endif#include <osipparser2/osip_const.h>#include <osipparser2/osip_list.h>#define SIP_SYNTAX_ERROR    (-1)#define SIP_NETWORK_ERROR   (-2)#define SIP_ECONNREFUSED    (-3)#define SIP_RESSOURCE_ERROR (-4)#define SIP_GLOBAL_ERROR    (-5)#ifdef __cplusplusextern "C"{#endif/**************************//* MALLOC redirections    *//**************************/#if !defined(WIN32) && !defined(_WIN32_WCE)#ifndef MINISIZE  typedef void *osip_malloc_func_t (size_t size);  typedef void osip_free_func_t (void *ptr);  typedef void *osip_realloc_func_t (void *ptr, size_t size);  extern osip_malloc_func_t *osip_malloc_func;  extern osip_realloc_func_t *osip_realloc_func;  extern osip_free_func_t *osip_free_func;  void osip_set_allocators (osip_malloc_func_t * malloc_func,                            osip_realloc_func_t * realloc_func,                            osip_free_func_t * free_func);#endif#ifdef DEBUG_MEM  void *_osip_malloc (size_t size, char *file, unsigned short line);  void _osip_free (void *ptr);  void *_osip_realloc (void *ptr, size_t size, char *file, unsigned short line);#ifndef osip_malloc#define osip_malloc(S) _osip_malloc(S,__FILE__,__LINE__)#endif#ifndef osip_realloc#define osip_realloc(P,S) _osip_realloc(P,S,__FILE__,__LINE__)#endif#ifndef osip_free#define osip_free(P) { if (P!=NULL) { _osip_free(P); } }#endif#else#ifndef MINISIZE#ifndef osip_malloc#define osip_malloc(S) (osip_malloc_func?osip_malloc_func(S):malloc(S))#endif#ifndef osip_realloc#define osip_realloc(P,S) (osip_realloc_func?osip_realloc_func(P,S):realloc(P,S))#endif#ifndef osip_free#define osip_free(P) { if (P!=NULL) { if (osip_free_func) osip_free_func(P); else free(P);} }#endif#else  /* MINISIZE code */#ifndef osip_malloc#define osip_malloc(S) malloc(S)#endif#ifndef osip_realloc#define osip_realloc(P,S) realloc(P,S)#endif#ifndef osip_free#define osip_free(P) { if (P!=NULL) { free(P);} }#endif#endif#endif#else  void *osip_malloc (size_t size);  void *osip_realloc (void *, size_t size);  void osip_free (void *);#endif#ifdef WIN32#define alloca _alloca#endif/**************************//* RANDOM number support  *//**************************/  unsigned int osip_build_random_number (void);/**************************//* TIMER support          *//**************************/#define SP   " \0"  void osip_usleep (int useconds);#ifndef MINISIZE  int osip_atoi (const char *number);  int osip_strcasecmp (const char *s1, const char *s2);  int osip_strncasecmp (const char *s1, const char *s2, size_t len);#else#define osip_atoi  atoi#define osip_strcasecmp  strcasecmp#define osip_strncasecmp  strncasecmp#endif/**************************//* STRING support         *//**************************/  char *osip_strncpy (char *dest, const char *src, size_t length);  char *osip_strdup (const char *ch);  char *osip_strdup_without_quote (const char *ch);  int osip_tolower (char *word);  int osip_clrspace (char *word);  char *__osip_sdp_append_string (char *string, size_t size,                                  char *cur, char *string_osip_to_append);  int __osip_set_next_token (char **dest, char *buf, int end_separator,                             char **next);  /* find the next unescaped quote and return its index. */  char *__osip_quote_find (const char *qstring);  char *osip_enquote (const char *s);  void osip_dequote (char *s);  unsigned long osip_hash (const char *str);  char *osip_str_append (char *dst, const char *src);  char *osip_strn_append (char *dst, const char *src, size_t len);  char *osip_clrncpy (char *dst, const char *src, size_t len);/**************************//* LOG&DEBUG support      *//**************************/#define LOG_TRUE  1#define LOG_FALSE 0/* levels */  typedef enum _trace_level  {    TRACE_LEVEL0 = 0,#define OSIP_FATAL    0    TRACE_LEVEL1 = 1,#define OSIP_BUG      1    TRACE_LEVEL2 = 2,#define OSIP_ERROR    2    TRACE_LEVEL3 = 3,#define OSIP_WARNING  3    TRACE_LEVEL4 = 4,#define OSIP_INFO1    4    TRACE_LEVEL5 = 5,#define OSIP_INFO2    5    TRACE_LEVEL6 = 6,#define OSIP_INFO3    6    TRACE_LEVEL7 = 7,#define OSIP_INFO4    7    END_TRACE_LEVEL = 8  }  osip_trace_level_t;  typedef void osip_trace_func_t (char *fi, int li, osip_trace_level_t level,                                  char *chfr, va_list ap);/* these are defined in all cases, but are empty when oSIP is compiled   without trace */  void osip_trace_initialize_func (osip_trace_level_t level,                                   osip_trace_func_t * func);  void osip_trace_initialize_syslog (osip_trace_level_t level, char *ident);  void osip_trace_initialize (osip_trace_level_t level, FILE * file);  void osip_trace_enable_until_level (osip_trace_level_t level);  void osip_trace_enable_level (osip_trace_level_t level);  void osip_trace_disable_level (osip_trace_level_t level);  int osip_is_trace_level_activate (osip_trace_level_t level);#ifndef ENABLE_TRACE#define TRACE_INITIALIZE(level, file)  do { } while (0)#define TRACE_ENABLE_LEVEL(level)      do { } while (0)#define TRACE_DISABLE_LEVEL(level)     do { } while (0)#define IS_TRACE_LEVEL_ACTIVATE(level) (-1)#else#define TRACE_INITIALIZE(level, file)  osip_trace_initialize(level, file)#define TRACE_ENABLE_LEVEL(level)      osip_trace_enable_level ( level )#define TRACE_DISABLE_LEVEL(level)     osip_trace_disable_level ( level )#define IS_TRACE_LEVEL_ACTIVATE(level) osip_is_trace_level_activate( level )#endif/* log facility. *//* if f is NULL, current default log file is used. *//* INPUT: level | level of the trace               *//* INPUT: f | use f instead of default log file    *//* INPUT: chfr | format string for next args       */  int osip_trace (char *fi, int li, osip_trace_level_t level, FILE * f,                  char *chfr, ...);#ifdef ENABLE_TRACE#define OSIP_TRACE(P) P#else#define OSIP_TRACE(P) do {} while (0)#endif#define REMOVE_ELEMENT(first_element, element)   \       if (element->parent==NULL)                \	{ first_element = element->next;         \          if (first_element!=NULL)               \          first_element->parent = NULL; }        \       else \        { element->parent->next = element->next; \          if (element->next!=NULL)               \	element->next->parent = element->parent; \	element->next = NULL;                    \	element->parent = NULL; }#define ADD_ELEMENT(first_element, element) \   if (first_element==NULL)                 \    {                                       \      first_element   = element;            \      element->next   = NULL;               \      element->parent = NULL;               \    }                                       \  else                                      \    {                                       \      element->next   = first_element;      \      element->parent = NULL;               \      element->next->parent = element;      \      first_element = element;              \    }#define APPEND_ELEMENT(type_of_element_t, first_element, element) \  if (first_element==NULL)                            \    { first_element = element;                        \      element->next   = NULL; /* useless */           \      element->parent = NULL; /* useless */ }         \  else                                                \    { type_of_element_t *f;                           \      for (f=first_element; f->next!=NULL; f=f->next) \         { }                                          \      f->next    = element;                           \      element->parent = f;                            \      element->next   = NULL;                         \    }#ifdef __cplusplus}#endif#endif                          /* _PORT_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re8在线精品视频免费播放| 国产精品18久久久久久久久久久久| 一区二区三区在线视频播放 | 成人午夜在线视频| 色综合久久久久| 日韩欧美国产午夜精品| 亚洲欧美一区二区不卡| 国产一区中文字幕| 欧美日韩色一区| 国产精品久久久久aaaa| 麻豆成人免费电影| 欧美在线不卡视频| 成人免费小视频| 国产真实精品久久二三区| 欧美日韩亚洲另类| 亚洲免费观看高清完整版在线| 国产伦精品一区二区三区在线观看 | 欧美一区二区免费| 亚洲天堂av老司机| 国产成人aaa| 久久一区二区三区四区| 日韩有码一区二区三区| 色吧成人激情小说| 国产精品国产自产拍高清av王其| 精品在线播放午夜| 欧美一区二区在线观看| 亚洲一区二区三区美女| 色哟哟国产精品免费观看| 国产精品美女久久久久久久久久久 | 91小视频在线免费看| 久久久久97国产精华液好用吗| 另类小说一区二区三区| 欧美一二区视频| 日韩精品一二三| 欧美高清视频不卡网| 亚洲自拍欧美精品| 91久久精品一区二区二区| 亚洲少妇最新在线视频| 91在线免费播放| 自拍偷拍国产亚洲| 色成年激情久久综合| 亚洲最大成人网4388xx| 欧美日韩aaaaaa| 视频一区视频二区中文| 欧美一级欧美三级| 韩国女主播成人在线观看| 精品久久久久99| 国产麻豆精品theporn| 中文在线资源观看网站视频免费不卡| 粗大黑人巨茎大战欧美成人| 国产精品入口麻豆九色| 99视频精品免费视频| 亚洲女子a中天字幕| 欧洲精品一区二区| 亚洲电影激情视频网站| 欧美一级二级在线观看| 极品美女销魂一区二区三区 | 国产精品区一区二区三区| 国产精品1024| 日韩久久一区二区| 精品视频1区2区3区| 日本午夜精品视频在线观看| 精品动漫一区二区三区在线观看| 国产精品中文字幕欧美| 国产精品免费视频一区| 欧美在线观看视频在线| 理论电影国产精品| 中文字幕亚洲一区二区av在线| 日本精品一区二区三区高清| 日韩激情在线观看| 国产精品水嫩水嫩| 欧美日韩免费在线视频| 国产黑丝在线一区二区三区| 亚洲精品videosex极品| 欧美va亚洲va| 色偷偷久久一区二区三区| 蜜臀国产一区二区三区在线播放| 国产农村妇女毛片精品久久麻豆| 在线观看免费一区| 国产麻豆视频精品| 午夜激情一区二区| 国产亚洲欧美日韩俺去了| 在线一区二区三区四区五区| 精品一区二区三区视频| 亚洲午夜三级在线| 国产精品污污网站在线观看| 欧美日韩国产精选| 成人av电影在线观看| 日本成人在线电影网| 亚洲人精品午夜| 精品国产91久久久久久久妲己| 日本精品一级二级| 国产成人亚洲精品青草天美| 日日欢夜夜爽一区| 亚洲免费视频中文字幕| 久久久久久免费网| 欧美一区日韩一区| 日本精品一区二区三区高清 | 日韩av一区二区三区四区| 国产精品国产三级国产| 精品国产露脸精彩对白| 欧美日韩国产a| 91福利在线观看| av在线这里只有精品| 国产精品中文字幕日韩精品 | 久久蜜桃一区二区| 日韩一区和二区| 欧美日韩精品系列| 欧美亚日韩国产aⅴ精品中极品| 成人av免费网站| 成人爱爱电影网址| 国产精品一区二区不卡| 日日噜噜夜夜狠狠视频欧美人| 成人免费视频在线观看| 国产经典欧美精品| 免费一级欧美片在线观看| 亚洲综合免费观看高清完整版在线| 欧美极品少妇xxxxⅹ高跟鞋 | 一区二区三区精品| 亚洲视频一二三| 亚洲少妇屁股交4| 亚洲婷婷在线视频| 亚洲区小说区图片区qvod| 亚洲人妖av一区二区| 亚洲人成网站色在线观看| 亚洲日本乱码在线观看| 一区二区激情视频| 亚洲电影在线免费观看| 亚洲第一激情av| 日韩黄色在线观看| 奇米精品一区二区三区在线观看一| 午夜精品视频在线观看| 日韩精品一二三| 老司机精品视频导航| 狠狠色综合日日| 国产精品99久久久| gogogo免费视频观看亚洲一| 一本一本久久a久久精品综合麻豆| 色域天天综合网| 欧美人牲a欧美精品| 日韩欧美综合一区| 久久久高清一区二区三区| 国产精品美女www爽爽爽| 亚洲伦在线观看| 天天色天天操综合| 国产在线国偷精品免费看| 国产白丝网站精品污在线入口| 99免费精品视频| 欧美日韩成人一区二区| 欧美va天堂va视频va在线| 国产精品久久久久久亚洲伦| 亚洲综合一区在线| 麻豆91精品视频| av电影天堂一区二区在线| 欧美剧在线免费观看网站| 精品国精品国产| 成人免费在线播放视频| 首页亚洲欧美制服丝腿| 国产精品888| 欧美日韩一区不卡| 久久久久国产精品人| 一区二区三区在线免费观看| 看电视剧不卡顿的网站| 色综合色综合色综合色综合色综合| 欧美日韩激情一区二区| 国产欧美日韩在线观看| 亚洲国产日韩在线一区模特| 在线免费不卡视频| 欧美xxxxx裸体时装秀| 亚洲欧美日韩在线播放| 韩国成人在线视频| 日本韩国欧美一区| 国产偷国产偷精品高清尤物| 亚洲成人av在线电影| 国产精品1区二区.| 制服丝袜亚洲播放| 亚洲婷婷在线视频| 国产成人av一区二区三区在线| 欧美视频完全免费看| 亚洲国产电影在线观看| 精品一区二区三区免费观看| 91久久人澡人人添人人爽欧美| 久久久久久久久久久黄色| 五月激情综合色| 91麻豆免费视频| 国产精品私房写真福利视频| 麻豆国产一区二区| 欧美日韩综合色| 亚洲视频一区在线| 成人激情图片网| 久久亚洲综合色| 另类欧美日韩国产在线| 欧美男女性生活在线直播观看| 中文字幕亚洲区| 成人激情动漫在线观看| 久久久久久一二三区| 久久99精品久久久久久| 欧美精品在线观看一区二区| 亚洲欧美色图小说| 97久久超碰精品国产|