mirror of https://github.com/procxx/kepka.git
Prefer static dc options when using a proxy.
This commit is contained in:
parent
82912f4a0b
commit
7245319351
|
@ -408,6 +408,8 @@ bool DcOptions::getDcRSAKey(DcId dcId, const QVector<MTPlong> &fingerprints, int
|
||||||
|
|
||||||
DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
||||||
auto lookupDesiredFlags = [type](int address, int protocol) -> std::vector<MTPDdcOption::Flags> {
|
auto lookupDesiredFlags = [type](int address, int protocol) -> std::vector<MTPDdcOption::Flags> {
|
||||||
|
auto throughProxy = (Global::ConnectionType() != dbictAuto);
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DcType::Regular:
|
case DcType::Regular:
|
||||||
case DcType::Temporary: {
|
case DcType::Temporary: {
|
||||||
|
@ -416,11 +418,14 @@ DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case Variants::Tcp: return {
|
case Variants::Tcp: return {
|
||||||
// Regular TCP IPv4
|
// Regular TCP IPv4
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_tcpo_only),
|
||||||
|
throughProxy ? qFlags(MTPDdcOption::Flag::f_static) : MTPDdcOption::Flags(0),
|
||||||
qFlags(MTPDdcOption::Flag::f_tcpo_only),
|
qFlags(MTPDdcOption::Flag::f_tcpo_only),
|
||||||
MTPDdcOption::Flags(0)
|
MTPDdcOption::Flags(0)
|
||||||
};
|
};
|
||||||
case Variants::Http: return {
|
case Variants::Http: return {
|
||||||
// Regular HTTP IPv4
|
// Regular HTTP IPv4
|
||||||
|
throughProxy ? qFlags(MTPDdcOption::Flag::f_static) : MTPDdcOption::Flags(0),
|
||||||
MTPDdcOption::Flags(0),
|
MTPDdcOption::Flags(0),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -429,11 +434,14 @@ DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case Variants::Tcp: return {
|
case Variants::Tcp: return {
|
||||||
// Regular TCP IPv6
|
// Regular TCP IPv6
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_ipv6),
|
||||||
(MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
(MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
qFlags(MTPDdcOption::Flag::f_ipv6),
|
qFlags(MTPDdcOption::Flag::f_ipv6),
|
||||||
};
|
};
|
||||||
case Variants::Http: return {
|
case Variants::Http: return {
|
||||||
// Regular HTTP IPv6
|
// Regular HTTP IPv6
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_ipv6),
|
||||||
qFlags(MTPDdcOption::Flag::f_ipv6),
|
qFlags(MTPDdcOption::Flag::f_ipv6),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -446,14 +454,20 @@ DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case Variants::Tcp: return {
|
case Variants::Tcp: return {
|
||||||
// Media download TCP IPv4
|
// Media download TCP IPv4
|
||||||
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only),
|
throughProxy ? (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only),
|
||||||
qFlags(MTPDdcOption::Flag::f_tcpo_only),
|
throughProxy ? (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_tcpo_only),
|
||||||
qFlags(MTPDdcOption::Flag::f_media_only),
|
qFlags(MTPDdcOption::Flag::f_media_only),
|
||||||
|
throughProxy ? qFlags(MTPDdcOption::Flag::f_static) : MTPDdcOption::Flags(0),
|
||||||
|
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_tcpo_only),
|
||||||
|
throughProxy ? qFlags(MTPDdcOption::Flag::f_tcpo_only) : qFlags(MTPDdcOption::Flag::f_media_only),
|
||||||
MTPDdcOption::Flags(0),
|
MTPDdcOption::Flags(0),
|
||||||
};
|
};
|
||||||
case Variants::Http: return {
|
case Variants::Http: return {
|
||||||
// Media download HTTP IPv4
|
// Media download HTTP IPv4
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_media_only),
|
||||||
qFlags(MTPDdcOption::Flag::f_media_only),
|
qFlags(MTPDdcOption::Flag::f_media_only),
|
||||||
|
throughProxy ? qFlags(MTPDdcOption::Flag::f_static) : MTPDdcOption::Flags(0),
|
||||||
MTPDdcOption::Flags(0),
|
MTPDdcOption::Flags(0),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -462,14 +476,20 @@ DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case Variants::Tcp: return {
|
case Variants::Tcp: return {
|
||||||
// Media download TCP IPv6
|
// Media download TCP IPv6
|
||||||
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
throughProxy ? (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
(MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
throughProxy ? (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6),
|
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_ipv6),
|
||||||
|
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6) : (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
qFlags(MTPDdcOption::Flag::f_ipv6)
|
qFlags(MTPDdcOption::Flag::f_ipv6)
|
||||||
};
|
};
|
||||||
case Variants::Http: return {
|
case Variants::Http: return {
|
||||||
// Media download HTTP IPv6
|
// Media download HTTP IPv6
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6),
|
(MTPDdcOption::Flag::f_media_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_ipv6),
|
||||||
qFlags(MTPDdcOption::Flag::f_ipv6),
|
qFlags(MTPDdcOption::Flag::f_ipv6),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -482,11 +502,14 @@ DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case Variants::Tcp: return {
|
case Variants::Tcp: return {
|
||||||
// CDN TCP IPv4
|
// CDN TCP IPv4
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_tcpo_only),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_cdn),
|
||||||
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_tcpo_only),
|
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_tcpo_only),
|
||||||
qFlags(MTPDdcOption::Flag::f_cdn),
|
qFlags(MTPDdcOption::Flag::f_cdn),
|
||||||
};
|
};
|
||||||
case Variants::Http: return {
|
case Variants::Http: return {
|
||||||
// CDN HTTP IPv4
|
// CDN HTTP IPv4
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_static) : qFlags(MTPDdcOption::Flag::f_cdn),
|
||||||
qFlags(MTPDdcOption::Flag::f_cdn),
|
qFlags(MTPDdcOption::Flag::f_cdn),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -495,11 +518,14 @@ DcOptions::Variants DcOptions::lookup(DcId dcId, DcType type) const {
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case Variants::Tcp: return {
|
case Variants::Tcp: return {
|
||||||
// CDN TCP IPv6
|
// CDN TCP IPv6
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_tcpo_only),
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6),
|
||||||
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_tcpo_only | MTPDdcOption::Flag::f_ipv6),
|
||||||
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6),
|
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6),
|
||||||
};
|
};
|
||||||
case Variants::Http: return {
|
case Variants::Http: return {
|
||||||
// CDN HTTP IPv6
|
// CDN HTTP IPv6
|
||||||
|
throughProxy ? (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6 | MTPDdcOption::Flag::f_static) : (MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6),
|
||||||
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6),
|
(MTPDdcOption::Flag::f_cdn | MTPDdcOption::Flag::f_ipv6),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue