[uquote="a5021",url="/forum/viewtopic.php?p=3491800#p3491800"]Тут часть участников обсуждения слепые? И код res = ERR_CLSD; тоже характерен для "единственного нормального" ? Ай да говнокодище! Извалялись все.[/uquote]
Да, я слепой. На код возврата, даже не обратил внимание.

Обычно, код возврата, отличный от "все-хорошо" ни на что не влияет (раззве что, на выдачу логов). Поэтому при беглом просмотре, на "такие мелочи" не сильно обращаю внимание. Несомненно, здесь вместо res = ERR_CLSD должно быть что-то вроеде res = ERR_ALREADY_USED (не смотрел, какие у них коды возврата).
Но по названию функции и логике TCP, данная функция должна переключить состояние CLOSED-->LISTEN, если было !CLOSED - вывалиться с ошибкой. Я бы вообще туда assert врубил бы, нефига уже используемый pcb пытаться перевести в LISTEN состояние, это проблема того кто вызывает данную функцию.
Вы абсолютно правы, это вовсе не "мелочи", а запутывание читателя кода по полной программе. Многовато "плюх" в нескольких строках. Что же там в осталном коде? Говнокод? Может быть.
Но лично я не столь категоричен к этому проекту.
1) Как-то оно, наверное, работает. Я не использовал, точно сказать не могу - иногда вижу (на форумах, ...) что исползуют. Всякие там CubeMX под него генерят, FreeRTOS, вроде, тоже его использует.... Отсюда я делаю вывод, что используют и как-то этот код работает.
Код свободен (у lwIP-а BSD-модифицированная лицензия). Я вообще считаю "чудом", что появляются (и самое главное, работают) подобные открытые проекты. Много ли альтернатив у lwIP-а с BSD-лицензией? А красиво-написанных, не "говнокодов"?
2) Да, в нескольких строках кода две проблемы, но они ни к чему ужасному не приводят (да, "болтается" в коде проверка на LISTEN, которая никогда не сработает; да, не тот код возврата при !CLOSED). Может поэтому и не нашли эти ошибки, что они "почти" никак не проявляются.
3) "Мы рождены, чтоб сказку сделать былью". Если я буду использовать lwIP, попробую commit получить и буду коммитить правки, чтобы проект был лучше. Не дадут коммита - буду тикеты им с патчами присылать. На то он и открытый код, чтобы улучшать его "всем миром"

Надеюсь, что так же будут поступать и другие, кто используют свободный код в своих целях
