← All posts tagged ipset

OCTAGRAM

Разбираюсь по работе с libipset API
Эти козлы сделали всё возможное, чтоб мне жизнь мёдом не казалось.
1. Чтобы мне получить список IP, присутствующих сейчас во множестве, мне нужно предоставить процедуру вывода, создать сессию, которая будет писать свой вывод этой процедурой, установить формат вывода XML, отправить команду list, подхватить вывод в буфер, распарсить XML из буфера, и только тогда я получу желанный список IP. Я вообще думал, для программистов должен быть какой–нибудь интерфейс попроще.
1. callback для вывода текста принимает varargs. Вот всю жизнь мечтал printf реализовать. Буду пробовать при помощи vasprintf оградить себя от этой пакости.
1. Нет UserData указателя, чтоб мне как–то отличать, кто пришёл в процедуру печати. Варианты лечения: создать пул трамплинов, использовать thread local storage или попробовать использовать GNAT'ский генератор трамплинов для замыканий. Последнее — сильная магия, но вдруг получится.

С WinAPI тааааааааакого геморроя не было. Не помню, чтоб там где–то мог быть CallBack без UserData. И varargs в stdcall не особо получится сделать всяким умникам.