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

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

?? osip.c

?? libosip2-3.0.3最新版本
?? C
?? 第 1 頁 / 共 4 頁
字號:
    osip_via_param_get_byname (nict->topvia, "branch", &b_request);    if (b_request != NULL && b_request->gvalue != NULL)      rv = dict_insert (osip->osip_nict_hastable,                        b_request->gvalue, (void *) nict, FALSE);#if 0    else      rv = dict_insert (osip->osip_nict_hastable,                        b_request->gvalue, (void *) nict, FALSE);#endif    if (rv == 0)      {        OSIP_TRACE (osip_trace                    (__FILE__, __LINE__, OSIP_INFO1, NULL,                     "New key inserted in nict hastable `%s'\n",                     b_request->gvalue));    } else if (rv != -99)      {        OSIP_TRACE (osip_trace                    (__FILE__, __LINE__, OSIP_WARNING, NULL,                     "already inserted `%s'\n", b_request->gvalue));      }  }#endif  osip_list_add (&osip->osip_nict_transactions, nict, -1);#ifdef OSIP_MT  osip_mutex_unlock (nict_fastmutex);#endif  return 0;}int__osip_add_nist (osip_t * osip, osip_transaction_t * nist){#ifdef OSIP_MT  osip_mutex_lock (nist_fastmutex);#endif#if defined(HAVE_DICT_DICT_H)  {    osip_generic_param_t *b_request = NULL;    int rv = -99;    osip_via_param_get_byname (nist->topvia, "branch", &b_request);    if (b_request != NULL && b_request->gvalue != NULL)      rv = dict_insert (osip->osip_nist_hastable,                        b_request->gvalue, (void *) nist, FALSE);#if 0    else      rv = dict_insert (osip->osip_nist_hastable,                        b_request->gvalue, (void *) nist, FALSE);#endif    if (rv == 0)      {        OSIP_TRACE (osip_trace                    (__FILE__, __LINE__, OSIP_INFO1, NULL,                     "New key inserted in ict hastable `%s'\n",                     b_request->gvalue));    } else if (rv != -99)      {        OSIP_TRACE (osip_trace                    (__FILE__, __LINE__, OSIP_WARNING, NULL,                     "already inserted `%s'\n", b_request->gvalue));      }  }#endif  osip_list_add (&osip->osip_nist_transactions, nist, -1);#ifdef OSIP_MT  osip_mutex_unlock (nist_fastmutex);#endif  return 0;}intosip_remove_transaction (osip_t * osip, osip_transaction_t * tr){  int i = -1;  if (tr == NULL)    return -1;  if (tr->ctx_type == ICT)    i = __osip_remove_ict_transaction (osip, tr);  else if (tr->ctx_type == IST)    i = __osip_remove_ist_transaction (osip, tr);  else if (tr->ctx_type == NICT)    i = __osip_remove_nict_transaction (osip, tr);  else if (tr->ctx_type == NIST)    i = __osip_remove_nist_transaction (osip, tr);  else    return -1;  return i;}int__osip_remove_ict_transaction (osip_t * osip, osip_transaction_t * ict){  osip_list_iterator_t iterator;  osip_transaction_t *tmp;#ifdef OSIP_MT  osip_mutex_lock (ict_fastmutex);#endif#if defined(HAVE_DICT_DICT_H)  {    osip_generic_param_t *b_request = NULL;    int rv;    osip_via_param_get_byname (ict->topvia, "branch", &b_request);    if (b_request != NULL && b_request->gvalue != NULL)      {        rv = dict_remove (osip->osip_ict_hastable, b_request->gvalue, TRUE);        if (rv == 0)          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_INFO1, NULL,                         "New key deleted in ict hastable `%s'\n",                         b_request->gvalue));        } else          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_WARNING, NULL,                         "key not removed `%s'\n", b_request->gvalue));          }      }  }#endif  tmp =    (osip_transaction_t *) osip_list_get_first (&osip->osip_ict_transactions,                                                &iterator);  while (osip_list_iterator_has_elem (iterator))    {      if (tmp->transactionid == ict->transactionid)        {          osip_list_iterator_remove (&iterator);#ifdef OSIP_MT          osip_mutex_unlock (ict_fastmutex);#endif          return 0;        }      tmp = (osip_transaction_t *) osip_list_get_next (&iterator);    }#ifdef OSIP_MT  osip_mutex_unlock (ict_fastmutex);#endif  return -1;}int__osip_remove_ist_transaction (osip_t * osip, osip_transaction_t * ist){  osip_list_iterator_t iterator;  osip_transaction_t *tmp;#ifdef OSIP_MT  osip_mutex_lock (ist_fastmutex);#endif#if defined(HAVE_DICT_DICT_H)  {    osip_generic_param_t *b_request = NULL;    int rv;    osip_via_param_get_byname (ist->topvia, "branch", &b_request);    if (b_request != NULL && b_request->gvalue != NULL)      {        rv = dict_remove (osip->osip_ist_hastable, b_request->gvalue, TRUE);        if (rv == 0)          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_INFO1, NULL,                         "New key deleted in ist hastable `%s'\n",                         b_request->gvalue));        } else          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_WARNING, NULL,                         "key not removed `%s'\n", b_request->gvalue));          }      }  }#endif  tmp =    (osip_transaction_t *) osip_list_get_first (&osip->osip_ist_transactions,                                                &iterator);  while (osip_list_iterator_has_elem (iterator))    {      if (tmp->transactionid == ist->transactionid)        {          osip_list_iterator_remove (&iterator);#ifdef OSIP_MT          osip_mutex_unlock (ist_fastmutex);#endif          return 0;        }      tmp = (osip_transaction_t *) osip_list_get_next (&iterator);    }#ifdef OSIP_MT  osip_mutex_unlock (ist_fastmutex);#endif  return -1;}int__osip_remove_nict_transaction (osip_t * osip, osip_transaction_t * nict){  osip_list_iterator_t iterator;  osip_transaction_t *tmp;#ifdef OSIP_MT  osip_mutex_lock (nict_fastmutex);#endif#if defined(HAVE_DICT_DICT_H)  {    osip_generic_param_t *b_request = NULL;    int rv;    osip_via_param_get_byname (nict->topvia, "branch", &b_request);    if (b_request != NULL && b_request->gvalue != NULL)      {        rv = dict_remove (osip->osip_nict_hastable, b_request->gvalue, TRUE);        if (rv == 0)          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_INFO1, NULL,                         "New key deleted in nict hastable `%s'\n",                         b_request->gvalue));        } else          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_WARNING, NULL,                         "key not removed `%s'\n", b_request->gvalue));          }      }  }#endif  tmp =    (osip_transaction_t *) osip_list_get_first (&osip->osip_nict_transactions,                                                &iterator);  while (osip_list_iterator_has_elem (iterator))    {      if (tmp->transactionid == nict->transactionid)        {          osip_list_iterator_remove (&iterator);#ifdef OSIP_MT          osip_mutex_unlock (nict_fastmutex);#endif          return 0;        }      tmp = (osip_transaction_t *) osip_list_get_next (&iterator);    }#ifdef OSIP_MT  osip_mutex_unlock (nict_fastmutex);#endif  return -1;}int__osip_remove_nist_transaction (osip_t * osip, osip_transaction_t * nist){  osip_list_iterator_t iterator;  osip_transaction_t *tmp;#ifdef OSIP_MT  osip_mutex_lock (nist_fastmutex);#endif#if defined(HAVE_DICT_DICT_H)  {    osip_generic_param_t *b_request = NULL;    int rv;    osip_via_param_get_byname (nist->topvia, "branch", &b_request);    if (b_request != NULL && b_request->gvalue != NULL)      {        rv = dict_remove (osip->osip_nist_hastable, b_request->gvalue, TRUE);        if (rv == 0)          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_INFO1, NULL,                         "New key deleted in ict hastable `%s'\n",                         b_request->gvalue));        } else          {            OSIP_TRACE (osip_trace                        (__FILE__, __LINE__, OSIP_WARNING, NULL,                         "key not removed `%s'\n", b_request->gvalue));          }      }  }#endif  tmp =    (osip_transaction_t *) osip_list_get_first (&osip->osip_nist_transactions,                                                &iterator);  while (osip_list_iterator_has_elem (iterator))    {      if (tmp->transactionid == nist->transactionid)        {          osip_list_iterator_remove (&iterator);#ifdef OSIP_MT          osip_mutex_unlock (nist_fastmutex);#endif          return 0;        }      tmp = (osip_transaction_t *) osip_list_get_next (&iterator);    }#ifdef OSIP_MT  osip_mutex_unlock (nist_fastmutex);#endif  return -1;}#if 0/* this method is made obsolete because it contains bugs and is also   too much limited.   any call to this method should be replace this way:   //osip_distribute(osip, evt);   int i = osip_find_transaction_and_add_event(osip, evt);   if (i!=0) // in case it's a new request     {        if (evt is an ACK)            evt could be an ACK for INVITE (not handled by oSIP)        else if ( evt is a 200 for INVITE)           evt could be a retransmission of a 200 for INVITE (not handled by oSIP)        else if (evt is a new request)  == not a ACK and not a response	  {           transaction = osip_create_transaction(osip, evt);           if (transaction==NULL)             printf("failed to create a transaction\");          }    }    else    {    // here, the message as been taken by the stack.    }*//* finds the transaction context and add the sipevent in its fifo. *//* USED ONLY BY THE TRANSPORT LAYER.                               *//* INPUT : osip_t *osip | osip. contains the list of tr. context*//* INPUT : osip_event_t* sipevent | event to dispatch.               */osip_transaction_t *osip_distribute_event (osip_t * osip, osip_event_t * evt){  osip_transaction_t *transaction = NULL;  int i;  osip_fsm_type_t ctx_type;  if (EVT_IS_INCOMINGMSG (evt))    {      /* event is for ict */      if (MSG_IS_REQUEST (evt->sip))        {          if (0 == strcmp (evt->sip->cseq->method, "INVITE")              || 0 == strcmp (evt->sip->cseq->method, "ACK"))            {#ifdef OSIP_MT              osip_mutex_lock (ist_fastmutex);#endif              transaction =                osip_transaction_find (osip->osip_ist_transactions, evt);#ifdef OSIP_MT              osip_mutex_unlock (ist_fastmutex);#endif          } else            {#ifdef OSIP_MT              osip_mutex_lock (nist_fastmutex);#endif              transaction =                osip_transaction_find (osip->osip_nist_transactions, evt);#ifdef OSIP_MT              osip_mutex_unlock (nist_fastmutex);#endif            }      } else        {          if (0 == strcmp (evt->sip->cseq->method, "INVITE")              || 0 == strcmp (evt->sip->cseq->method, "ACK"))            {#ifdef OSIP_MT              osip_mutex_lock (ict_fastmutex);#endif              transaction =                osip_transaction_find (osip->osip_ict_transactions, evt);#ifdef OSIP_MT              osip_mutex_unlock (ict_fastmutex);#endif          } else            {#ifdef OSIP_MT              osip_mutex_lock (nict_fastmutex);#endif              transaction =                osip_transaction_find (osip->osip_nict_transactions, evt);#ifdef OSIP_MT              osip_mutex_unlock (nict_fastmutex);#endif            }        }      if (transaction == NULL)        {          if (EVT_IS_RCV_STATUS_1XX (evt)              || EVT_IS_RCV_STATUS_2XX (evt)              || EVT_IS_RCV_STATUS_3456XX (evt) || EVT_IS_RCV_ACK (evt))            {                   /* event MUST be ignored! */              /* EXCEPT FOR 2XX THAT MUST BE GIVEN TO THE CORE LAYER!!! */              /* TODO */              OSIP_TRACE (osip_trace                          (__FILE__, __LINE__, OSIP_WARNING, NULL,                           "transaction does not yet exist... %x callid:%s\n",                           evt, evt->sip->call_id->number));              osip_message_free (evt->sip);              osip_free (evt);  /* transaction thread will not delete it */              return NULL;            }          /* we create a new context for this incoming request */          if (0 == strcmp (evt->sip->cseq->method, "INVITE"))            ctx_type = IST;          else            ctx_type = NIST;          i = osip_transaction_init (&transaction, ctx_type, osip, evt->sip);          if (i == -1)            {              osip_message_free (evt->sip);              osip_free (evt);  /* transaction thread will not delete it */              return NULL;            }        }      evt->transactionid = transaction->transactionid;      evt->transactionid = transaction->transactionid;      osip_fifo_add (transaction->transactionff, evt);      return transaction;  } else    {      OSIP_TRACE (osip_trace                  (__FILE__, __LINE__, OSIP_BUG, NULL,                   "wrong event type %x\n", evt));      return NULL;    }}#endifintosip_find_transaction_and_add_event (osip_t * osip, osip_event_t * evt){  osip_transaction_t *transaction = __osip_find_transaction (osip, evt, 1);  if (transaction == NULL)    return -1;  return 0;}#ifndef OSIP_MTosip_transaction_t *osip_find_transaction (osip_t * osip, osip_event_t * evt){  return __osip_find_transaction (osip, evt, 0);}#endifosip_transaction_t *__osip_find_transaction (osip_t * osip, osip_event_t * evt, int consume){  osip_transaction_t *transaction = NULL;  osip_list_t *transactions = NULL;#ifdef OSIP_MT  struct osip_mutex *mut = NULL;#endif  if (evt == NULL || evt->sip == NULL || evt->sip->cseq == NULL)    return NULL;  if (EVT_IS_INCOMINGMSG (evt))    {      if (MSG_IS_REQUEST (evt->sip))        {          if (0 == strcmp (evt->sip->cseq->method, "INVITE")              || 0 == strcmp (evt->sip->cseq->method, "ACK"))            {              transactions = &osip->osip_ist_transactions;#ifdef OSIP_MT              mut = ist_fastmutex;#endif          } else            {              transactions = &osip->osip_nist_transactions;#ifdef OSIP_MT              mut = nist_fastmutex;#endif            }      } else        {          if (0 == strcmp (evt->sip->cseq->method, "INVITE"))            {              transactions = &osip->osip_ict_transactions;#ifdef OSIP_MT              mut = ict_fastmutex;#endif          } else            {              transactions = &osip->osip_nict_transactions;#ifdef OSIP_MT              mut = nict_fastmutex;#endif            }        }  } else if (EVT_IS_OUTGOINGMSG (evt))    {      if (MSG_IS_RESPONSE (evt->sip))        {          if (0 == strcmp (evt->sip->cseq->method, "INVITE"))            {              transactions = &osip->osip_ist_transactions;#ifdef OSIP_MT              mut = ist_fastmutex;#endif          } else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久影音资源网| 一卡二卡三卡日韩欧美| 不卡av在线网| 亚洲国产乱码最新视频 | 国产精品成人网| 欧美福利电影网| 成人av在线一区二区| 另类综合日韩欧美亚洲| 一区二区在线看| 中文字幕国产一区| 日韩精品一区在线观看| 欧洲色大大久久| 成人av一区二区三区| 精品一区二区免费| 污片在线观看一区二区| 亚洲色图.com| 欧美韩国日本一区| 日韩精品一区二区三区视频在线观看 | 国产精品第四页| 日韩免费一区二区三区在线播放| 欧洲亚洲精品在线| 91丨九色porny丨蝌蚪| 国产精品2024| 韩国v欧美v亚洲v日本v| 视频一区中文字幕| 亚洲国产精品久久久久秋霞影院 | 国产中文一区二区三区| 日韩av一区二| 日韩国产在线观看| 午夜精品福利久久久| 亚洲欧美日韩在线播放| 国产精品人成在线观看免费| 久久久精品综合| 欧美videofree性高清杂交| 欧美一区二区网站| 欧美一区二区三区男人的天堂| 欧美性高清videossexo| 91成人免费在线| 在线亚洲一区二区| 日本二三区不卡| 欧美在线短视频| 在线观看日韩av先锋影音电影院| 一本到不卡免费一区二区| 99视频热这里只有精品免费| 成人aa视频在线观看| 9人人澡人人爽人人精品| 99久久综合国产精品| 色哟哟一区二区| 欧美性xxxxxx少妇| 欧美人动与zoxxxx乱| 欧美一区二区视频网站| 日韩欧美一二三四区| 欧美大片免费久久精品三p| 精品免费日韩av| 国产欧美日韩视频一区二区| 中文字幕在线视频一区| 亚洲色图视频网| 亚洲国产wwwccc36天堂| 日本aⅴ亚洲精品中文乱码| 久久福利视频一区二区| 国产福利一区二区三区视频在线| 成人深夜在线观看| 日本高清不卡aⅴ免费网站| 7777精品伊人久久久大香线蕉| 日韩一区二区三区在线视频| 欧美电影免费观看高清完整版在| 国产精品视频看| 夜夜嗨av一区二区三区中文字幕| 三级成人在线视频| 国产精品自拍一区| 99re66热这里只有精品3直播| 欧美在线三级电影| 欧美一区二区美女| 国产亚洲精品免费| 亚洲综合色成人| 精品无人区卡一卡二卡三乱码免费卡 | 日本中文在线一区| 国产东北露脸精品视频| 色婷婷av一区| 日韩精品一区二区三区视频| 综合欧美一区二区三区| 午夜精品久久久久久| 国产成人免费在线视频| 欧洲一区二区av| 久久美女高清视频| 亚洲一区视频在线观看视频| 国内欧美视频一区二区| 色呦呦日韩精品| 久久综合五月天婷婷伊人| 亚洲女爱视频在线| 精品无人区卡一卡二卡三乱码免费卡| 91丝袜美腿高跟国产极品老师| 日韩三级av在线播放| 亚洲精品视频在线观看免费| 激情综合网激情| 欧美日精品一区视频| 国产日韩欧美一区二区三区乱码 | 一区二区三区欧美| 国产精品小仙女| 欧美女孩性生活视频| 国产精品传媒视频| 久久精品免费观看| 欧美在线视频不卡| 中文字幕亚洲一区二区va在线| 麻豆精品一区二区av白丝在线 | 日韩视频一区二区在线观看| 日韩一区日韩二区| 国产乱码精品一品二品| 91麻豆精品国产91久久久资源速度| 国产精品传媒入口麻豆| 国产成人在线视频播放| 欧美一级二级三级乱码| 亚洲综合图片区| 99精品桃花视频在线观看| 2024国产精品| 免费成人av资源网| 欧美日韩免费电影| 亚洲最色的网站| 99精品在线免费| 亚洲国产成人自拍| 国产精品996| 久久久久久久久久久久久久久99 | 国产午夜精品久久久久久免费视 | 国产精品传媒在线| 午夜国产精品影院在线观看| 国产一区二区中文字幕| 欧美另类z0zxhd电影| 亚洲一区av在线| 91视频在线观看| 国产精品国产三级国产a| 国产精品亚洲一区二区三区在线| 欧美伊人久久大香线蕉综合69| 中文字幕一区二区三区蜜月| 国产91精品一区二区| 国产情人综合久久777777| 国产精品一区三区| 久久久天堂av| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 久久免费午夜影院| 亚洲黄色片在线观看| 91免费视频大全| 亚洲女同一区二区| 色就色 综合激情| 欧美一区二区三区婷婷月色| 性欧美疯狂xxxxbbbb| 欧美剧情电影在线观看完整版免费励志电影| 亚洲人妖av一区二区| 在线看国产一区二区| 亚洲一区二区三区四区中文字幕| 欧美系列日韩一区| 日韩影院精彩在线| 精品欧美一区二区三区精品久久| 紧缚捆绑精品一区二区| 日本亚洲三级在线| 在线亚洲一区观看| 奇米888四色在线精品| 精品福利二区三区| 成人免费高清在线| 亚洲综合成人在线| 91精品国产一区二区三区蜜臀| 久久成人免费网站| 日本一区二区免费在线| 色哟哟国产精品| 日韩黄色免费网站| 国产三级精品三级| 91成人在线精品| 久久精品国产久精国产| 国产精品蜜臀在线观看| 在线影院国内精品| 久久精品二区亚洲w码| 中文字幕精品在线不卡| 欧美色综合久久| 韩国一区二区视频| 亚洲欧美激情一区二区| 另类小说图片综合网| 国产精品久久久久久久久动漫| 在线亚洲精品福利网址导航| 另类小说图片综合网| 亚洲日穴在线视频| 日韩三级在线观看| va亚洲va日韩不卡在线观看| 日精品一区二区| 国产精品丝袜一区| 免费在线观看日韩欧美| 91成人在线精品| 国产精品一区一区三区| 午夜久久久久久| 国产日韩成人精品| 6080午夜不卡| 成人免费毛片高清视频| 日韩高清在线不卡| 亚洲欧洲精品一区二区三区| 日韩一区二区麻豆国产| 91污在线观看| 国内精品写真在线观看| 一区二区三区国产精华| 国产三级三级三级精品8ⅰ区| 欧美日韩一区二区三区高清| 岛国一区二区三区| 久久精品国产成人一区二区三区 |