NoDeny - это "конструктор", который можно "собрать" под свои нужды. Однако иногда необходимо править исходный код биллинга.
Во многих сетях есть абоненты, работающие в режиме "Всегда онлайн". Для того, чтобы в админке биллинга наблюдать, кто из этих пользователей работает в данный момент, необходимо внести небольшие изменения в файл nodeny.pl, который находится в каталоге /usr/local/nodeny.
Находим в файле такие строки:
|    &CountMoney($id); }  &SaveTrafTime(3,tv_interval($t0)); $t0=[gettimeofday]; | 
И перед строкой &SaveTrafTime(3,tv_interval($t0)); вносим дополнительный SQL-запрос:
| $dbh->do("INSERT INTO dblogin (mid,act,time) SELECT `users`.`id`,'17',UNIX_TIMESTAMP() FROM `users` LEFT JOIN `$x_traf_tbl` ON `users`.`id`=`$x_traf_tbl`.`mid` WHERE `in` > 0 AND `out` > 0 AND `$x_traf_tbl`.`time`>$t-$Kern_t_traf*2 and `users`.`lstate`>0 group by users.id"); | 
Тоесть, после внесения изменений имеем следующие строки:
|    &CountMoney($id); } $dbh->do("INSERT INTO dblogin (mid,act,time) SELECT `users`.`id`,'17',UNIX_TIMESTAMP() FROM `users` LEFT JOIN `$x_traf_tbl` ON `users`.`id`=`$x_traf_tbl`.`mid` WHERE `in` > 0 AND `out` > 0 AND `$x_traf_tbl`.`time`>$t-$Kern_t_traf*2 and `users`.`lstate`>0 group by users.id");  &SaveTrafTime(3,tv_interval($t0)); $t0=[gettimeofday]; | 
Для того, чтобы изменения вступили в силу, необходимо из админки биллинга, отправить ядру команду "Рестарт". По истечению небольшого промежутка времени напротив работающих пользователей будет отображаться зеленый ключик.

