示例#1
0
bool static ApplyProxySettings() {
    QSettings settings;
    CService addrProxy(settings.value("addrProxy", "127.0.0.1:9050").toString().toStdString());
    int nSocksVersion(settings.value("nSocksVersion", 5).toInt());

    if (!settings.value("fUseProxy", false).toBool()) {
        addrProxy = CService();
        nSocksVersion = 0;
        return false;
    }

    if (nSocksVersion && !addrProxy.IsValid()) {
        return false;
    }

    if (!IsLimited(NET_IPV4)) {
        SetProxy(NET_IPV4, addrProxy, nSocksVersion);
    }

    if (nSocksVersion > 4) {
#ifdef USE_IPV6

        if (!IsLimited(NET_IPV6)) {
            SetProxy(NET_IPV6, addrProxy, nSocksVersion);
        }

#endif
        SetNameProxy(addrProxy, nSocksVersion);
    }

    return true;
}
void TorController::auth_cb(TorControlConnection& conn, const TorControlReply& reply)
{
    if (reply.code == 250) {
        LogPrint("tor", "tor: Authentication successful\n");

        // Now that we know Tor is running setup the proxy for onion addresses
        // if -onion isn't set to something else.
        if (GetArg("-onion", "") == "") {
            proxyType addrOnion = proxyType(CService("127.0.0.1", 9050), true);
            SetProxy(NET_TOR, addrOnion);
            SetLimited(NET_TOR, false);
        }

        // Finally - now create the service
        if (private_key.empty()) // No private key, generate one
            private_key = "NEW:RSA1024"; // Explicitly request RSA1024 - see issue #9214
        // Request hidden service, redirect port.
        // Note that the 'virtual' port doesn't have to be the same as our internal port, but this is just a convenient
        // choice.  TODO; refactor the shutdown sequence some day.
        conn.Command(strprintf("ADD_ONION %s Port=%i,127.0.0.1:%i", private_key, GetListenPort(), GetListenPort()),
            boost::bind(&TorController::add_onion_cb, this, _1, _2));
    } else {
        LogPrintf("tor: Authentication failed\n");
    }
}
示例#3
0
void CNetRadioDlg::TurnDouban()
{
	SetProxy(m_Proxy);
	m_Browser.SetLeft(0);
	m_Browser.SetTop(0);
	m_Browser.Navigate2(FM_DOUBAN);	
}
示例#4
0
	~CDownloader()
	{
		CloseInternet(true);
		SetProxy(NULL, NULL, NULL);
		SetLogin(NULL, NULL);
		SafeFree(szCmdStringFormat);
	};
示例#5
0
void CNetRadioDlg::TurnBaidu() 
{
	SetProxy(NULL);
	m_Browser.SetLeft(-130);
	m_Browser.SetTop(-140);
	m_Browser.Navigate2(FM_BAIDU);	
}
示例#6
0
bool static ApplyProxySettings()
{
    QSettings settings;
    CService addrProxy(settings.value("addrProxy", "127.0.0.1:9050").toString().toStdString());
    if (!settings.value("fUseProxy", false).toBool()) {
        addrProxy = CService();
        return false;
    }
    if (!addrProxy.IsValid())
        return false;
    if (!IsLimited(NET_IPV4))
        SetProxy(NET_IPV4, addrProxy);
    if (!IsLimited(NET_IPV6))
        SetProxy(NET_IPV6, addrProxy);
    SetNameProxy(addrProxy);
    return true;
}
示例#7
0
void
Opal::Sip::EndPoint::set_outbound_proxy (const std::string & uri)
{
  if (!uri.empty ()) {
    outbound_proxy = uri;
    PTRACE (4, "Opal::Sip::EndPoint\tSet outbound proxy to " << uri);
    SetProxy (SIPURL (outbound_proxy));
  }
}
示例#8
0
void MainWindow::RestoreSettings()
{
	QSettings settings;
	restoreGeometry(settings.value("geometry").toByteArray());
	ui->fSplitter->restoreState(settings.value("splitter").toByteArray());

	SetDictionary();
	SetProxy();
	LoadSnippets();
}
    void SubprocessNetworkAccessManager::SetProxy(const QString& server, int Port, bool IsHttp, const QString& name, const QString& password, const QString& callback)
    {
        QString WriteString;
        QXmlStreamWriter xmlWriter(&WriteString);
        xmlWriter.writeStartElement("SetProxy");
            xmlWriter.writeAttribute("server",server);
            xmlWriter.writeAttribute("Port",QString::number(Port));
            xmlWriter.writeAttribute("IsHttp",QString::number(IsHttp));
            xmlWriter.writeAttribute("name",name);
            xmlWriter.writeAttribute("password",password);
        xmlWriter.writeEndElement();

        Worker->SetScript(callback);
        Worker->SetFailMessage(QString("Timeout during SetProxy"));
        Worker->GetWaiter()->WaitForSignal(this,SIGNAL(SetProxy()), Worker,SLOT(RunSubScript()), Worker, SLOT(FailBecauseOfTimeout()));
        Worker->GetProcessComunicator()->Send(WriteString);
    }
