当前位置: 首页>>代码示例>>C++>>正文


C++ Url::getHostWithPort方法代码示例

本文整理汇总了C++中Url::getHostWithPort方法的典型用法代码示例。如果您正苦于以下问题:C++ Url::getHostWithPort方法的具体用法?C++ Url::getHostWithPort怎么用?C++ Url::getHostWithPort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Url的用法示例。


在下文中一共展示了Url::getHostWithPort方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: sign

void SignedUrl::sign( Url& urlToSign )
{
    UtlString existingUrlSignature;
    UtlString urlString;

    urlToSign.toString( urlString );
    if( urlToSign.getUrlParameter( SignatureUrlParamName, existingUrlSignature ) == TRUE )
    {
        OsSysLog::add(FAC_SIP, PRI_DEBUG,
                      "SignedUrl::sign URL '%s' already signed - updating signature",
                      urlString.data() );
    }
    UtlString userInfo;
    UtlString hostPort;
    UtlString strSignature;

    urlToSign.getUserId( userInfo );
    urlToSign.getHostWithPort( hostPort );

    computeSignature( userInfo, hostPort, strSignature );
    urlToSign.setUrlParameter( SignatureUrlParamName, strSignature.data() );

    OsSysLog::add(FAC_SIP, PRI_DEBUG,
                  "SignedUrl::sign URL signed: '%s' with signature '%s'",
                  urlString.data(), strSignature.data() );
}
开发者ID:,项目名称:,代码行数:26,代码来源:

示例2: isUrlSigned

UtlBoolean SignedUrl::isUrlSigned( Url& signedUrl )
{
    UtlBoolean bUrlProperlySigned;
    UtlString existingUrlSignature;
    UtlString urlString;

    signedUrl.toString( urlString );
    if( signedUrl.getUrlParameter( SignatureUrlParamName, existingUrlSignature ) == FALSE )
    {
        bUrlProperlySigned = FALSE;
        OsSysLog::add(FAC_SIP, PRI_DEBUG,
                      "SignedUrl::isUrlSigned URL '%s' not signed",
                      urlString.data() );
    }
    else
    {
        UtlString userInfo;
        UtlString hostPort;
        UtlString strReferenceSignature;

        signedUrl.getUserId( userInfo );
        signedUrl.getHostWithPort( hostPort );
        computeSignature( userInfo, hostPort, strReferenceSignature );

        if( strReferenceSignature.compareTo( existingUrlSignature ) == 0 )
        {
            bUrlProperlySigned = TRUE;
            OsSysLog::add(FAC_SIP, PRI_DEBUG,
                          "SignedUrl::isUrlSigned URL '%s' is properly signed",
                          urlString.data() );
        }
        else
        {
            bUrlProperlySigned = FALSE;
            OsSysLog::add(FAC_SIP, PRI_DEBUG,
                          "SignedUrl::isUrlSigned URL '%s' does not have a valid signature. "
                          "Expected signature: '%s'", urlString.data(), strReferenceSignature.data() );
        }
    }
    return bUrlProperlySigned;
}
开发者ID:,项目名称:,代码行数:41,代码来源:

示例3: target

