Monthly Archives: November 2008
Сегодня неторопясь допинал свой курсач по ОСям. Задание, кстати, было весьма интересное, за мои 2.5 года в институте такое впервые ) А именно наваять чекер листов прокси, на нативных функциях Win32 и с применением многопоточности. Требования очень простые – на входе текстовик с HTTP проксиками, на выходе – такой же, но составленный только из работающих и отсортированный по возрастанию времени отклика + возможность определять, являются ли проверенные прокси транспарентными, либо все-таки скрывают истинный IP. Реализация не сложная, на C++ с использованием виндовых сокетов (сначала пробовал wininet, но оказалось, что он имеет нехорошую способность иногда намертво подвисать, причем поток после этого ведет себя неадекватно). Так что самым оптимальным решением, на мой взгляд, было использование winsock для работы с сокетами в неблокирующем режиме. Появилась возможность самим управлять таймаутом операции, а следовательно, и предотвратить случаи некорректной работы потоков.
При реализации обнаружил интересную задачу, связанную с функциями переменного числа аргументов. Вкратце, она сводилась к тому, чтобы написать свой переходник для printf(char *format, …) – с блекджеком и шлюхами, естественно, скажем, вида LogMessage(char *format, …) – так, чтобы внутренности этого переходника вызывали printf с теми же параметрами. Возможно, стоит написать об этом отдельный пост, а пока просто сообщу, что один способ я нашел и он лежит внутри. 🙂 Не самое лучшее решение, опять же, но для сельской местности сойдет.
К сему прилагаются бинарники и исходники:
Download
Недавно решил снова поднять OpenVPN на дешевом VDS от minivds.com, дабы не париться в случае бана IP на всяких файловых помойках типа ifolder.ru или rapidshare.com. Для этого пришлось заказать отдельный виртуальный сервер на дебиане, потому что виртуальные сети, реализованные в FreeBSD, поддерживаются хостером minivds.com криво, не позволяя устанавливать OpenVPN (администрация хостинга обещает, что к моменту перехода на FreeBSD 7, в которой реализована поддержка виртуальных сетей, ситуация улучшится, но пока остается пользоваться доступным дебиановским вариантом). Убив воскресенье на это, я решил написать краткий мануал по инсталляции OpenVPN на Debian’e, с учетом специфики minivds. Итак, приступим. (more…)
3