Всем привет. Наверное, многие тут знают прогу hanstunnel, которая позволяет поднять туннель поверх ICMP, а точнее поверх пингов. Решил я поставить ее себе на роутер под openwrt. Собрал, завел… Не работает. Симптомы были простые — пакет уходит с роутера во внешнюю сеть, а на адресата не приходит, при этом в домашней локалке все работает. При этом тот же hans, запущенный на домашнем компе подключается наружу без вопросов. Кому интересно, как собрать пакет hans под openwrt и как заставить его работать — велком под кат.
Рубрика «c++» - 207
Чиним hanstunnel на openwrt (вычисление контрольной суммы сетевого пакета)
2014-02-03 в 21:17, admin, рубрики: c++, icmp, OpenWrt, Сетевые технологии, метки: icmp, OpenWrtПодсчет расстояния Хэмминга на большом наборе данных
2014-02-03 в 16:58, admin, рубрики: c++, Алгоритмы, двоичный поиск, обработка изображений, перцептуальный хеш, метки: двоичный поиск, перцептуальный хеш В данной статье речь пойдет об алгоритме HEngine и реализации решения проблемы подсчета расстояния Хэмминга на больших объемах данных.
Читать полностью »
Тонкости анализа исходного кода C/C++ с помощью cppcheck
2014-01-30 в 20:04, admin, рубрики: bugs, c language, c++, cppcheck, Программирование, рефакторинг, статический анализ кода, метки: bugs, c language, c++, cppcheck, рефакторинг, статический анализ кодаВ предыдущем посте были рассмотрены основные возможности статического анализатора с открытым исходным кодом cppcheck. Он показывает себя не с худшей стороны даже при базовых настройках, но сегодня речь пойдёт о том, как выжать из этого анализатора максимум полезного.
В этой статье будут рассмотрены возможности cppcheck по вылавливанию утечек памяти, полезные параметры для улучшения анализа, а также экспериментальная возможность по созданию собственных правил. Сегодня никаких сравнений анализаторов «кто лучше», статья полностью посвящена работе с cppcheck.
Читать полностью »
CRTP. Static polymorphism. MixIn. Размышления на тему
2014-01-30 в 18:41, admin, рубрики: c++, design patterns, templates, метки: c++, design patterns, templates В этом посте я поразмышляю на тему статического полиморфизма в С++, архитектурных решениях, строящихся на его основе. Рассмотрю интересную идиому — CRTP. Приведу несколько примеров ее использования. В частности, рассмотрю концепцию MixIn классов. Пишу, чтобы систематизировать собственные знания, но может быть и вы сможете найти что-то интересное для себя.
Читать полностью »
Концепции Boost
2014-01-30 в 13:15, admin, рубрики: assert, boost, c++, concept, template, обобщённое программирование, Программирование, метки: assert, boost, concept, template, обобщённое программированиеОт использования шаблонов в С++ лично меня всегда отпугивало отсутствие стандартных механизмов задания ограничений параметров. Другими словами, когда разработчик пишет функцию
template <class T>
bool someFunc(T t)
{
if (t.someCheck()) {
t.someAction(0);
}
}
он делает различные допущения относительно функциональности объектов типа T, однако не имеет стандартной возможности донести их до пользователей. Так приведенный пример предполагает, как минимум, следующее
Читать полностью »
Унификация ассоциативных STL-контейнеров шаблонным параметром — компаратором
2014-01-29 в 17:02, admin, рубрики: c++, stl, метки: c++, stlРассмотрим код:
std::multiset<int> set0, set1;
for (auto it = set0.begin(); it != set0.end(); ++it) {
// длинная
// обработка
// *it
}
for (auto it = set1.rbegin(); it != set1.rend(); ++it) {
// длинная
// обработка
// *it
}
Обработка в телах циклов — одинаковая, иными словами требуется одинаково обработать элементы двух мультимножеств: первого — в прямом порядке, второго — в обратном.
Читать полностью »
Результаты конкурса на самый глючный код C++
2014-01-27 в 15:19, admin, рубрики: c++, ненормальное программирование, С++, метки: С++После продолжительного обсуждения объявлены победители конкурса Grand C++ Error Explosion Competition. Награды должны были объявить в двух номинациях. Участники первой соревновались по максимальному количеству ошибок на минимальный объём кода. Вторая номинация — творческая, там важно не количество и размер, а качество и красота глюков.
В итоге, абсолютным победителем назван программист Эд Хэнвей (Ed Hanway), приславший такую программу.
#include ".//.//.//.//jeh.cpp"
#include "jeh.cpp"
`
Обзор статического анализатора CppCat
2014-01-23 в 9:10, admin, рубрики: c++, cppcat, анализ, Блог компании Инфопульс Украина, Программирование, метки: c++, cppcat, анализСовсем недавно на Хабре презентовали новый инструмент статического анализа С++ кода — CppCat. О предыдущем своём проекте (PVS-Studio) его авторы долго и подробно рассказывали на Хабре. Отношение к нему у меня было двоякое — с одной стороны, статический анализ, конечно, нужен. С ним лучше, чем без него. С другой стороны — PVS-Studio пугала своей масштабностью, эдакой «энтерпрайзнутостью» ну и ещё ценой. Я хорошо себе представлял, как её может купить команда проекта человек в 50, но что делать разработчику-одиночке или команде человек в 5 — я не понимал. Помнится, предлагал как-то авторам развернуть «PVS as a service» в облаке и продавать доступ к нему по времени. Но они пошли своим путём и сделали урезанную версию за относительно небольшие деньги (такой бюджет вполне реально «пробить» или даже купить просто для себя).
Давайте посмотрим, стоит ли игра свеч.
Читать полностью »
Самый натуральный логарифм
2014-01-16 в 8:56, admin, рубрики: c++, математика, ненормальное программирование, метки: c++Вдохновившись постом про вычисление pi, решил вычислить подобным образом число e. По пути получилась функция натурального логарифма.
Анализ проекта Source SDK
2014-01-16 в 8:37, admin, рубрики: bugs, c++, cppcat, game development, pvs-studio, Блог компании PVS-Studio, обзор кода, ошибки в коде, разработка игр, метки: bugs, c++, cppcat, pvs-studio, обзор кода, ошибки в коде, разработка игр Source SDK — набор утилит для создания модификаций на движке Source, разработанный корпорацией Valve. Исходные коды проекта были скачены и проверены ещё в конце 2013 года. На новогодних праздниках я планировал написать статью о результатах проверок. Но лень победила творчество, и я приступил к написанию статьи только когда вернулся на работу. Впрочем, я думаю, вряд ли за этот период что-то успело измениться в исходных кодах. Предлагаю вашему вниманию ознакомиться с подозрительными местами, которые я нашёл с помощью анализатора кода PVS-Studio.
Читать полностью »