Example #1
0
static size_t curlHeaderCallback(void *ptr, size_t size, size_t nmemb, void *opaque)
{
    Hashtable<String,String>* pHeaders = (Hashtable<String,String>*)opaque;
    size_t nBytes = size*nmemb;
    String strHeader((const char *)ptr, nBytes);
    RAWTRACE1("Received header: %s", strHeader.c_str());
    
    int nSep = strHeader.find(':');
    if (nSep > 0 )
    {		
        String strName = String_trim(strHeader.substr(0, nSep));
        String lName;
        std::transform(strName.begin(), strName.end(), std::back_inserter(lName), &::tolower);
        
        String strValue = String_trim(strHeader.substr(nSep+1, strHeader.length() - (nSep+3) ));
        
        if ( pHeaders->containsKey(lName) )
        {
            strValue += ";" + pHeaders->get( lName );
            pHeaders->put( lName, strValue );
        }
        else
            pHeaders->put(lName, strValue);
    }
    
    return nBytes;
}
Example #2
0
std::string CHttpHeader::GetHeader(void) const
{
  std::string strHeader(m_protoLine + '\n');

  for (HeaderParams::const_iterator iter = m_params.begin(); iter != m_params.end(); ++iter)
    strHeader += ((*iter).first + ": " + (*iter).second + "\n");

  strHeader += "\n";
  return strHeader;
}
Example #3
0
std::string ChatMessage::getMsgString()
{
	unsigned short usMsg[4];
	usMsg[0] = MT_ChatMessage;
	usMsg[1] = getBodyLength();
	usMsg[2] = ((unsigned short*)&m_uiUserID)[0]; // TODO: this seems unnessecary
	usMsg[3] = ((unsigned short*)&m_uiUserID)[1];

	std::string strHeader( (char*)usMsg, 8 );

	return strHeader+m_strMessage;
}
std::string ccMongooseWebServerRequest::GetHeader(const std::string& name)
{
    if (_pMgHttpMessage == NULL)
        return _strNullData;

    struct mg_str* pResult = mg_get_http_header(_pMgHttpMessage, name.c_str());

    if (pResult == NULL)
        return _strNullData;

    std::string strHeader(pResult->p, pResult->len);

    return strHeader;
}
void UINetworkManagerIndicator::updateAppearance()
{
    /* First of all, we are hiding LED in case of 'idle' state: */
    if (state() == UINetworkManagerIndicatorState_Idle && !isHidden())
        hide();

    /* Prepare description: */
    QString strDecription;
    /* Check if there are any network-requests: */
    if (!m_ids.isEmpty())
    {
        /* Prepare table: */
        QString strTable("<table>%1</table>");
        QString strBodyItem("<tr><td>%1</td><td>&nbsp;</td><td>%2</td></tr>");
        QString strParagraph("<p>%1</p>");
        QString strBoldNobreak("<nobr><b>%1</b></nobr>");
        QString strNobreak("<nobr>%1</nobr>");
        QString strItalic("<i>%1</i>");
        /* Prepare header: */
        QString strHeader(strBoldNobreak.arg(tr("Current network operations:")));
        /* Prepare table body: */
        QString strBody;
        for (int i = 0; i < m_data.size(); ++i)
        {
            const UINetworkRequestData &data = m_data[i];
            const QString &strDescription = data.description;
            QString strStatus(data.failed ? tr("failed", "network operation") :
                                            tr("(%1 of %2)")
                                               .arg(vboxGlobal().formatSize(data.bytesReceived))
                                               .arg(vboxGlobal().formatSize(data.bytesTotal)));
            QString strBodyLine(strBodyItem.arg(strNobreak.arg(strDescription)).arg(strNobreak.arg(strStatus)));
            strBody += strBodyLine;
        }
        /* Compose description: */
        strDecription = strParagraph.arg(strHeader + strTable.arg(strBody)) +
                        strParagraph.arg(strNobreak.arg(strItalic.arg(tr("Double-click for more information."))));
    }
    else
        strDecription = QString();
    /* Set description: */
    setToolTip(strDecription);

    /* Finally, we are showing LED in case of state is not 'idle': */
    if (state() != UINetworkManagerIndicatorState_Idle && isHidden())
        show();
}
Example #6
0
void UIItemNetworkNAT::updateInfo()
{
    /* Compose item name/tool-tip: */
    QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    QString strSubHeader("<tr><td><nobr>&nbsp;&nbsp;%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    QString strToolTip;

    /* Item name was not changed: */
    setCheckState(0, m_data.m_fEnabled ? Qt::Checked : Qt::Unchecked);
    if (m_data.m_strNewName == m_data.m_strName)
    {
        /* Just use the old one: */
        setText(1, m_data.m_strName);
        strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network Name"), m_data.m_strName);
    }
    /* If name was changed: */
    else
    {
        /* We should explain that: */
        const QString oldName = m_data.m_strName;
        const QString newName = m_data.m_strNewName.isEmpty() ? UIGlobalSettingsNetwork::tr("[empty]") : m_data.m_strNewName;
        setText(1, UIGlobalSettingsNetwork::tr("%1 (renamed from %2)").arg(newName, oldName));
        strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Old Network Name"), m_data.m_strName);
        strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("New Network Name"), m_data.m_strNewName);
    }

    /* Other tool-tip information: */
    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Network CIDR"), m_data.m_strCIDR);
    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports DHCP"),
                                m_data.m_fSupportsDHCP ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));
    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Supports IPv6"),
                                m_data.m_fSupportsIPv6 ? UIGlobalSettingsNetwork::tr("yes") : UIGlobalSettingsNetwork::tr("no"));
    if (m_data.m_fSupportsIPv6 && m_data.m_fAdvertiseDefaultIPv6Route)
        strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Default IPv6 route"), UIGlobalSettingsNetwork::tr("yes"));

    /* Assign tool-tip finally: */
    setToolTip(1, strToolTip);
}
Example #7
0
std::string
Simbox::getStormHeader(int cubetype, int nx, int ny, int nz, bool flat, bool ascii) const
{
  if(flat == false)
    assert(topName_ != "");
  std::string header;
  if(ascii == false)
    header = "storm_petro_binary\n";
  else
    header = "storm_petro_ascii\n";

  header += "0 "+NRLib::ToString(cubetype) +" "+ NRLib::ToString(RMISSING,6)+"\n";
  header += "FFTGrid\n";
  if(flat == false)
    header += NRLib::ToString(GetXMin(),6) +" "+ NRLib::ToString(GetLX(),6) +" "+ NRLib::ToString(GetYMin(),6) +" "+ NRLib::ToString(GetLY(),6) +" "+ topName_ +" "+ botName_ +" 0.0 0.0\n";
  else
    header += NRLib::ToString(GetXMin(),6) +" "+ NRLib::ToString(GetLX(),6) +" "+ NRLib::ToString(GetYMin(),6) +" "+ NRLib::ToString(GetLY(),6) +" 0.0 "+ NRLib::ToString(GetLZ(),6)+" 0.0 0.0\n";

  header += NRLib::ToString(GetLZ(),6) +" "+ NRLib::ToString(GetAngle()*180/NRLib::Pi,6)+"\n\n";
  header += NRLib::ToString(nx) +" "+ NRLib::ToString(ny) +" "+ NRLib::ToString(nz)+"\n";
  std::string strHeader(header);

  return(strHeader);
}
Example #8
0
void UIItemNetworkHost::updateInfo()
{
    /* Compose item name/tool-tip: */
    setText(0, m_data.m_interface.m_strName);
    QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    QString strSubHeader("<tr><td><nobr>&nbsp;&nbsp;%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    QString strToolTip;

    /* Host interface information: */
    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("Adapter"))
                           .arg(m_data.m_interface.m_fDhcpClientEnabled ?
                                UIGlobalSettingsNetwork::tr("Automatically configured", "interface") :
                                UIGlobalSettingsNetwork::tr("Manually configured", "interface"));
    if (!m_data.m_interface.m_fDhcpClientEnabled)
    {
        strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Address"))
                                  .arg(m_data.m_interface.m_strInterfaceAddress.isEmpty() ?
                                       UIGlobalSettingsNetwork::tr ("Not set", "address") :
                                       m_data.m_interface.m_strInterfaceAddress) +
                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Network Mask"))
                                  .arg(m_data.m_interface.m_strInterfaceMask.isEmpty() ?
                                       UIGlobalSettingsNetwork::tr ("Not set", "mask") :
                                       m_data.m_interface.m_strInterfaceMask);
        if (m_data.m_interface.m_fIpv6Supported)
        {
            strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Address"))
                                      .arg(m_data.m_interface.m_strInterfaceAddress6.isEmpty() ?
                                           UIGlobalSettingsNetwork::tr("Not set", "address") :
                                           m_data.m_interface.m_strInterfaceAddress6) +
                          strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Network Mask Length"))
                                      .arg(m_data.m_interface.m_strInterfaceMaskLength6.isEmpty() ?
                                           UIGlobalSettingsNetwork::tr("Not set", "length") :
                                           m_data.m_interface.m_strInterfaceMaskLength6);
        }
    }

    /* DHCP server information: */
    strToolTip += strHeader.arg(UIGlobalSettingsNetwork::tr("DHCP Server"))
                           .arg(m_data.m_dhcpserver.m_fDhcpServerEnabled ?
                                UIGlobalSettingsNetwork::tr("Enabled", "server") :
                                UIGlobalSettingsNetwork::tr("Disabled", "server"));
    if (m_data.m_dhcpserver.m_fDhcpServerEnabled)
    {
        strToolTip += strSubHeader.arg(UIGlobalSettingsNetwork::tr("Address"))
                                  .arg(m_data.m_dhcpserver.m_strDhcpServerAddress.isEmpty() ?
                                       UIGlobalSettingsNetwork::tr("Not set", "address") :
                                       m_data.m_dhcpserver.m_strDhcpServerAddress) +
                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("Network Mask"))
                                  .arg(m_data.m_dhcpserver.m_strDhcpServerMask.isEmpty() ?
                                       UIGlobalSettingsNetwork::tr("Not set", "mask") :
                                       m_data.m_dhcpserver.m_strDhcpServerMask) +
                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("Lower Bound"))
                                  .arg(m_data.m_dhcpserver.m_strDhcpLowerAddress.isEmpty() ?
                                       UIGlobalSettingsNetwork::tr("Not set", "bound") :
                                       m_data.m_dhcpserver.m_strDhcpLowerAddress) +
                      strSubHeader.arg(UIGlobalSettingsNetwork::tr("Upper Bound"))
                                  .arg(m_data.m_dhcpserver.m_strDhcpUpperAddress.isEmpty() ?
                                       UIGlobalSettingsNetwork::tr("Not set", "bound") :
                                       m_data.m_dhcpserver.m_strDhcpUpperAddress);
    }

    /* Assign tool-tip finally: */
    setToolTip(0, strToolTip);
}
HRESULT OpenURL(HWND hWnd)
{
    HRESULT hr = S_OK;
    INT_PTR ret = DialogBox(hInst, MAKEINTRESOURCE(IDD_OPENURL), hWnd, OpenURLDlgProc);
    if (LOWORD(ret) == IDCANCEL)
    {
        return E_FAIL;
    }
    InvalidateRect(hWnd, NULL, TRUE);

    WCHAR wcDomain[MAX_URL_LENGTH] = {0};
    DWORD cchDecodeUrl = 0;
    CoInternetParseUrl(g_wcURL, PARSE_DOMAIN, 0, wcDomain, MAX_URL_LENGTH, &cchDecodeUrl, 0);

    //int nbytes = WideCharToMultiByte(0, 0, g_szURL, nLength, NULL, 0, NULL, NULL);
    ZeroMemory(g_acURL, MAX_URL_LENGTH);
    WideCharToMultiByte(0, 0, g_wcURL, wcslen(g_wcURL), g_acURL, wcslen(g_wcURL), NULL, NULL);
    
    ZeroMemory(g_acDomain, MAX_URL_LENGTH);
    //nbytes = WideCharToMultiByte(0, 0, szDomain, wcslen(szDomain), NULL, 0, NULL, NULL);
    WideCharToMultiByte(0, 0, wcDomain, wcslen(wcDomain), g_acDomain, wcslen(wcDomain), NULL, NULL);
    
    char sendBuff[DEFAULT_BUFFER_LENGTH] = {0};
    sprintf_s(sendBuff, DEFAULT_BUFFER_LENGTH,
        "HEAD %s HTTP/1.1\r\n" \
        "Host: %s\r\n" \
        "Proxy-Connection: keep-alive\r\n" \
        "Proxy-Authorization: Basic ***********\r\n" \
        "Accept: */*\r\n" \
        "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36\r\n\r\n",
        strstr(g_acURL, g_acDomain)+strlen(g_acDomain), g_acDomain);

    int iResult = 0;
    ADDRINFOW* result = NULL;
    ADDRINFOW* ptr = NULL;
    ADDRINFOW hints;
    ZeroMemory(&hints, sizeof(hints));
    hints.ai_family = AF_UNSPEC;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = IPPROTO_TCP;
    WCHAR* strProxyURL = L"test.proxy.com";
    WCHAR* strProxyPort = L"8080";

    iResult = GetAddrInfo(strProxyURL, strProxyPort, &hints, &result);
    if (iResult != 0)
    {
        ICSE_OUTPUTDEBUGSTRING_W(L"getaddrinfo failed: %d", iResult);
        return E_FAIL;
    }

    SOCKET connectSocket = INVALID_SOCKET;
    ptr = result;
    connectSocket = socket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol);
    if (connectSocket == INVALID_SOCKET)
    {
        ICSE_OUTPUTDEBUGSTRING_W(L"socket failed: %ld\n", WSAGetLastError());
        FreeAddrInfo(result);
        return E_FAIL;
    }

    int value = 0;
    int size = sizeof(value);
    iResult = getsockopt(connectSocket, SOL_SOCKET, SO_RCVBUF, (char*)&value, &size);

    iResult = connect(connectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
    FreeAddrInfo(result);
    if (iResult == SOCKET_ERROR)
    {
        ICSE_OUTPUTDEBUGSTRING_W(L"connect failed: %d", iResult);
        closesocket(connectSocket);
        return E_FAIL;
    }


    char recvBuff[DEFAULT_BUFFER_LENGTH] = {0};
    iResult = send(connectSocket, sendBuff, (int)strlen(sendBuff), 0);
    if (iResult == SOCKET_ERROR)
    {
        ICSE_OUTPUTDEBUGSTRING_W(L"send failed: %d", WSAGetLastError());
        closesocket(connectSocket);
        return E_FAIL;
    }

    iResult = shutdown(connectSocket, SD_SEND);
    if (iResult == SOCKET_ERROR)
    {
        ICSE_OUTPUTDEBUGSTRING_W(L"shutdown failed %d", WSAGetLastError());
        closesocket(connectSocket);
        return E_FAIL;
    }

    CStringA strHeader("");
    do
    {
        iResult = recv(connectSocket, recvBuff, DEFAULT_BUFFER_LENGTH, 0);
        if (iResult > 0)
        {
            strHeader += recvBuff;
        }
        else if (iResult == 0)
        {
            ICSE_OUTPUTDEBUGSTRING_W(L"Connection closed");
        }
        else
        {
            ICSE_OUTPUTDEBUGSTRING_W(L"recv failed %d", WSAGetLastError());
        }
    } while (iResult > 0);

    if (strHeader.GetLength() > 0)
    {
        int begin = strHeader.Find("Content-Length: ");
        int end = strHeader.Find("\r\n", begin);
        CStringA strLength = strHeader.Mid(begin + 16, end - begin - 16);
        __int64 length = _atoi64(strLength);
        ICSE_OUTPUTDEBUGSTRING_W(L"content length: %I64d", length);

        HANDLE hFile = ::CreateFile(g_wcFile, GENERIC_READ|GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
        DWORD dwTemp = 0;
        ::DeviceIoControl(hFile, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &dwTemp, NULL);
        CloseHandle(hFile);

        __int64 segmentLength = length / g_factor;
        for (int i = 0; i < g_factor; i++)
        {
            g_segmentMatrix[i][0] = i * segmentLength;
            g_segmentMatrix[i][1] = g_segmentMatrix[i][0] + segmentLength - 1;
            length -= segmentLength;
        }
        g_segmentMatrix[g_factor-1][1] += length;

        for (int i = 0; i < g_factor; i++)
        {
            _beginthread(ThreadProc, 0, (void*)i);
        }
    }

    closesocket(connectSocket);
    return hr;
}
Example #10
0
/************************************************************
* 功能		: 保存内容到指定文件
* 输入		: 文件名
* 返回值	: void
*************************************************************/
bool CreatModel::saveFile(QString fileName)
{
	QFile file( fileName );  
	if( !file.open(QIODevice::WriteOnly | QIODevice::Text) )  
	{  
		return false;   
	}  

	QString sName = ledit_modelName->text();
	QString sId = ledit_modelId->text();
	QString sVersion = ledit_version->text();
	QString sSubject = ledit_subject->text();
	QString sType = combox_type->currentText();
	QString sProperty = combox_property->currentText();
	QString sGroup = combox_group->currentText();
	QString sDescription = ledit_descript->text();
	QString sLog = tedit_log->toPlainText();
	QString sAuthor = ledit_author->text();
	QString sUpdate = date_update->text();

	QDomDocument document; 
	QString strHeader( "version=\"1.0\" encoding=\"UTF-8\"" );  
	document.appendChild( document.createProcessingInstruction("xml", strHeader) );  

	QDomElement root_elem = document.createElement( "project" );  
	root_elem.setAttribute( "name", sName );  
	root_elem.setAttribute( "id", sId );  
	root_elem.setAttribute( "version", sVersion );  
	root_elem.setAttribute( "subject", sSubject ); 
	root_elem.setAttribute( "type", sType );  
	root_elem.setAttribute( "property", sProperty );  
	root_elem.setAttribute( "group", sGroup );  
	root_elem.setAttribute( "description", sDescription ); 
	root_elem.setAttribute( "log", sLog );  
	root_elem.setAttribute( "author", sAuthor );  
	root_elem.setAttribute( "update_date", sUpdate ); 
	document.appendChild(root_elem);

	//读取tableView中的信息  将信息保存
	if (m_flag == 0)
	{
		QDomElement itemFile = document.createElement( "file" );  
		itemFile.setAttribute( "name", "" ); 
		itemFile.setAttribute( "description", "" );  
		itemFile.setAttribute( "path", "" );  
		root_elem.appendChild( itemFile );
	}
	else
	{
		for (int i = 0; i < m_flag; i++)
		{
			QString sfileName = m_infos->item(i, 0)->text();
			QString sfileDescript = m_infos->item(i, 1)->text();
			QString sfilePath = m_infos->item(i, 2)->text();

			QDomElement itemFile = document.createElement( "file" );  
			itemFile.setAttribute( "name", sfileName ); 
			itemFile.setAttribute( "description", sfileDescript );  
			itemFile.setAttribute( "path", sfilePath );  
			root_elem.appendChild( itemFile );
		}
	}
	QTextStream out( &file );  
	document.save( out, 4 );  
	file.close();  
	QMessageBox::information(this, "模型管理封装工具", "文件保存成功!");
	return true;
}
Example #11
0
bool CWebSocketV8::Handshake(const char* data, size_t length, std::string &response)
{
  std::string strHeader(data, length);
  const char *value;
  HttpParser header;
  if (header.addBytes(data, length) != HttpParser::Done)
  {
    CLog::Log(LOGINFO, "WebSocket [hybi-10]: incomplete handshake received");
    return false;
  }

  // The request must be GET
  value = header.getMethod();
  if (value == NULL || strnicmp(value, WS_HTTP_METHOD, strlen(WS_HTTP_METHOD)) != 0)
  {
    CLog::Log(LOGINFO, "WebSocket [hybi-10]: invalid HTTP method received (GET expected)");
    return false;
  }

  // The request must be HTTP/1.1 or higher
  size_t pos;
  if ((pos = strHeader.find(WS_HTTP_TAG)) == std::string::npos)
  {
    CLog::Log(LOGINFO, "WebSocket [hybi-10]: invalid handshake received");
    return false;
  }

  pos += strlen(WS_HTTP_TAG);
  std::istringstream converter(strHeader.substr(pos, strHeader.find_first_of(" \r\n\t", pos) - pos));
  float fVersion;
  converter >> fVersion;

  if (fVersion < 1.1f)
  {
    CLog::Log(LOGINFO, "WebSocket [hybi-10]: invalid HTTP version %f (1.1 or higher expected)", fVersion);
    return false;
  }

  std::string websocketKey, websocketProtocol;
  // There must be a "Host" header
  value = header.getValue("host");
  if (value == NULL || strlen(value) == 0)
  {
    CLog::Log(LOGINFO, "WebSocket [hybi-10]: \"Host\" header missing");
    return true;
  }

  // There must be a base64 encoded 16 byte (=> 24 byte as base64) "Sec-WebSocket-Key" header
  value = header.getValue(WS_HEADER_KEY_LC);
  if (value == NULL || (websocketKey = value).size() != 24)
  {
    CLog::Log(LOGINFO, "WebSocket [hybi-10]: invalid \"Sec-WebSocket-Key\" received");
    return true;
  }

  // There might be a "Sec-WebSocket-Protocol" header
  value = header.getValue(WS_HEADER_PROTOCOL_LC);
  if (value && strlen(value) > 0)
  {
    std::vector<std::string> protocols = StringUtils::Split(value, ",");
    for (std::vector<std::string>::iterator protocol = protocols.begin(); protocol != protocols.end(); ++protocol)
    {
      StringUtils::Trim(*protocol);
      if (*protocol == WS_PROTOCOL_JSONRPC)
      {
        websocketProtocol = WS_PROTOCOL_JSONRPC;
        break;
      }
    }
  }

  CHttpResponse httpResponse(HTTP::Get, HTTP::SwitchingProtocols, HTTP::Version1_1);
  httpResponse.AddHeader(WS_HEADER_UPGRADE, WS_HEADER_UPGRADE_VALUE);
  httpResponse.AddHeader(WS_HEADER_CONNECTION, WS_HEADER_UPGRADE);
  httpResponse.AddHeader(WS_HEADER_ACCEPT, calculateKey(websocketKey));
  if (!websocketProtocol.empty())
    httpResponse.AddHeader(WS_HEADER_PROTOCOL, websocketProtocol);

  char *responseBuffer;
  int responseLength = httpResponse.Create(responseBuffer);
  response = std::string(responseBuffer, responseLength);
  
  m_state = WebSocketStateConnected;

  return true;
}
Example #12
0
void CIO::readPdbFile(const string& strPdbFile, const int& iPdbFormat, const bool& bPdbUnformatIn,
                      const vector<string>& strCommPDB)
{
    if (CommPDB == iPdbFormat) {
        
        bExistRadiiInfo = true;
        bool bPostProcess = true;
        vctfMediaEps.push_back(0.0); // medeps(0)
        
        commVecPDB(strCommPDB);
        
        iAtomNum = vctapAtomPdb.size();
        
        if (bPostProcess)
        {
            if (0 == vctfMediaEps.size()) vctfMediaEps.push_back(0.0); // medeps(0)
            
            cout << "You are not reading from an object file! \n";
            cout << "Assuming having only molecules, and one medium \n";
            
            vctfMediaEps.push_back(fDielec/fEPKT); // medeps(1)=repsin/epkt
            // dataobject(1,1) and dataobject(1,2)
            vctstrObject.push_back(string("is a molecule    0"));
            vctstrObject.push_back(string(" "));
            prgiObjectMediaNum.push_back(iObjectMediaNum);
        }
        
        iObjectNum = vctstrObject.size()/2;
        iMediaNum  = vctfMediaEps.size()-1;
        
        // regardless of being a molecule or not, iatmmed has a field to say which is its medium
        if (0 != prgiObjectMediaNum.size())
        {
            for (unsigned i=0; i < prgiObjectMediaNum.size(); i++)
                vctiAtomMediaNum.push_back(prgiObjectMediaNum[i]);
            
            prgiObjectMediaNum.clear();
        }
    }
    
    else
    {
      bExistRadiiInfo = false; // iatrad, whether there is radius info
       
      ifstream ifPdbFileStream;
   
      ifPdbFileStream.open(strPdbFile.c_str());
           
      if (!ifPdbFileStream.is_open()) throw CUnknownIOFile(strPdbFile);
        
      bool bPostProcess = true;
      
      int iFormatID = 0; // idfrm 
   
      if(!bPdbUnformatIn) // ---------- formatted pdb file ---------- //
      {
         string strLine, strSubLine, strHeader;  
     
         cout << "\nopening formatted file: " << strPdbFile << endl;
              
         // Now only delphi mod type pdb files have keyword "DELPHI PDB", other pdb files
         // such as standard, mod4 and pqr pdb files do not check the keyword any more 
         if (MODPDB == iPdbFormat) // mod pdb file
         {
            getline(ifPdbFileStream,strLine); // read the 1st line
            string strHeadFirst = strLine.substr(0,6); 
            strHeadFirst = removeSpace(strHeadFirst);
            strHeadFirst = toUpperCase(strHeadFirst);
            if (0 == strHeadFirst.compare(0,5,"MEDIA")) bPostProcess = false;
            
            if (string::npos != strLine.find("DELPHI")) // find keyword "DELPHI"
            {      
               if (string::npos == strLine.find("PDB")) // no keyword "PDB" is found
                  throw CUnknownDelphiPdb(strPdbFile);        
         
               cout << "Reading a Delphi-style pdb file \n";      
               
               getline(ifPdbFileStream,strLine); // read the 2nd line            
   
               size_t found = strLine.find_first_of('='); 
               strSubLine = strLine.substr(found+1,strLine.size()-found-1);
               strSubLine = removeSpace(strSubLine);
               iFormatID = atoi(strSubLine.c_str());
               
               cout << "Read Delphi Format Number = " << iFormatID << endl;  
               
               if (1 != iFormatID && 4 != iFormatID) 
                  throw CUnknownModPdb(strPdbFile,iFormatID);
            }
         }
         else
         {
   
            ifPdbFileStream.clear(); ifPdbFileStream.seekg(0); // rewind   
            cout << "No DELPHI keyword, assuming Delphi Format number = " << iFormatID << endl;
         
         }
   
          
          
         if (STDPDB == iPdbFormat) bExistRadiiInfo = false; // standard pdb
         else                      bExistRadiiInfo = true;  // others                  
   
         // medeps(0:nmediamax)
         vctfMediaEps.push_back(0.0); // medeps(0)
   
         switch (iPdbFormat)
         {
            case STDPDB: // standard pdb
               readStdPdbFile(ifPdbFileStream);
               break;
            case MODPDB: // mod pdb    
               if (1 == iFormatID) readModFile1(ifPdbFileStream);
               else readModFile4(ifPdbFileStream); // 4 == iFormatID    
               break;
            case PQRPDB: // pqr pdb
               readPqrFile(ifPdbFileStream);   
               break;      
            case MOD4PDB: // mod4 pdb
               readMod4File(ifPdbFileStream);  
               break;       
            case PQR4PDB: // pqr4 pdb
               readPqr4File(ifPdbFileStream);
               break;
         }
   
         iAtomNum = vctapAtomPdb.size();
         cout << "number of atoms read in = " << iAtomNum << " formatted \n";
      }   
      else // ---------- unformatted pdb file ---------- //
      {
         int iUnformatID = 0;  // idfrm  
             
         char cLine[80]; // line
         
         bExistRadiiInfo = true;
   
         ifPdbFileStream.read(cLine,80); // header
      
         string strHeader(cLine); // string to be converted from cLine for simpler manipulation
      
         if (string::npos != strHeader.find("DELPHI")) // find keyword "DELPHI"
         {      
            if (string::npos == strHeader.find("PDB")) // no keyword "PDB" is found
               throw CUnknownDelphiPdb(strPdbFile);        
         
            cout << "Reading a Delphi-style pdb file \n";  
         }
      
         ifPdbFileStream.read( reinterpret_cast<char*>(&iUnformatID), sizeof(int) ); // idfrm
         
         if (0 != iUnformatID && 1 != iUnformatID) throw CUnknownUnformattedPdb(strPdbFile); 
         
         readUnformattedPdb(strPdbFile,ifPdbFileStream,bPostProcess); 
      }
           
   #ifdef DEBUG_IO_PDB
      printPDB();
   #endif
   
      // Some post-processing
      if (bPostProcess) 
      {
         if (0 == vctfMediaEps.size()) vctfMediaEps.push_back(0.0); // medeps(0)
   
         cout << "You are not reading from an object file! \n";
         cout << "Assuming having only molecules, and one medium \n";
      
         vctfMediaEps.push_back(fDielec/fEPKT); // medeps(1)=repsin/epkt
         // dataobject(1,1) and dataobject(1,2)
         vctstrObject.push_back(string("is a molecule    0"));
         vctstrObject.push_back(string(" "));
         prgiObjectMediaNum.push_back(iObjectMediaNum);
      }
   
      iObjectNum = vctstrObject.size()/2;
      iMediaNum  = vctfMediaEps.size()-1;
   
      // regardless of being a molecule or not, iatmmed has a field to say which is its medium
      if (0 != prgiObjectMediaNum.size())
      {
         for (unsigned i=0; i < prgiObjectMediaNum.size(); i++)
            vctiAtomMediaNum.push_back(prgiObjectMediaNum[i]);
   
         prgiObjectMediaNum.clear();
      }
      
      ifPdbFileStream.close();
    }
   
}
Example #13
0
QString UIHostInterfaceItem::updateInfo()
{
    /* Update text: */
    setText(0, m_data.m_interface.m_strName);

    /* Update information label: */
    QString strHeader("<tr><td><nobr>%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    QString strSubHeader("<tr><td><nobr>&nbsp;&nbsp;%1:&nbsp;</nobr></td><td><nobr>%2</nobr></td></tr>");
    QString strData, strToolTip, strBuffer;

    /* Host-only interface information: */
    strBuffer = strHeader.arg(UIGlobalSettingsNetwork::tr("Adapter"))
                .arg(m_data.m_interface.m_fDhcpClientEnabled ? UIGlobalSettingsNetwork::tr("Automatically configured", "interface")
                                                             : UIGlobalSettingsNetwork::tr("Manually configured", "interface"));
    strData += strBuffer;
    strToolTip += strBuffer;
    if (!m_data.m_interface.m_fDhcpClientEnabled)
    {
        strBuffer = strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Address"))
                                .arg(m_data.m_interface.m_strInterfaceAddress.isEmpty() ?
                                     UIGlobalSettingsNetwork::tr ("Not set", "address") :
                                     m_data.m_interface.m_strInterfaceAddress) +
                    strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv4 Network Mask"))
                                .arg(m_data.m_interface.m_strInterfaceMask.isEmpty() ?
                                     UIGlobalSettingsNetwork::tr ("Not set", "mask") :
                                     m_data.m_interface.m_strInterfaceMask);
        strToolTip += strBuffer;
        if (m_data.m_interface.m_fIpv6Supported)
        {
            strBuffer = strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Address"))
                                    .arg(m_data.m_interface.m_strInterfaceAddress6.isEmpty() ?
                                         UIGlobalSettingsNetwork::tr("Not set", "address") :
                                         m_data.m_interface.m_strInterfaceAddress6) +
                        strSubHeader.arg(UIGlobalSettingsNetwork::tr("IPv6 Network Mask Length"))
                                    .arg(m_data.m_interface.m_strInterfaceMaskLength6.isEmpty() ?
                                         UIGlobalSettingsNetwork::tr("Not set", "length") :
                                         m_data.m_interface.m_strInterfaceMaskLength6);
            strToolTip += strBuffer;
        }
    }

    /* DHCP server information: */
    strBuffer = strHeader.arg(UIGlobalSettingsNetwork::tr("DHCP Server"))
                         .arg(m_data.m_dhcpserver.m_fDhcpServerEnabled ?
                              UIGlobalSettingsNetwork::tr("Enabled", "server") :
                              UIGlobalSettingsNetwork::tr("Disabled", "server"));
    strData += strBuffer;
    strToolTip += strBuffer;
    if (m_data.m_dhcpserver.m_fDhcpServerEnabled)
    {
        strBuffer = strSubHeader.arg(UIGlobalSettingsNetwork::tr("Address"))
                                .arg(m_data.m_dhcpserver.m_strDhcpServerAddress.isEmpty() ?
                                     UIGlobalSettingsNetwork::tr("Not set", "address") :
                                     m_data.m_dhcpserver.m_strDhcpServerAddress) +
                    strSubHeader.arg(UIGlobalSettingsNetwork::tr("Network Mask"))
                                .arg(m_data.m_dhcpserver.m_strDhcpServerMask.isEmpty() ?
                                     UIGlobalSettingsNetwork::tr("Not set", "mask") :
                                     m_data.m_dhcpserver.m_strDhcpServerMask) +
                    strSubHeader.arg(UIGlobalSettingsNetwork::tr("Lower Bound"))
                                .arg(m_data.m_dhcpserver.m_strDhcpLowerAddress.isEmpty() ?
                                     UIGlobalSettingsNetwork::tr("Not set", "bound") :
                                     m_data.m_dhcpserver.m_strDhcpLowerAddress) +
                    strSubHeader.arg(UIGlobalSettingsNetwork::tr("Upper Bound"))
                                .arg(m_data.m_dhcpserver.m_strDhcpUpperAddress.isEmpty() ?
                                     UIGlobalSettingsNetwork::tr("Not set", "bound") :
                                     m_data.m_dhcpserver.m_strDhcpUpperAddress);
        strToolTip += strBuffer;
    }

    setToolTip(0, strToolTip);

    return QString("<table>") + strData + QString("</table>");
}
void CHttpRequest::RunResponse(HINTERNET hURL)
{
	DWORD nLength = 255;
	BYTE nNull = 0;
	
	if ( ! HttpQueryInfo( hURL, HTTP_QUERY_STATUS_TEXT,
		m_sStatusString.GetBuffer( nLength ), &nLength, 0 ) ) nLength = 0;
	m_sStatusString.ReleaseBuffer( nLength );
	if ( m_sStatusString.IsEmpty() ) return;
	
	if ( m_pResponse != NULL ) delete m_pResponse;
	m_pResponse = new CBuffer();
	
    DWORD nRemaining;
	for ( ; InternetQueryDataAvailable( hURL, &nRemaining, 0, 0 ) && nRemaining > 0 && ! m_bCancel ; )
	{
		m_pResponse->EnsureBuffer( nRemaining );
		if ( ! InternetReadFile( hURL, m_pResponse->m_pBuffer + m_pResponse->m_nLength,
			nRemaining, &nRemaining ) ) break;
		m_pResponse->m_nLength += nRemaining;
		if ( m_nLimit > 0 && m_pResponse->m_nLength > m_nLimit ) break;
	}
	
	if ( nRemaining > 0 ) return;
	
	nLength = 0;
	HttpQueryInfo( hURL, HTTP_QUERY_RAW_HEADERS, &nNull, &nLength, 0 );
	if ( nLength == 0 ) return;
	
	LPTSTR pszHeaders = new TCHAR[ nLength + 1 ];
	pszHeaders[0] = pszHeaders[1] = 0;
	HttpQueryInfo( hURL, HTTP_QUERY_RAW_HEADERS, pszHeaders, &nLength, 0 );
	
	for ( LPTSTR pszHeader = pszHeaders ; *pszHeader ; )
	{
		CString strHeader( pszHeader );
		pszHeader += strHeader.GetLength() + 1;
		
		int nColon = strHeader.Find( ':' );
		
		if ( nColon > 0 )
		{
			CString strValue, strName = strHeader.Left( nColon );
			strName.Trim(); 
			CharLower( strName.GetBuffer() );
			strName.ReleaseBuffer();
			
			while ( m_pResponseHeaders.Lookup( strName, strValue ) ) strName += _T('_');

			strValue = strHeader.Mid( nColon + 1 );
			strValue.Trim();
			m_pResponseHeaders.SetAt( strName, strValue );
		}
	}
	
	delete [] pszHeaders;
	
	nLength = 4;
	m_nStatusCode = 0;
	HttpQueryInfo( hURL, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,
		&m_nStatusCode, &nLength, 0 );
}
Example #15
0
LRESULT CMainDlg::OnBnClickedAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
    CWindow wndUrl = GetDlgItem(IDC_EDIT_URL);
    wndUrl.GetWindowText(strUrl);
    BOOL bDone = FALSE;
    HINTERNET hSession = NULL;
    HINTERNET hConnect = NULL;
    HINTERNET hRequest = NULL;

    do 
    {
        std::wstring strUserAgentW= _T("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
        hSession = ::InternetOpen(strUserAgentW.c_str(), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
        if (hSession)
        {

            TCHAR szDomain[MAX_PATH];
            INTERNET_PORT nServerPort = 0;
            if (!GetDomainAndPortFromUrl(strUrl, szDomain, nServerPort))
            {
                bDone = FALSE;
                break;
            }

            hConnect = InternetConnect(hSession,
                szDomain,
                nServerPort,
                NULL,
                NULL,
                INTERNET_SERVICE_HTTP,
                0,
                0);
            if (hConnect)
            {
                DWORD dwOpenRequestFlags = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP |  
                    INTERNET_FLAG_KEEP_CONNECTION |  
                    INTERNET_FLAG_NO_AUTH |  
                    INTERNET_FLAG_NO_UI |
                    INTERNET_FLAG_NO_COOKIES |
                    INTERNET_FLAG_IGNORE_CERT_CN_INVALID|
                    INTERNET_FLAG_IGNORE_CERT_DATE_INVALID; 
                if (nServerPort == INTERNET_DEFAULT_HTTPS_PORT)
                {
                    dwOpenRequestFlags |= INTERNET_FLAG_SECURE;
                }


                int nPos = strUrl.Find(szDomain, 0);
                strUrl = strUrl.Right(strUrl.GetLength() - nPos - wcslen(szDomain));

                hRequest = HttpOpenRequest(hConnect, NULL, strUrl, NULL,  
                    NULL, NULL,  
                    dwOpenRequestFlags, 0);
                LPCTSTR strContentType = L"Accept-Language:zh-CN";
                CString strHeader(strContentType);
                //strHeader.Format(strContentType, m_strCookies); 
                HttpAddRequestHeaders(hRequest,
                    strHeader,
                    strHeader.GetLength(),
                    HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE);  

                if (hRequest)
                {
                    BOOL bResult = HttpSendRequest(hRequest, NULL, 0, NULL, 0);  
                    if ( ! bResult && GetLastError() == ERROR_INTERNET_INVALID_CA )   
                    {  
                        DWORD dwFlags;  
                        DWORD dwBuffLen = sizeof(dwFlags);  
                        InternetQueryOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS, (LPVOID)&dwFlags, &dwBuffLen);  
                        dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;  
                        InternetSetOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof (dwFlags) ); 
                        bResult = HttpSendRequest(hRequest, NULL, 0, NULL, 0); 
                    }
                    if (bResult)
                    {
                        DWORD dwRetCode = 0;
                        WCHAR szRetCode[64] = {0};
                        DWORD dwSize = 64;
                        DWORD dwIndex = 0;
                        ::HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_CODE ,&szRetCode, &dwSize, &dwIndex);
                        dwRetCode = _tstol(szRetCode);
                        if (dwRetCode < HTTP_STATUS_BAD_REQUEST )
                        {
                            //获取文件名称
                            TCHAR szContentDisposition[512] = {0};
                            DWORD dwContentDispositionSize = 512;
                            dwIndex = 0;
                            if (::HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_DISPOSITION, szContentDisposition, &dwContentDispositionSize, &dwIndex))
                            {
                                //attachment; filename="a_log.zip"
                                CString strDisposistion = szContentDisposition;
                                GetDlgItem(IDC_EDIT_FILENAME).SetWindowText(strDisposistion);   
                                bDone = TRUE;
                            }
                        }

                        else
                        {
                            bDone = FALSE;
                            break;
                        }
                    }
                }
                else
                {
                    bDone =FALSE;
                    break;
                }
            }
            else
            {
                bDone = FALSE;
                break;
            }
        }
    } while (0);

    if (hRequest)
    {
        ::InternetCloseHandle(hRequest);
    }
    if (hConnect)
    {
        ::InternetCloseHandle(hConnect);
    }
    if (hSession)
    {
        ::InternetCloseHandle(hSession);
    }

    return 0;
}