ECode Proxy::GetProxy( /* [in] */ IContext* ctx, /* [in] */ const String& url, /* [out] */ Elastos::Net::IProxy** result) { VALIDATE_NOT_NULL(result) String host(""); if ((url != String(NULL)) && !IsLocalHost(host)) { AutoPtr<IURIHelper> helper; CURIHelper::AcquireSingleton((IURIHelper**)&helper); AutoPtr<IURI> uri; helper->Create(url, (IURI**)&uri); AutoPtr<IProxySelector> proxySelector; ProxySelector::GetDefault((IProxySelector**)&proxySelector); AutoPtr<IList> proxyList; proxySelector->Select(uri, (IList**)&proxyList); Int32 size; proxyList->GetSize(&size); if (size > 0) { AutoPtr<IInterface> obj; proxyList->Get(0, (IInterface**)&obj); *result = Elastos::Net::IProxy::Probe(obj); REFCOUNT_ADD(*result); return NOERROR; } } AutoPtr<Elastos::Net::IProxyHelper> helper; Elastos::Net::CProxyHelper::AcquireSingleton((Elastos::Net::IProxyHelper**)&helper); AutoPtr<Elastos::Net::IProxy> noPorxy; helper->GetNO_PROXY(result); return NOERROR; }
int CopyURL(HTTPSession *Session, char *From, char *To) { char *Tempstr=NULL, *Host=NULL, *PortStr=NULL, *FromPath=NULL, *ToPath=NULL, *User=NULL, *Password=NULL; int RetVal=EFAULT; STREAM *In=NULL, *Out=NULL; ParseURL(To, &Tempstr, &Host, &Tempstr, NULL, NULL, &ToPath, NULL); if ((access(ToPath,F_OK)==0) && (! (Session->Flags & SESSION_OVERWRITE))) RetVal=EEXIST; //If the TO Host is local if (IsLocalHost(Session,Host)) { ParseURL(From, &Tempstr, &Host, &PortStr, &User, &Password, &FromPath, NULL); if (! IsLocalHost(Session,Host)) { In=HTTPGet(From,User,Password); if (In) Out=STREAMOpenFile(ToPath,SF_CREAT|SF_WRONLY|SF_TRUNC); if (Out) RetVal=STREAMSendFile(In, Out, 0, SENDFILE_KERNEL | SENDFILE_LOOP); STREAMClose(In); STREAMClose(Out); } else RetVal=CopyLocalItem(FromPath, ToPath); } DestroyString(User); DestroyString(Password); DestroyString(Tempstr); DestroyString(Host); DestroyString(PortStr); DestroyString(FromPath); DestroyString(ToPath); return(RetVal); }
/** * Return the proxy object to be used for the URL given as parameter. * @param ctx A Context used to get the settings for the proxy host. * @param url A URL to be accessed. Used to evaluate exclusion list. * @return Proxy (java.net) object containing the host name. If the * user did not set a hostname it returns the default host. * A null value means that no host is to be used. * {@hide} */ ECode CProxy::GetProxy( /* [in] */ IContext* ctx, /* [in] */ const String& url, /* [out] */ Elastos::Net::IProxy** outProxy) { VALIDATE_NOT_NULL(outProxy); String host; if (!(url.IsNull())) { AutoPtr<IURI> uri; CURI::New((IURI**)&uri); if(uri != NULL) uri->GetHost(&host); } if (!IsLocalHost(host)) { if (mConnectivityManager == NULL) { ctx->GetSystemService(IContext::CONNECTIVITY_SERVICE, (IInterface**)&mConnectivityManager); } if (mConnectivityManager == NULL) { return proxyhelper->GetNO_PROXY(outProxy); } AutoPtr<IProxyProperties> proxyProperties; mConnectivityManager->GetProxy((IProxyProperties**)&proxyProperties); if (proxyProperties != NULL) { Boolean bol; proxyProperties->IsExcluded(host, &bol); if (!bol) { return proxyProperties->MakeProxy(outProxy); } } } return proxyhelper->GetNO_PROXY(outProxy); }
BOOL MySqlMem(const char * strParas, char * szReturn, int& nSize) { CString strReturn = "", strHost = _T(""), strUser = _T(""), //UserName strPwd = _T("");// Password CStringList paramList; MakeStringListByChar(paramList,strParas); POSITION pos = paramList.GetHeadPosition(); while(pos) { CString strTemp = paramList.GetNext(pos); if(strTemp.Find(__MACHINENAME__, 0) == 0) {//Get Host strHost = strTemp.Right(strTemp.GetLength() - (int)strlen(__MACHINENAME__)); } else if(strTemp.Find(__WINUSERACCOUNT__, 0) == 0) {//Get Username strUser = strTemp.Right(strTemp.GetLength() - (int)strlen(__WINUSERACCOUNT__)); } else if(strTemp.Find(__WINPASSWORD__, 0) == 0) {//Get password strPwd = strTemp.Right(strTemp.GetLength() - (int)strlen(__WINPASSWORD__)); } } //ofstream fout("mysqltest.txt",ios::app); //fout << strHost<< ","<<strUser<< ","<<strPwd<< ","<<"\r\n"; //fout << flush; //fout.close(); CoInitialize(NULL); try { WbemScripting::ISWbemLocatorPtr locator; locator.CreateInstance(WbemScripting::CLSID_SWbemLocator); if (locator != NULL) { WbemScripting::ISWbemServicesPtr services; if(IsLocalHost(strHost)) services = locator->ConnectServer(".","root\\cimv2","","","","",0,NULL); else services = locator->ConnectServer((_bstr_t)strHost,"root\\cimv2",(_bstr_t)strUser,(_bstr_t)strPwd,"","",0,NULL); WbemScripting::ISWbemObjectSetPtr objects = services->InstancesOf("Win32_LogicalMemoryConfiguration", 0x10, NULL); IEnumVARIANTPtr obj_enum = objects->Get_NewEnum(); ULONG fetched; VARIANT var; int nTotalPhyMem, nTotalVirMem; while (obj_enum->Next(1,&var,&fetched) == S_OK) { WbemScripting::ISWbemObjectPtr object = var; WbemScripting::ISWbemPropertySetPtr properties = object->Properties_; WbemScripting::ISWbemPropertyPtr prop = properties->Item("TotalPhysicalMemory",0); _variant_t value = prop->GetValue(); nTotalPhyMem = (int)value; prop = properties->Item("TotalVirtualMemory",0); value = prop->GetValue(); nTotalVirMem = (int)value; } _bstr_t com; com="SELECT * FROM Win32_PerfRawData_PerfProc_Process WHERE NAME='mysqld-nt' or NAME='mysqld'"; objects = services->ExecQuery(com,"WQL",0x10,NULL); obj_enum = objects->Get_NewEnum(); while (obj_enum->Next(1,&var,&fetched) == S_OK) { WbemScripting::ISWbemObjectPtr object = var; WbemScripting::ISWbemPropertySetPtr properties = object->Properties_; WbemScripting::ISWbemPropertyPtr prop = properties->Item("WorkingSet",0); _variant_t value = prop->GetValue(); int nPhyMem = (int)value/1024; prop = properties->Item("PrivateBytes",0); value = prop->GetValue(); int nVirMem = (int)value/1024; float fMySqlPhyMemUsage, fMySqlVirMemUsage; fMySqlPhyMemUsage = (float)nPhyMem/(float)nTotalPhyMem*100; fMySqlVirMemUsage = (float)nVirMem/(float)nTotalVirMem*100; strReturn.Format("MySqlPhyMem=%d$MySqlVirMem=%d$MySqlPhyMemUsage=%.2f$MySqlVirMemUsage=%.2f$TotalPhyMem=%d$TotalVirMem=%d$", nPhyMem, nVirMem, fMySqlPhyMemUsage, fMySqlVirMemUsage, nTotalPhyMem, nTotalVirMem); } if(strReturn == "") { sprintf(szReturn, "error=MySql is not run on this server!"); return FALSE; } } } catch (_com_error err) { char buf[200] = {0}; IErrorInfo * ei = err.ErrorInfo(); BSTR strDesEI; ei->GetDescription(&strDesEI); sprintf(szReturn, "error=Error ocured:%x: %s", (unsigned)err.Error(),_com_util::ConvertBSTRToString(strDesEI)); return FALSE; } catch(...) { sprintf(szReturn, "error=Error ocured: %d",::GetLastError()); return FALSE; } strcpy(szReturn,strReturn); CString strOutRet; strOutRet =szReturn; nSize = 2048; MakeCharByString(szReturn,nSize,strOutRet); CoUninitialize(); return TRUE; }