/** * @brief Tcp client disconnect success callback function. * @param arg: contain the ip link information * @retval None */ void ICACHE_FLASH_ATTR get_version_disconnect_cb(void *arg) { struct espconn *pespconn = arg; INFO("FOTA Client: Disconnect\n"); clear_espconn(pespconn); fota_client_t *fota_client = (fota_client_t *)pespconn->reverse; handle_response(fota_client); if (fota_client->status != FOTA_GETTING_FIRMWARE) fota_client->status = FOTA_IDLE; get_version_body_len = -1; }
void ICACHE_FLASH_ATTR get_version_recon_cb(void *arg, sint8 err) { //error occured , tcp connection broke. user can try to reconnect here. INFO("FOTA Client: reconnect callback, code %d\n", err); struct espconn *pespconn = arg; fota_client_t *fota_client = (fota_client_t *)pespconn->reverse; if (fota_client->status != FOTA_GETTING_FIRMWARE) fota_client->status = FOTA_IDLE; INFO("State of esp conn: %d\n", pespconn->state); if (FOTA_SECURE) espconn_secure_disconnect((struct espconn *)arg); else espconn_disconnect((struct espconn *)arg); // when host failed to connect, disconnect will not work, // need to clean connection to avoid mem leak clear_espconn(pespconn); }
/** * @brief Tcp client disconnect success callback function. * @param arg: contain the ip link information * @retval None */ void ICACHE_FLASH_ATTR get_version_disconnect_cb(void *arg) { INFO("FOTA Client: Disconnect\n"); clear_espconn((struct espconn *)arg); }