Собственно, ситуация.Есть шлюз. На нем запущены агенты nol2auth, noserver и nomake.
Файл конфигурации sat.cfg один для всех троих агентов.
В конфиге этого сателлита прописано:
Агент управления доступом:
<много групп через запятую> - id групп клиентов с которыми работаем, перечислите через запятую.
Первых два агента отрабатывают нормально, номейк.пл вываливается с ошибкой
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND grp IN (50,16,17,13,14,35,44,11,12,30,43,4,3,21,37) ORDER BY id' at line 1 at /usr/local/nodeny/nosat.pl line 237.
Быстрый осмотр показал, что ПРИ НАЛИЧИИ групп вызывается условие без ключевого слова
WHERE, которое используется один раз.
Запрос при этом выглядел вот так:
SELECT SQL_BUFFER_RESULT id,ip,name,state,auth,AES_DECRYPT(passwd,'хххххххххх') FROM users AND grp IN (50,16,17,13,14,35,44,11,12,30,43,4,3,21,37) ORDER BY id
п.с. Возможно, это было простое стрл-ц/стрл-в.
Решение:Строка 911 файла nomake.pl
$Where_grp=$c{Usr_nosrvr_groups}? " AND grp IN($c{Usr_nosrvr_groups})" : '';
заменить на
$Where_grp=$c{Usr_nosrvr_groups}? " WHERE grp IN($c{Usr_nosrvr_groups})" : '';
п.п.с. Не думаю, что баян, ибо не нашел такой темы на форуме.