* added: class HTMLFilter

files: htmlfilter.h htmlfilter.cpp
         this is an html filter used to make the html output looking better
         this is a very lightweight filter
         (without using any dynamic memory - some memory is allocated only at the beginning - in ctors)
         this filter has O(n) complexity over the whole html string
* added: antyspamming method
         if the POST request is sent too fast after the GET
         it is treated as a spam
         only for no logged users and only in 'emacs' and 'createthread' functions
       


git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@534 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2009-12-09 00:42:40 +00:00
parent 9241fddb1e
commit 717eb526fb
32 changed files with 1356 additions and 198 deletions

View File

@@ -5,10 +5,11 @@ dir.o: ../core/requesttypes.h ../core/session.h ../core/done.h ../core/item.h
dir.o: ../core/error.h ../core/log.h ../core/user.h ../core/rebus.h
dir.o: ../core/function.h ../core/thread.h ../core/compress.h
dir.o: ../core/acceptencodingparser.h ../core/acceptbaseparser.h
dir.o: ../core/data.h ../core/dirs.h ../core/dircontainer.h ../core/users.h
dir.o: ../core/ugcontainer.h ../core/groups.h ../core/group.h
dir.o: ../core/functions.h ../core/lastcontainer.h ../core/mounts.h
dir.o: ../core/mount.h ../core/db.h ../core/log.h ../core/misc.h
dir.o: ../core/htmlfilter.h ../core/data.h ../core/dirs.h
dir.o: ../core/dircontainer.h ../core/users.h ../core/ugcontainer.h
dir.o: ../core/groups.h ../core/group.h ../core/functions.h
dir.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h ../core/db.h
dir.o: ../core/log.h ../core/misc.h
doc.o: templates.h patterncacher.h ../core/item.h ../core/data.h
doc.o: ../core/dirs.h ../core/item.h ../core/dircontainer.h ../core/users.h
doc.o: ../core/user.h ../core/ugcontainer.h ../core/log.h ../core/groups.h
@@ -17,13 +18,13 @@ doc.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h
doc.o: ../core/rebus.h ../core/request.h ../core/requesttypes.h
doc.o: ../core/session.h ../core/done.h ../core/error.h ../core/thread.h
doc.o: ../core/compress.h ../core/acceptencodingparser.h
doc.o: ../core/acceptbaseparser.h ../core/misc.h
doc.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/misc.h
done.o: templates.h patterncacher.h ../core/item.h ../core/request.h
done.o: ../core/requesttypes.h ../core/session.h ../core/done.h
done.o: ../core/item.h ../core/error.h ../core/log.h ../core/user.h
done.o: ../core/rebus.h ../core/function.h ../core/thread.h
done.o: ../core/compress.h ../core/acceptencodingparser.h
done.o: ../core/acceptbaseparser.h ../core/misc.h
done.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/misc.h
item.o: templates.h patterncacher.h ../core/item.h ../core/data.h
item.o: ../core/dirs.h ../core/item.h ../core/dircontainer.h ../core/users.h
item.o: ../core/user.h ../core/ugcontainer.h ../core/log.h ../core/groups.h
@@ -32,7 +33,7 @@ item.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h
item.o: ../core/rebus.h ../core/request.h ../core/requesttypes.h
item.o: ../core/session.h ../core/done.h ../core/error.h ../core/thread.h
item.o: ../core/compress.h ../core/acceptencodingparser.h
item.o: ../core/acceptbaseparser.h ../core/misc.h
item.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/misc.h
last.o: templates.h patterncacher.h ../core/item.h ../core/lastcontainer.h
last.o: ../core/data.h ../core/dirs.h ../core/item.h ../core/dircontainer.h
last.o: ../core/users.h ../core/user.h ../core/ugcontainer.h ../core/log.h
@@ -42,7 +43,7 @@ last.o: ../core/mount.h ../core/rebus.h ../core/request.h
last.o: ../core/requesttypes.h ../core/session.h ../core/done.h
last.o: ../core/error.h ../core/thread.h ../core/compress.h
last.o: ../core/acceptencodingparser.h ../core/acceptbaseparser.h
last.o: ../core/misc.h
last.o: ../core/htmlfilter.h ../core/misc.h
mount.o: templates.h patterncacher.h ../core/item.h ../core/data.h
mount.o: ../core/dirs.h ../core/item.h ../core/dircontainer.h ../core/users.h
mount.o: ../core/user.h ../core/ugcontainer.h ../core/log.h ../core/groups.h
@@ -63,16 +64,16 @@ priv.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h
priv.o: ../core/rebus.h ../core/request.h ../core/requesttypes.h
priv.o: ../core/session.h ../core/done.h ../core/error.h ../core/thread.h
priv.o: ../core/compress.h ../core/acceptencodingparser.h
priv.o: ../core/acceptbaseparser.h ../core/misc.h
priv.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/misc.h
rebus.o: ../core/request.h ../core/requesttypes.h ../core/session.h
rebus.o: ../core/done.h ../core/item.h ../core/error.h ../core/log.h
rebus.o: ../core/user.h ../core/rebus.h ../core/function.h ../core/thread.h
rebus.o: ../core/compress.h ../core/acceptencodingparser.h
rebus.o: ../core/acceptbaseparser.h ../core/data.h ../core/dirs.h
rebus.o: ../core/dircontainer.h ../core/users.h ../core/ugcontainer.h
rebus.o: ../core/groups.h ../core/group.h ../core/functions.h
rebus.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h templates.h
rebus.o: patterncacher.h ../core/item.h
rebus.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/data.h
rebus.o: ../core/dirs.h ../core/dircontainer.h ../core/users.h
rebus.o: ../core/ugcontainer.h ../core/groups.h ../core/group.h
rebus.o: ../core/functions.h ../core/lastcontainer.h ../core/mounts.h
rebus.o: ../core/mount.h templates.h patterncacher.h ../core/item.h
sys.o: templates.h patterncacher.h ../core/item.h ../core/data.h
sys.o: ../core/dirs.h ../core/item.h ../core/dircontainer.h ../core/users.h
sys.o: ../core/user.h ../core/ugcontainer.h ../core/log.h ../core/groups.h
@@ -81,7 +82,7 @@ sys.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h
sys.o: ../core/rebus.h ../core/request.h ../core/requesttypes.h
sys.o: ../core/session.h ../core/done.h ../core/error.h ../core/thread.h
sys.o: ../core/compress.h ../core/acceptencodingparser.h
sys.o: ../core/acceptbaseparser.h ../core/misc.h
sys.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/misc.h
templates.o: templates.h patterncacher.h ../core/item.h ../core/data.h
templates.o: ../core/dirs.h ../core/item.h ../core/dircontainer.h
templates.o: ../core/users.h ../core/user.h ../core/ugcontainer.h
@@ -91,8 +92,9 @@ templates.o: ../core/mounts.h ../core/mount.h ../core/rebus.h
templates.o: ../core/request.h ../core/requesttypes.h ../core/session.h
templates.o: ../core/done.h ../core/error.h ../core/thread.h
templates.o: ../core/compress.h ../core/acceptencodingparser.h
templates.o: ../core/acceptbaseparser.h ../core/misc.h ../core/plugin.h
templates.o: ../core/request.h ../core/data.h ../core/pluginmsg.h
templates.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/misc.h
templates.o: ../core/plugin.h ../core/request.h ../core/data.h
templates.o: ../core/pluginmsg.h
thread.o: templates.h patterncacher.h ../core/item.h ../core/data.h
thread.o: ../core/dirs.h ../core/item.h ../core/dircontainer.h
thread.o: ../core/users.h ../core/user.h ../core/ugcontainer.h ../core/log.h
@@ -102,7 +104,7 @@ thread.o: ../core/mount.h ../core/rebus.h ../core/request.h
thread.o: ../core/requesttypes.h ../core/session.h ../core/done.h
thread.o: ../core/error.h ../core/thread.h ../core/compress.h
thread.o: ../core/acceptencodingparser.h ../core/acceptbaseparser.h
thread.o: ../core/misc.h
thread.o: ../core/htmlfilter.h ../core/misc.h
user.o: templates.h patterncacher.h ../core/item.h ../core/data.h
user.o: ../core/dirs.h ../core/item.h ../core/dircontainer.h ../core/users.h
user.o: ../core/user.h ../core/ugcontainer.h ../core/log.h ../core/groups.h
@@ -111,7 +113,7 @@ user.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h
user.o: ../core/rebus.h ../core/request.h ../core/requesttypes.h
user.o: ../core/session.h ../core/done.h ../core/error.h ../core/thread.h
user.o: ../core/compress.h ../core/acceptencodingparser.h
user.o: ../core/acceptbaseparser.h ../core/misc.h
user.o: ../core/acceptbaseparser.h ../core/htmlfilter.h ../core/misc.h
who.o: templates.h patterncacher.h ../core/item.h ../core/sessioncontainer.h
who.o: ../core/session.h ../core/done.h ../core/item.h ../core/error.h
who.o: ../core/log.h ../core/user.h ../core/rebus.h
@@ -124,4 +126,4 @@ who.o: ../core/groups.h ../core/group.h ../core/functions.h
who.o: ../core/function.h ../core/lastcontainer.h ../core/mounts.h
who.o: ../core/mount.h ../core/request.h ../core/thread.h ../core/compress.h
who.o: ../core/acceptencodingparser.h ../core/acceptbaseparser.h
who.o: ../core/misc.h
who.o: ../core/htmlfilter.h ../core/misc.h

