The phone link no longer depends on the local network. The IDE dials out to turkservis.online and bridges tunnel streams to its own TLS proxy on loopback; the phone runs TLS to the pinned IDE certificate inside the tunnel, so the relay only carries ciphertext. The proxy binds to 127.0.0.1 by default and enabling the feature never asks for a firewall rule; direct same-network access is an explicit option. The window shows the real relay, listener and firewall state, and pairing no longer needs local addresses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
34 lines
2.1 KiB
HTML
34 lines
2.1 KiB
HTML
<!doctype html><html lang="tr"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; connect-src 'none'; object-src 'none'; base-uri 'none'">
|
||
<title>AITURK · Telefon bağlantısı</title><link rel="stylesheet" href="mobile/style.css"><link rel="stylesheet" href="mobile-host.css"></head><body><main>
|
||
<p class="eyebrow" id="t-eyebrow">AITURK · BİLGİSAYAR</p><h1 id="t-title">Telefon bağlantısı</h1>
|
||
<p id="t-intro"></p>
|
||
<label class="switch"><input id="enabled" type="checkbox"><span id="t-enabled"></span></label>
|
||
<p id="notice" class="status" role="status" aria-live="polite" hidden></p>
|
||
<section id="remote-box" class="warning" hidden><p id="t-remote"></p></section>
|
||
<section id="status-box" hidden>
|
||
<div class="status-row"><span id="t-relay-label"></span><strong id="relay-status" role="status" aria-live="polite"></strong></div>
|
||
<div class="status-row"><span id="t-lan-label"></span><strong id="lan-status" role="status" aria-live="polite"></strong></div>
|
||
<div class="status-actions"><button id="lan-allow" class="secondary"></button><button id="lan-disallow" class="link" hidden></button></div>
|
||
</section>
|
||
<section id="reissued-box" class="warning" hidden><p id="t-reissued"></p></section>
|
||
<section id="pair-section" hidden>
|
||
<button id="pair-begin"></button>
|
||
<div id="pair-live" hidden>
|
||
<p id="t-scan"></p>
|
||
<canvas id="pair-qr" role="img"></canvas>
|
||
<p id="t-or-code"></p>
|
||
<p id="pair-code" class="code" aria-live="off"></p>
|
||
<p id="pair-code-path"></p>
|
||
<p id="pair-countdown" class="countdown"></p>
|
||
<p id="pair-security" class="security"></p>
|
||
<p id="t-same-wifi" class="hint"></p>
|
||
<button id="pair-cancel" class="secondary"></button>
|
||
</div>
|
||
</section>
|
||
<section id="devices-section" hidden>
|
||
<h2 id="t-devices"></h2><p id="devices-empty"></p><div id="devices"></div>
|
||
</section>
|
||
<footer id="footer" hidden><button id="relay-renew" class="link" hidden></button> <button id="firewall-remove" class="link" hidden></button></footer>
|
||
</main><script type="module" src="mobile-host-ui.mjs"></script></body></html>
|