Permalink
Browse files

Do not store squid log line in DB if size is 0. Correctly create http…

…_access line in squid.conf if template has no restrictions.
  • Loading branch information...
mclight77
mclight77 committed Feb 25, 2010
1 parent 5234558 commit aaffa4d4847a84a15634c6dc1a2aead006fe8950
Showing with 36 additions and 17 deletions.
  1. +3 −0 NEWS
  2. +26 −17 src/squidconf.cpp
  3. +7 −0 src/squidlogparser.cpp
View
3 NEWS
@@ -206,3 +206,6 @@
(проверить можно командой psql -U $DB_USER -l, где $DB_USER - значение параметра из sams2.conf)
Список кодировок, поддерживающих русский язык:
ISO_8859_5, KOI8R, SQL_ASCII (т.е. "как есть", не рекомендуется), UTF8, WIN866, WIN1251
100226
Не заносить в БД строки из access.log, если размер url равен 0. (Например, как у метода CONNECT)
При отсутствии редиректора правильно формировать строку http_access в squid.conf, если у шаблона нет никаких ограничений.
View
@@ -374,28 +374,37 @@ bool SquidConf::defineACL ()
}
}
// Если используется внешний редиректор, то он проверяет ограничения, а squid пускает всех
if (redir_type != Proxy::REDIR_NONE)
fout << "http_access allow Sams2Template" << tpl->getId () << endl;
else if (SAMSUserList::activeUsersInTemplate (tpl->getId ()) > 0)
{
uint idx;
for (idx=0; idx<restriction_deny.size(); idx++)
fout << "http_access allow Sams2Template" << tpl->getId () << " !" << restriction_deny[idx] << endl;
//Если запрещен доступ ко всем ресурсам
if ( tpl->getAllDeny () != 0 )
{
for (idx=0; idx<restriction_allow.size(); idx++)
fout << "http_access deny Sams2Template" << tpl->getId () << " !" << restriction_allow[idx] << endl;
}
else
{
for (idx=0; idx<restriction_allow.size(); idx++)
fout << "http_access allow Sams2Template" << tpl->getId () << " " << restriction_allow[idx] << endl;
}
// Если нет ограничений у шаблона, то просто разрешаем доступ
if ((restriction_deny.size()==0) && (restriction_allow.size()==0) && (restriction_time.size()==0))
{
fout << "http_access allow Sams2Template" << tpl->getId () << endl;
}
else // Накладываем различные ограничения
{
uint idx;
for (idx=0; idx<restriction_deny.size(); idx++)
fout << "http_access allow Sams2Template" << tpl->getId () << " !" << restriction_deny[idx] << endl;
//Если запрещен доступ ко всем ресурсам
if ( tpl->getAllDeny () != 0 )
{
for (idx=0; idx<restriction_allow.size(); idx++)
fout << "http_access deny Sams2Template" << tpl->getId () << " !" << restriction_allow[idx] << endl;
}
else
{
for (idx=0; idx<restriction_allow.size(); idx++)
fout << "http_access allow Sams2Template" << tpl->getId () << " " << restriction_allow[idx] << endl;
}
for (idx=0; idx<restriction_time.size(); idx++)
fout << "http_access allow Sams2Template" << tpl->getId () << " " << restriction_time[idx] << endl;
for (idx=0; idx<restriction_time.size(); idx++)
fout << "http_access allow Sams2Template" << tpl->getId () << " " << restriction_time[idx] << endl;
}
}
}
} //if (current_tag == "http_access")
View
@@ -475,6 +475,13 @@ void SquidLogParser::parseFile (DBConn *conn, const string & fname, bool from_be
usr->addSize (s_size);
break;
}
if (s_size == 0)
{
DEBUG (DEBUG9, "[" << this << "->" << __FUNCTION__ << "] " << "s_size=0, drop processing log line");
continue;
}
sprintf (s_user, "%s", usr->getNick ().c_str ());
sprintf (s_domain, "%s", usr->getDomain ().c_str ());
sprintf (s_ipaddr, "%s", sll.getIP ().c_str ());

0 comments on commit aaffa4d

Please sign in to comment.