Кстати, можно тогда посмотреть на пример вашего решения данной проблемы? То есть как бы на моем месте проблему решали вы? Имеется в виду в данном конкретном случае.
Я просто пытаюсь донести, что этот код в том контексте, в котором он используется в приложении, не нуждается в дополнительных assert'ах и проверках. Без контекста и к i++ придраться можно, ибо, например, не thread-safe.
Кстати, если напишете тесты, которые покрашат hanstunnel на MIPS и ARM, будет интересно.
Изменения на портабельность не повлияли. Допущения обеспечивает класс, которому принадлежит метод. Кстати, если код не портабелен, то как он работает на Intel, ARM и MIPS?
Смотрите код целиком. Не будет gcc выделять по new блок с плохим выравниванием. Код и так endianess-нейтральный. Сетевой контрольной сумме пофигу на endian, а последний байт ставится на место через ntohs.
Дык вроде бы вся прелесть открытого софта в том, что закладку видно. Плюс, в openwrt используются стандартные линуховые утилиты, которые могут на раз спалить закладку, если их все не подправить, а это уже сложно утаить. В закрытом ПО — наоборот. Роутер монолитен, наружу торчит только вебморда, что внутри — неясно.
Мне кажется, что если бы в openwrt была закладка, то об этом давно стало бы известно.
Ну, предположим, послушать эфир я могу на любом линуксе с вайфаем и установленным aircrack-ng, тут АНБ совсем не инноватор. Пакет от имени компьютера и станции тоже отправить несложно. Но все это имеет смысл только, если сеть без шифрования. Обычно это аэропорт, ресторан и т.п. В таких местах можно и стационарный перехват настроить. А если у нас WPA, то уже ничего не выйдет, ибо шифрование. Разве что АНБ умеет на лету шифровать пакеты, не зная пароля сети.
Кстати, если напишете тесты, которые покрашат hanstunnel на MIPS и ARM, будет интересно.
Тогда уж надо вообще всю прогу рефакторить. Только вот с таким подходом все время уйдет на один сплошной рефакторинг.
Не читал, но осуждаю (с)
Смотрите код целиком. Не будет gcc выделять по new блок с плохим выравниванием. Код и так endianess-нейтральный. Сетевой контрольной сумме пофигу на endian, а последний байт ставится на место через ntohs.
Мне кажется, что если бы в openwrt была закладка, то об этом давно стало бы известно.
Интересно, что сие значит? Как можно «перехватить» сеть?
Давно это было… Спасибо автору за море приятных воспоминаний