View File

@@ -71,13 +71,13 @@ void doc_current_url(Info & i)
void doc_status_error(Info & i)
void doc_is_error(Info & i)
{
i.result = request.status != Error::ok;
}
void doc_status_code(Info & i)
void doc_status(Info & i)
{
i.out << static_cast<int>( request.status );
}

View File

@@ -18,9 +18,9 @@ namespace TemplatesFunctions
void done_errors(Info & i)
void done_is_error(Info & i)
{
i.result = request.session->done_status != Error::ok;
i.result = request.session->done_status != Error::ok;
}
@@ -41,7 +41,15 @@ void done_status_incorrect_dir(Info & i)
i.result = request.session->done_status == Error::incorrect_dir;
}
void done_status_incorrect_rebus(Info & i)
{
i.result = request.session->done_status == Error::incorrect_rebus;
}
void done_status_spam(Info & i)
{
i.result = request.session->done_status == Error::spam;
}
void done_added_item(Info & i)
{

View File

@@ -27,6 +27,7 @@ void rebus_init()
if( rebus_reqid != request.id )
{
request.session->rebus_item = data.rebus.Rand();
request.session->rebus_checked = false;
rebus_reqid = request.id;
}
}

View File

@@ -136,7 +136,8 @@ Ezc::Pattern * p = 0;
switch( request.status )
{
case Error::ok:
case Error::rebus_bad_answer:
case Error::spam:
case Error::incorrect_rebus:
p = content_for_function();
break;
@@ -206,10 +207,9 @@ void Templates::CreateFunctions()
functions.Insert("doc_charset", doc_charset);
functions.Insert("doc_base_url", doc_base_url);
functions.Insert("doc_current_url", doc_current_url);
functions.Insert("doc_status_error", doc_status_error);
functions.Insert("doc_status_code", doc_status_code);
functions.Insert("doc_is_error", doc_is_error);
functions.Insert("doc_status", doc_status);
/*
item
*/
@@ -317,19 +317,21 @@ void Templates::CreateFunctions()
/*
done
*/
functions.Insert("done_errors", done_errors);
functions.Insert("done_status", done_status);
functions.Insert("done_status_no_item", done_status_no_item);
functions.Insert("done_status_incorrect_dir", done_status_incorrect_dir);
functions.Insert("done_added_item", done_added_item);
functions.Insert("done_edited_item", done_edited_item);
functions.Insert("done_deleted_item", done_deleted_item);
functions.Insert("done_privileged_item", done_privileged_item);
functions.Insert("done_loggedout", done_loggedout);
functions.Insert("done_added_dir", done_added_dir);
functions.Insert("done_deleted_dir", done_deleted_dir);
functions.Insert("done_defaulted_dir", done_defaulted_dir);
functions.Insert("done_reloaded_templates", done_reloaded_templates);
functions.Insert("done_is_error", done_is_error);
functions.Insert("done_status", done_status);
functions.Insert("done_status_no_item", done_status_no_item);
functions.Insert("done_status_incorrect_dir", done_status_incorrect_dir);
functions.Insert("done_status_incorrect_rebus", done_status_incorrect_rebus);
functions.Insert("done_status_spam", done_status_spam);
functions.Insert("done_added_item", done_added_item);
functions.Insert("done_edited_item", done_edited_item);
functions.Insert("done_deleted_item", done_deleted_item);
functions.Insert("done_privileged_item", done_privileged_item);
functions.Insert("done_loggedout", done_loggedout);
functions.Insert("done_added_dir", done_added_dir);
functions.Insert("done_deleted_dir", done_deleted_dir);
functions.Insert("done_defaulted_dir", done_defaulted_dir);
functions.Insert("done_reloaded_templates", done_reloaded_templates);
/*

View File

@@ -46,8 +46,8 @@ namespace TemplatesFunctions
void doc_charset(Info & i);
void doc_base_url(Info & i);
void doc_current_url(Info & i);
void doc_status_error(Info & i);
void doc_status_code(Info & i);
void doc_is_error(Info & i);
void doc_status(Info & i);
/*
@@ -158,10 +158,12 @@ namespace TemplatesFunctions
/*
done
*/
void done_errors(Info & i);
void done_is_error(Info & i);
void done_status(Info & i);
void done_status_no_item(Info & i);
void done_status_incorrect_dir(Info & i);
void done_status_incorrect_rebus(Info & i);
void done_status_spam(Info & i);
void done_added_item(Info & i);
void done_edited_item(Info & i);