ZaStoGram/TMessagesProj/jni/mtproxy/MtProxySecretDomain.h
loop-uh 3f8f8f27e7 Extract mtproxy module with unified retry authority
Move MTProxy policy engine from tgnet/ to self-contained jni/mtproxy/ module. Consolidate reconnect hold computation into single MtProxyRetryAuthority owner (was split across Connection, ConnectionSocket, endpoint policy, and probe coordinator, causing hold misalignment bugs). Add MtProxyTerminalDiagnostic module with host tests for pre-I/O verdict preservation (fixes 02.07/30.06 clobber livelocks). Auto-generate phase classification (isPreIoTerminalVerdict, needsReconnectBackoff, isObservationFacadePhase, isLocalSchedulerTimeout) from single Python contract into both C++ and Java to eliminate parallel maintenance. Pass native hold (coordinator terminal hold + endpoint cooldown) via JNI to Java so reconnect timer and health store use THE clock, not re-derived ones. Optimize log flushing: batch debug lines, flush errors immediately. Add module boundary guard, host build system (MSVC), and unit tests for retry logic and terminal diagnostic derivation.
2026-07-02 18:25:13 +03:00

23 lines
663 B
C++

#ifndef MTPROXYSECRETDOMAIN_H
#define MTPROXYSECRETDOMAIN_H
#include <cstdint>
#include <string>
struct MtProxySecretDomainPlan {
std::string originalDomain;
std::string sanitizedDomain;
std::string lowercaseAsciiDomain;
std::string noTrailingDotDomain;
std::string punycodeDomain;
std::string canonicalDomain;
uint32_t allowedSniVariants = 0;
const char *terminalDiagnostic = nullptr;
bool sanitized = false;
};
MtProxySecretDomainPlan buildMtProxySecretDomainPlan(const std::string &rawDomain);
const char *mtProxySecretKindName(const std::string &secret);
bool mtProxyIsBlockedZeroAddress(const std::string &ip);
#endif