Доброго времени суток.
В приложении (FreeRTOS + LwIP) обрабатываю TCP/Modbus. Сделал несколько коннектов. Неблокирующее соединение + callback функция.
Всё работает, пока всё корректно. Бывает, что при некорректном закрытии соединения (например вис сервера) у меня в callback функцию возвращается ошибка. Что с ней делать - ума не приложу. Глубоко стек копать не могу. У меня ещё, кроме того, если остановку проца в дебаге делаю, то ethernet отваливается.
Пытаюсь закрыть соединение, но lwip возвращает ошибку (ERR_VAL -6 /* Illegal value.*/). Порывшись - вижу что pcb = 0, отсюда и ошибка.
Собственно вопрос состоит в том, как обработать ошибку, чтобы я смог закрыть коннект и освободить память.
Кто сталкивался?
Эскизы прикрепленных изображений