P.S. Насчет geoip... а как мне можно освобождать память, которую он
выделяет (только сейчас в голову пришло, что он тоже вполне имеет
право на это)?
Посмотрел - точно - там тонны маллоков.... Куда его запихать - этот
инициализарующий вызов, чтобы потом можно было результаты
использовать в баннерофильтре (т.к. я не нашел утверждений об
обратном, считаем, что он не thread-safe)?
Инициализирующий вызов - куда угодно. После этого нужно привязать
деинициализацию к пулу cf->pool с помощью ngx_pool_cleanup_add()
на примере ngx_pool_cleanup_file().
Хочу проверить, правильно ли понял...
Итак, если у нас есть в create_conf у модуля какой-то вызов внешней
процедуры, возвращающей нам "SomeType* x" и мы должны вызывать
SomeFree(x) при обновлении конфигурации через -HUP, то делать нужно так
(на примере GeoIP):