| 1237 | void telnet_loop() { telnetWorkerTask(nullptr); } |
| 1238 | |
| 1239 | void telnet_setup() { |
| 1240 | if (!wifiConnected) wifiConnectMenu(); |
| 1241 | if (!initClientMutex()) { |
| 1242 | displayError("Telnet mutex creation failed.", true); |
| 1243 | returnToMenu = true; |
| 1244 | return; |
| 1245 | } |
| 1246 | |
| 1247 | resetClientScreen("TELNET"); |
| 1248 | Serial.begin(115200); |
| 1249 | Serial.println("Starting Telnet Setup"); |
| 1250 | |
| 1251 | telnet_server_string = keyboard("", 76, "TELNET_SERVER"); |
| 1252 | if (telnet_server_string == "\x1B") return; |
| 1253 | telnet_port_string = num_keyboard("23", 5, "TELNET PORT"); |
| 1254 | if (telnet_port_string == "\x1B") return; |
| 1255 | telnet_server_port = telnet_port_string.toInt(); |
| 1256 | |
| 1257 | IPAddress resolvedIp; |
| 1258 | if (WiFi.hostByName(telnet_server_string.c_str(), resolvedIp)) { |
| 1259 | sessionHost = resolvedIp.toString(); |
| 1260 | } else { |
| 1261 | displayError("Failed to resolve hostname.", true); |
| 1262 | returnToMenu = true; |
| 1263 | return; |
| 1264 | } |
| 1265 | |
| 1266 | sessionPort = static_cast<uint16_t>(telnet_server_port); |
| 1267 | resetClientState(ClientProtocol::Telnet); |
| 1268 | TaskHandle_t workerHandle = nullptr; |
| 1269 | xTaskCreate(telnetWorkerTask, "Telnet Task", 4096, nullptr, 1, &workerHandle); |
| 1270 | setClientTaskHandle(workerHandle); |
| 1271 | |
| 1272 | if (workerHandle == nullptr) { |
| 1273 | displayError("Telnet Task creation failed.", true); |
| 1274 | returnToMenu = true; |
| 1275 | return; |
| 1276 | } |
| 1277 | |
| 1278 | startSessionLog(ClientProtocol::Telnet); |
| 1279 | runSessionUiLoop("TELNET"); |
| 1280 | } |
| 1281 | #endif |
nothing calls this directly
no test coverage detected