1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2025-07-12 02:34:59 +03:00

Add custom HTTP header feature for HTTP proxy

A custom HTTP header can be used to bypass certain restrictions imposed on the network or to avoid speed limitations applied by the QoS.
This commit is contained in:
Davide Beatrici
2018-11-29 20:32:03 +01:00
parent 4be45342b7
commit aefbd2e903
29 changed files with 1665 additions and 120 deletions

View File

@ -4424,6 +4424,7 @@ void InRpcClientOption(CLIENT_OPTION *c, PACK *p)
PackGetStr(p, "ProxyName", c->ProxyName, sizeof(c->ProxyName));
PackGetStr(p, "ProxyUsername", c->ProxyUsername, sizeof(c->ProxyUsername));
PackGetStr(p, "ProxyPassword", c->ProxyPassword, sizeof(c->ProxyPassword));
PackGetStr(p, "CustomHttpHeader", c->CustomHttpHeader, sizeof(c->CustomHttpHeader));
PackGetStr(p, "HubName", c->HubName, sizeof(c->HubName));
PackGetStr(p, "DeviceName", c->DeviceName, sizeof(c->DeviceName));
c->UseEncrypt = PackGetInt(p, "UseEncrypt") ? true : false;
@ -4449,6 +4450,7 @@ void OutRpcClientOption(PACK *p, CLIENT_OPTION *c)
PackAddStr(p, "ProxyName", c->ProxyName);
PackAddStr(p, "ProxyUsername", c->ProxyUsername);
PackAddStr(p, "ProxyPassword", c->ProxyPassword);
PackAddStr(p, "CustomHttpHeader", c->CustomHttpHeader);
PackAddStr(p, "HubName", c->HubName);
PackAddStr(p, "DeviceName", c->DeviceName);
PackAddInt(p, "Port", c->Port);
@ -9404,6 +9406,7 @@ CLIENT_OPTION *CiLoadClientOption(FOLDER *f)
StrCpy(o->ProxyPassword, sizeof(o->ProxyPassword), s);
Free(s);
FreeBuf(b);
CfgGetStr(f, "CustomHttpHeader", o->CustomHttpHeader, sizeof(o->CustomHttpHeader));
o->NumRetry = CfgGetInt(f, "NumRetry");
o->RetryInterval = CfgGetInt(f, "RetryInterval");
CfgGetStr(f, "HubName", o->HubName, sizeof(o->HubName));
@ -9729,6 +9732,8 @@ bool CiReadSettingFromCfg(CLIENT *c, FOLDER *root)
FreeBuf(pw);
}
CfgGetStr(proxy, "CustomHttpHeader", t.CustomHttpHeader, sizeof(t.CustomHttpHeader));
Copy(&c->CommonProxySetting, &t, sizeof(INTERNET_SETTING));
}
@ -9938,6 +9943,7 @@ void CiWriteClientOption(FOLDER *f, CLIENT_OPTION *o)
b = EncryptPassword(o->ProxyPassword);
CfgAddByte(f, "ProxyPassword", b->Buf, b->Size);
FreeBuf(b);
CfgAddStr(f, "CustomHttpHeader", o->CustomHttpHeader);
CfgAddInt(f, "NumRetry", o->NumRetry);
CfgAddInt(f, "RetryInterval", o->RetryInterval);
CfgAddStr(f, "HubName", o->HubName);
@ -10272,6 +10278,8 @@ void CiWriteSettingToCfg(CLIENT *c, FOLDER *root)
FreeBuf(pw);
}
CfgAddStr(proxy, "CustomHttpHeader", t->CustomHttpHeader);
}
// CA