SAMS 1.0.4 и отключенные пользователи

Всем здрасьте!

Стоит выше указанный самс с патчем для кредитного трафика и плюс еще небольшие дорабтки связанные с выполнением скрипта после отключения пользователя.
Настроен на работе по ntlm но только используя squid ntlm_auth, связано с тем что нельзя на данном сервере поднимать samba. Все работает вроде нормально.
Но т.к. сама стоит на двух территориях для разных доменов то пришлось писать скрипт который обращается к АД и проверяет существует ли пользователь в АД. Если его там нет или он отключен то скрипт отключает данного пользователя и в самса. Скрипт запускается раз в 5 минут. Самс настроен на период лимита трафика 1 день.
Так вот каждый день ровно в 00:05 данный скрипт отключает заново тех пользователей которых отключил день назад. То есть насколько я понял если у пользователя в самсе стоит поле активен в отключен то самс все равно после истечения периода лимита заново его включает.

Это специально так сделано или все таки недочет данной версии.
Если недочет то хотелось бы увидеть решение данной проблемы.
А что будет если я в значении поля активен поставлю не -1(отключен) и не 0(отключен за превышение трафика) а например 2 или -2. Самс также отработает или просто проигнорирует данное поле.

Прошу прощения.
Предыдущий патч не включал пользователей которые имели статус отключен. Но при этом он не обнулял трафик этих пользователей за период ограничения трафика.
Исправляюсь выкладываю новый.

Вроде нашел место где это прописано

Если не прав поправьте меня.

Поправил samsdaemon.c

--- sams-1.0.4.old/samsdaemon.c 2008-10-26 21:57:07.000000000 +0300
+++ sams-1.0.4/samsdaemon.c 2009-07-01 13:45:26.000000000 +0400
@@ -2744,7 +2744,7 @@
{
row=mysql_fetch_row(res);
// sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE enabled>='0'&&shablon='%s' ",conf.samsdb,row[1]);
- sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE shablon='%s' ",conf.samsdb,row[1]);
+ sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE shablon='%s' AND NOT enabled='-1' ",conf.samsdb,row[1]);
flag=send_mysql_query(conn2,&str[0]);
sprintf(&str[0],"Traffic clean. Template %s, period %s",row[2],row[0]);
AddLog(conn2,0,"samsdaemon",&str[0]);
@@ -2764,7 +2764,7 @@
{
row=mysql_fetch_row(res);
// sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE enabled>='0'&&shablon='%s' ",conf.samsdb,row[1]);
- sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE shablon='%s' ",conf.samsdb,row[1]);
+ sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE shablon='%s' AND NOT enabled='-1' ",conf.samsdb,row[1]);
flag=send_mysql_query(conn2,&str[0]);
sprintf(&str[0],"Traffic clean. Template %s, period %s",row[2],row[0]);
AddLog(conn2,0,"samsdaemon",&str[0]);
@@ -2783,7 +2783,7 @@
if(DEBUG>0)
printf("Perod %d: %d days. Traffic cleaned\n", i, atoi(row[0]));
// sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE enabled>='0'&&shablon='%s' ",conf.samsdb,row[1]);
- sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE shablon='%s' ",conf.samsdb,row[1]);
+ sprintf(&str[0],"UPDATE %s.squidusers SET size='0',hit='0',enabled='1' WHERE shablon='%s' AND NOT enabled='-1'",conf.samsdb,row[1]);
flag=send_mysql_query(conn2,&str[0]);

tt2=tt+60*60*24*atoi(row[0]);

Сам пока не проверял. т.к. машина боевая и в данный момент нет возможности проверить. попробую или сегодня вечером или завтра.

Кстати если разработчики воглядев на изменения скажут что надо поменять и еще где-то то с удовольствием посмотрю что и где менять.

Сорри файлом думаю лучше будет.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".