示例#10
0
void MainWindow::OnSettings()
{
	SaveSnippets();

	SettingsDialog settings(fSnippets);

	connect(&settings, SIGNAL(FontUpdated(QFont, int)), this, SLOT(SetEditorFont(QFont, int)));

	if (settings.exec() == SettingsDialog::Accepted)  {
		if (fSimpleNote) {
			delete fSimpleNote;
			fSimpleNote = 0;
		}
		SetProxy();
		SetDictionary();
		SaveSnippets();
		ui->fEditor->SnippetsUpdated();
	} else {
		LoadSnippets();
	}

	SetEditorFont(settings.CurrentFont(), settings.CurrentTabSize());
}
示例#11
0
void CComboBoxPrxyR::ResetProxyList()
{
	if (m_bUseIE) {
		EnableWindow(FALSE);
		return;
	}

	ResetContent();
	AddString(_T(""));

	// プロキシファイルパス
	CString 	strFile = _GetFilePath( _T("Proxy.ini") );

	CIniFileI	pr( strFile, _T("PROXY") );

	//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
	// プロキシ
	DWORD		dwLineCnt = 0;
	pr.QueryValue( dwLineCnt, _T("MAX") );

	for (int ii = 0; ii < (int) dwLineCnt; ii++) {
		CString 	strKey;
		strKey.Format(_T("%d"), ii);

		CString 	strProxy = pr.GetString( strKey );		//*+++ ここをGetStringUWにするかは後で.
		if ( strProxy.IsEmpty() )
			continue;
		AddString(strProxy);
	}

	pr.Close();
	//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

	// プロキシ設定
	SetProxy();
}
示例#12
0
void
Opal::Sip::EndPoint::set_outbound_proxy (const std::string & uri)
{
  outbound_proxy = uri;
  SetProxy (SIPURL (outbound_proxy));
}
示例#13
0
DOWNERROR CDownLoader::DownLoadFile(
    __in PCTSTR lpszServerName,
    __in INTERNET_PORT nServerPort,
    __in PCTSTR lpSrcFile,
    __in PCTSTR lpDstFile)
{
    if (NULL == m_hSession)
        return DownDisconnected;

    HINTERNET hConnect = ::InternetConnect(m_hSession, lpszServerName,
                                           nServerPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
    if (NULL == hConnect)
        return DownDisconnected;

    PCTSTR accept[] = { _T("accept: */*"), NULL };
    HINTERNET hRequest = ::HttpOpenRequest(hConnect, _T("GET"), lpSrcFile, NULL, NULL,
                                           accept, 0, 0);
    if (NULL == hRequest)
    {
        ::InternetCloseHandle(hConnect);
        return DownDisconnected;
    }

    if (UseProxy == m_proxyType)
        SetProxy(hRequest);

    if (!::HttpSendRequest(hRequest, NULL, 0, NULL, 0))
    {
        ::InternetCloseHandle(hRequest);
        ::InternetCloseHandle(hConnect);
        return DownDisconnected;
    }

    DWORD dwCode = 0;
    DWORD dwSize = 0;
    if (UnknownProxy == m_proxyType)
    {
        dwSize = sizeof(DWORD);
        HttpQueryInfo (hRequest,
                       HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER,
                       &dwCode, &dwSize, NULL);
        if (HTTP_STATUS_PROXY_AUTH_REQ == dwCode)
            m_proxyType = UseProxy;
        else
            m_proxyType = NoProxy;

        SaveProxy(hRequest);
        SetProxy(hRequest);
        ::HttpSendRequest(hRequest, NULL, 0, NULL, 0);
    }

    HttpQueryInfo (hRequest,
                   HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER,
                   &dwCode, &dwSize, NULL);
    if (HTTP_STATUS_NOT_FOUND == dwCode)
    {
        ::InternetCloseHandle(hRequest);
        ::InternetCloseHandle(hConnect);
        return DownFileNotExists;
    }

    HANDLE hFile = CreateFile(lpDstFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
                              FILE_ATTRIBUTE_ARCHIVE, NULL);
    if (INVALID_HANDLE_VALUE == hFile)
    {
        ::InternetCloseHandle(hRequest);
        ::InternetCloseHandle(hConnect);
        return DownCannotOpenFile;
    }

    PBYTE buf = new BYTE[BUF_SIZE];
    DWORD dw, dwWritten;
    while (::InternetReadFile(hRequest, buf, BUF_SIZE, &dw) && dw > 0)
    {
        ::WriteFile(hFile, buf, dw, &dwWritten, NULL);
    }

    ::CloseHandle(hFile);
    ::InternetCloseHandle(hRequest);
    ::InternetCloseHandle(hConnect);
    delete [] buf;
    return DownOK;
}
    void SubprocessNetworkAccessManager::Received(const QString& value)
    {
        QXmlStreamReader xmlReader(value);
        while(!xmlReader.atEnd() && !xmlReader.hasError())
        {
            QXmlStreamReader::TokenType token = xmlReader.readNext();


            if(xmlReader.name() == "AddCacheMaskAllow" && token == QXmlStreamReader::StartElement)
            {
                emit AddCacheMaskAllow();
            }else if(xmlReader.name() == "SetProxy" && token == QXmlStreamReader::StartElement)
            {
                emit SetProxy();
            }else if(xmlReader.name() == "AddHeader" && token == QXmlStreamReader::StartElement)
            {
                emit AddHeader();
            }else if(xmlReader.name() == "CleanHeader" && token == QXmlStreamReader::StartElement)
            {
                emit CleanHeader();
            }else if(xmlReader.name() == "AddCacheMaskDeny" && token == QXmlStreamReader::StartElement)
            {
                emit AddCacheMaskDeny();
            }else if(xmlReader.name() == "AddRequestMaskAllow" && token == QXmlStreamReader::StartElement)
            {
                emit AddRequestMaskAllow();
            }else if(xmlReader.name() == "AddRequestMaskDeny" && token == QXmlStreamReader::StartElement)
            {
                emit AddRequestMaskDeny();
            }else if(xmlReader.name() == "ClearCacheMask" && token == QXmlStreamReader::StartElement)
            {
                emit ClearCacheMask();
            }else if(xmlReader.name() == "ClearRequestMask" && token == QXmlStreamReader::StartElement)
            {
                emit ClearRequestMask();
            }else if(xmlReader.name() == "ClearLoadedUrl" && token == QXmlStreamReader::StartElement)
            {
                emit ClearLoadedUrl();
            }else if(xmlReader.name() == "ClearCachedData" && token == QXmlStreamReader::StartElement)
            {
                emit ClearCachedData();
            }else if(xmlReader.name() == "ClearAll" && token == QXmlStreamReader::StartElement)
            {
                emit ClearAll();
            }else if(xmlReader.name() == "ClearMasks" && token == QXmlStreamReader::StartElement)
            {
                emit ClearMasks();
            }else if(xmlReader.name() == "ClearData" && token == QXmlStreamReader::StartElement)
            {
                emit ClearData();
            }else if(xmlReader.name() == "FindCacheByMaskBase64" && token == QXmlStreamReader::StartElement)
            {
                xmlReader.readNext();
                Worker->SetAsyncResult(QScriptValue(xmlReader.text().toString()));
                emit FindCacheByMaskBase64();
            }else if(xmlReader.name() == "FindCacheByMaskString" && token == QXmlStreamReader::StartElement)
            {
                xmlReader.readNext();
                Worker->SetAsyncResult(QScriptValue(xmlReader.text().toString()));
                emit FindCacheByMaskString();
            }else if(xmlReader.name() == "FindStatusByMask" && token == QXmlStreamReader::StartElement)
            {
                xmlReader.readNext();
                Worker->SetAsyncResult(QScriptValue(xmlReader.text().toInt()));
                emit FindStatusByMask();
            }else if(xmlReader.name() == "IsUrlLoadedByMask" && token == QXmlStreamReader::StartElement)
            {
                xmlReader.readNext();
                Worker->SetAsyncResult(QScriptValue(xmlReader.text().toString().toInt()));
                emit IsUrlLoadedByMask();
            }


        }
        if (xmlReader.hasError())
        {
            return;
        }
    }
示例#15
0
int main(int argc, char **argv) {
    signal(SIGPIPE, SIG_IGN);
    setbuf(stdout, nullptr);
    CDnsSeedOpts opts;
    opts.ParseCommandLine(argc, argv);
    printf("Supporting whitelisted filters: ");
    for (std::set<uint64_t>::const_iterator it = opts.filter_whitelist.begin();
         it != opts.filter_whitelist.end(); it++) {
        if (it != opts.filter_whitelist.begin()) {
            printf(",");
        }
        printf("0x%lx", (unsigned long)*it);
    }
    printf("\n");
    if (opts.tor) {
        CService service(LookupNumeric(opts.tor, 9050));
        if (service.IsValid()) {
            printf("Using Tor proxy at %s\n", service.ToStringIPPort().c_str());
            SetProxy(NET_TOR, service);
        }
    }
    if (opts.ipv4_proxy) {
        CService service(LookupNumeric(opts.ipv4_proxy, 9050));
        if (service.IsValid()) {
            printf("Using IPv4 proxy at %s\n",
                   service.ToStringIPPort().c_str());
            SetProxy(NET_IPV4, service);
        }
    }
    if (opts.ipv6_proxy) {
        CService service(LookupNumeric(opts.ipv6_proxy, 9050));
        if (service.IsValid()) {
            printf("Using IPv6 proxy at %s\n",
                   service.ToStringIPPort().c_str());
            SetProxy(NET_IPV6, service);
        }
    }
    bool fDNS = true;
    if (opts.fUseTestNet) {
        printf("Using testnet.\n");
        netMagic[0] = 0xf4;
        netMagic[1] = 0xe5;
        netMagic[2] = 0xf3;
        netMagic[3] = 0xf4;
        seeds = testnet_seeds;
        fTestNet = true;
    }
    if (!opts.ns) {
        printf("No nameserver set. Not starting DNS server.\n");
        fDNS = false;
    }
    if (fDNS && !opts.host) {
        fprintf(stderr, "No hostname set. Please use -h.\n");
        exit(1);
    }
    if (fDNS && !opts.mbox) {
        fprintf(stderr, "No e-mail address set. Please use -m.\n");
        exit(1);
    }
    FILE *f = fopen("dnsseed.dat", "r");
    if (f) {
        printf("Loading dnsseed.dat...");
        CAutoFile cf(f, SER_DISK, CLIENT_VERSION);
        cf >> db;
        if (opts.fWipeBan) db.banned.clear();
        if (opts.fWipeIgnore) db.ResetIgnores();
        printf("done\n");
    }
    pthread_t threadDns, threadSeed, threadDump, threadStats;
    if (fDNS) {
        printf("Starting %i DNS threads for %s on %s (port %i)...",
               opts.nDnsThreads, opts.host, opts.ns, opts.nPort);
        dnsThread.clear();
        for (int i = 0; i < opts.nDnsThreads; i++) {
            dnsThread.push_back(new CDnsThread(&opts, i));
            pthread_create(&threadDns, nullptr, ThreadDNS, dnsThread[i]);
            printf(".");
            Sleep(20);
        }
        printf("done\n");
    }
    printf("Starting seeder...");
    pthread_create(&threadSeed, nullptr, ThreadSeeder, nullptr);
    printf("done\n");
    printf("Starting %i crawler threads...", opts.nThreads);
    pthread_attr_t attr_crawler;
    pthread_attr_init(&attr_crawler);
    pthread_attr_setstacksize(&attr_crawler, 0x20000);
    for (int i = 0; i < opts.nThreads; i++) {
        pthread_t thread;
        pthread_create(&thread, &attr_crawler, ThreadCrawler, &opts.nThreads);
    }
    pthread_attr_destroy(&attr_crawler);
    printf("done\n");
    pthread_create(&threadStats, nullptr, ThreadStats, nullptr);
    pthread_create(&threadDump, nullptr, ThreadDumper, nullptr);
    void *res;
    pthread_join(threadDump, &res);
    return 0;
}