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; }
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; }
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> </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(); }
void UIItemNetworkNAT::updateInfo() { /* Compose item name/tool-tip: */ QString strHeader("<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>"); QString strSubHeader("<tr><td><nobr> %1: </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); }
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); }
void UIItemNetworkHost::updateInfo() { /* Compose item name/tool-tip: */ setText(0, m_data.m_interface.m_strName); QString strHeader("<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>"); QString strSubHeader("<tr><td><nobr> %1: </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; }
/************************************************************ * 功能 : 保存内容到指定文件 * 输入 : 文件名 * 返回值 : 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; }
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; }
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(); } }
QString UIHostInterfaceItem::updateInfo() { /* Update text: */ setText(0, m_data.m_interface.m_strName); /* Update information label: */ QString strHeader("<tr><td><nobr>%1: </nobr></td><td><nobr>%2</nobr></td></tr>"); QString strSubHeader("<tr><td><nobr> %1: </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 ); }
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; }