AuthPlugin::AuthResult
MSFT_ExchangeTransferHack::authorizeAndModify(const UtlString& id,
                                              const Url&  requestUri,
                                              RouteState& routeState,
                                              const UtlString& method,
                                              AuthResult  priorResult,
                                              SipMessage& request,
                                              bool bSpiralingRequest,  
                                              UtlString&  reason
                                              )
{
   AuthResult result = CONTINUE; // we modify, but never make an authorization decision

   if (mUserAgentRegEx) // if not configured, do nothing
   {
      // get the call-id to use in logging
      UtlString callId;
      request.getCallIdField(&callId);

      /*
       * Note: a REFER from Exchange, with the bug we are hunting here, will always look like
       * it is tranferring to some foreign domain.  This will cause the TransferControl AuthPlugin
       * to ALLOW it.  If TransferControl starts challenging REFER from Exchange, that may mean
       * that MSFT has fixed the bug this plugin is meant to compensate for.
       */
      if (DENY != priorResult) // ignore anything some other plugin has already nixed
      {
         if (method.compareTo(SIP_REFER_METHOD) == 0) // we only care about REFER
         {
            UtlString userAgent;
            request.getUserAgentField( &userAgent );

            if (mUserAgentRegEx->Search(userAgent)) // does this look like Exchange?
            {
               UtlString targetStr;
               if (request.getReferToField(targetStr)) // get the address of the transfer target
               {
                  Url target(targetStr);
                  if (Url::SipUrlScheme == target.getScheme()) // target address parsed ok?
                  {
                     // check whether or not this is REFER with Replaces
                     UtlString targetDialog;
                     if (!target.getHeaderParameter(SIP_REPLACES_FIELD, targetDialog))
                     {
                        /*
                         * This is a REFER without Replaces from Exchange
                         * so check the domain parts of the two URIs to see if they match.
                         */

                        // Get the domain part of the transfer-target URI
                        UtlString targetDomain;
                        target.getHostWithPort(targetDomain);

                        // Get the domain part of the request URI
                        UtlString requestDomain;
                        requestUri.getHostWithPort(requestDomain);

                        if (targetDomain.compareTo(requestDomain, UtlString::ignoreCase) == 0)
                        {
                           // The domains are the same; this is the bug we're looking for...

                           UtlString correctDomain;
                           mpSipRouter->getDomain(correctDomain);
                           target.setHostAddress(correctDomain);
                           target.setHostPort(PORT_NONE);

                           UtlString modifiedTarget;
                           target.toString(modifiedTarget);
                           request.setReferToField(modifiedTarget.data());

                           Os::Logger::instance().log(FAC_AUTH, PRI_INFO,
                                         "MSFT_ExchangeTransferHack[%s]::authorizeAndModify "
                                         "corrected transfer target domain in call '%s'\n"
                                         "changed '@%s' -> '@%s'",
                                         mInstanceName.data(), callId.data(),
                                         targetDomain.data(), correctDomain.data()
                                         );
                        }
                        else
                        {
                           // oh my god... did MSFT fix Exchange?
                           Os::Logger::instance().log(FAC_AUTH, PRI_DEBUG,
                                         "MSFT_ExchangeTransferHack[%s]::authorizeAndModify "
                                         "request and target domain differ in '%s'; not modified",
                                         mInstanceName.data(), callId.data()
                                         );
                        }
                     }
                     else
                     {
                        // This is a REFER with Replaces from Exchange
                        // I don't expect this to happen, but if it does then don't mess with it.
                        Os::Logger::instance().log(FAC_AUTH, PRI_INFO,
                                      "MSFT_ExchangeTransferHack[%s]::authorizeAndModify "
                                      "allowing REFER with Replaces in call '%s' to '%s'; no action",
                                      mInstanceName.data(), callId.data(), targetDialog.data()
                                      );
                     }
                  }
                  else
//.........这里部分代码省略.........
开发者ID:ATHLSolutions,项目名称:sipxecs,代码行数:101,代码来源:MSFT_ExchangeTransferHack.cpp

示例4: originalFromUrl


//.........这里部分代码省略.........
               break;
            }

            /*
             * Determine whether the identity is one for which this proxy
             * is authoritative; if not, we will not use wildcard matches.
             */
            bool identityIsLocal = mpSipRouter->isLocalDomain(fromUrl);
            
            // now we have callerIdentity set; use for looking up each contact.
            Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
                          "CallerAlias[%s]::check4andApplyAlias "
                          "\n  caller '%s' %s",
                          mInstanceName.data(),
                          callerIdentity.data(),
                          identityIsLocal ? "is local" : "is not local"
                          );

            /*
             * Examine the request URI,
             * checking for a caller alias set for its domain(including asssociated gateway sipxecsLineid)  with callerIdentity
             */

            UtlString sipxecsLineIdField;
            requestUri.getUrlParameter(SIPX_SIPXECS_LINEID_URI_PARAM, sipxecsLineIdField);

            Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
                             "getUrlParameter: sipxecsLineid[%s]"
                             " in CallerAlias",
                             sipxecsLineIdField.data()
                             );

            UtlString targetDomain;
            requestUri.getHostWithPort(targetDomain);

            if (!(sipxecsLineIdField.isNull()))
            {
                targetDomain.append(";").append(SIPX_SIPXECS_LINEID_URI_PARAM).append("=").append(sipxecsLineIdField.data());
            }

            Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
                          "CallerAlias::targetDomain [%s]",
                          targetDomain.data()
                          );

            // look up any caller alias for this identity and contact domain
            UtlString callerAlias;
            if (identityIsLocal && getCallerAlias(callerIdentity, targetDomain, callerAlias) )
            {
               // found a caller alias, so rewrite the From information
               /*
                * The From header requires special handling
                * - we need to preserve the tag, if any, from the original header
                */
               originalFromUrl.getFieldParameter("tag", originalFromTag);

               Url newFromUrl(callerAlias.data());
               newFromUrl.removeFieldParameter("tag"); // specifying a tag is a no-no
               if ( !originalFromTag.isNull() )
               {
                  newFromUrl.setFieldParameter("tag", originalFromTag.data());
               }
               UtlString newFromFieldValue;
               newFromUrl.toString(newFromFieldValue);
                   
               // log the change we are making before stripping the tag from the field values
开发者ID:ciuc,项目名称:sipxecs,代码行数:67,代码来源:CallerAlias.cpp


注:本文中的Url::getHostWithPort方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。