All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Brief description of class still missing. More...
#include <HttpProxyScript.h>
Public Member Functions | |
| HttpProxyScript (const QString &content) | |
| QList< HttpProxy > | proxies (const QUrl &url) |
| ~HttpProxyScript () | |
Brief description of class still missing.
Specifications from https://calomel.org/proxy_auto_config.html. Helpful information at http://findproxyforurl.com. dateRange() and timeRange() inspired from pac_utils.js shipped with pactester (http://code.google.com/p/pactester).
| QGpGuiTools::HttpProxyScript::HttpProxyScript | ( | const QString & | content | ) |
Description of constructor still missing
References TRACE.
{
TRACE;
_script=content;
_engine=new QScriptEngine;
QScriptValue f;
f=_engine->newFunction(isPlainHostName);
_engine->globalObject().setProperty("isPlainHostName", f);
f=_engine->newFunction(dnsDomainIs);
_engine->globalObject().setProperty("dnsDomainIs", f);
f=_engine->newFunction(localHostOrDomainIs);
_engine->globalObject().setProperty("localHostOrDomainIs", f);
f=_engine->newFunction(isResolvable);
_engine->globalObject().setProperty("isResolvable", f);
f=_engine->newFunction(isInNet);
_engine->globalObject().setProperty("isInNet", f);
f=_engine->newFunction(dnsResolve);
_engine->globalObject().setProperty("dnsResolve", f);
f=_engine->newFunction(myIpAddress);
_engine->globalObject().setProperty("myIpAddress", f);
f=_engine->newFunction(dnsDomainLevels);
_engine->globalObject().setProperty("dnsDomainLevels", f);
f=_engine->newFunction(shExpMatch);
_engine->globalObject().setProperty("shExpMatch", f);
f=_engine->newFunction(weekdayRange);
_engine->globalObject().setProperty("weekdayRange", f);
f=_engine->newFunction(dateRange);
_engine->globalObject().setProperty("dateRange", f);
f=_engine->newFunction(timeRange);
_engine->globalObject().setProperty("timeRange", f);
}
| QList< HttpProxy > QGpGuiTools::HttpProxyScript::proxies | ( | const QUrl & | url | ) |
References TRACE.
{
TRACE;
QList<HttpProxy> list;
QString script(_script);
script+=QString("\nFindProxyForURL(\"%1\", \"%2\");").arg(url.toString()).arg(url.host());
QScriptValue result=_engine->evaluate(script);
if(!_engine->hasUncaughtException()) {
QStringList entries=result.toString().split(";");
foreach(QString entry, entries) {
entry=entry.trimmed();
if(entry.startsWith("PROXY")) {
list.append(HttpProxy(entry.mid(6)));
} else if(entry.startsWith("DIRECT")) {
list.append(HttpProxy());
}
}
}
return list;
}