The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Патч лимитирующий размер письма для popsneaker (patch pop3 limit)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: patch, pop3, limit,  (найти похожие документы)
Date: Fri, 26 Dec 2003 05:46:23 +0500 From: Serge <genie@nsk.ru> Newsgroups: ftn.ru.linux Subject: Патч лимитирующий размер письма для popsneaker S>> Hужно дропать (уведомления - мне) письма от 135000 до 165000 байт. S>> Остальное - оставлять. MK> Уведомления - должно получиться, от ... до ... - не должно, кажется. Замечательно получается :) ##-------- popsneaker-0.6.2_ext_maxsize.patch --------## diff -ruN popsneaker-0.6.2/popsneaker/parser.cpp popsneaker-0.6.2_ext_maxsize/popsneaker/parser.cpp - --- popsneaker-0.6.2/popsneaker/parser.cpp 2002-10-22 23:37:36 +0700 +++ popsneaker-0.6.2_ext_maxsize/popsneaker/parser.cpp 2003-12-25 09:21:47 +0000 @@ -331,6 +331,7 @@ void Parser::maxsize(void){ Rule* rule = new Rule; + unsigned long size0; chkptr(rule); scanner.nextToken(); @@ -340,14 +341,20 @@ } if(scanner.getToken() == t_numeric) { - rule->set_maxsize(scanner.getNumeric()); + size0 = scanner.getNumeric(); + scanner.nextToken(); + if(scanner.getToken() == t_numeric) { + rule->set_maxsize(size0, scanner.getNumeric()); + scanner.nextToken(); + } else { + rule->set_maxsize(size0, (unsigned long)-1); + } } else { parse_error("size expected"); } rp.add(rule); - scanner.nextToken(); eoc(); } diff -ruN popsneaker-0.6.2/popsneaker/rule.cpp popsneaker-0.6.2_ext_maxsize/popsneaker/rule.cpp - --- popsneaker-0.6.2/popsneaker/rule.cpp 2002-10-22 23:38:31 +0700 +++ popsneaker-0.6.2_ext_maxsize/popsneaker/rule.cpp 2003-12-25 09:05:03 +0000 @@ -40,9 +40,10 @@ /** Setup a maxsize rule */ -void Rule::set_maxsize(unsigned long size){ +void Rule::set_maxsize(unsigned long size0, unsigned long size1){ type = RT_MAXSIZE; - maxsize = size; + maxsize[0] = size0; + maxsize[1] = size1; } @@ -233,10 +234,10 @@ /** Apply the maxsize rule on a mailheader */ mailaction Rule::applyMaxsize(MailHeader* header){ - if(header->size > maxsize) { + if(header->size > maxsize[0] && header->size <= maxsize[1]) { char buffer[64]; - sprintf(buffer, "mail (%10.2fKB) is bigger than %10.2fKB", \ - header->size / 1024.0, maxsize / 1024.0); + sprintf(buffer, "mail (%10.2fKB) is bigger than %10.2fKB and less than %10.2fKB", \ + header->size / 1024.0, maxsize[0] / 1024.0, maxsize[1] / 1024.0); header->reason = buffer; return (silent) ? MA_SDELETE : MA_DELETE; } else { diff -ruN popsneaker-0.6.2/popsneaker/rule.h popsneaker-0.6.2_ext_maxsize/popsneaker/rule.h - --- popsneaker-0.6.2/popsneaker/rule.h 2002-10-22 23:37:36 +0700 +++ popsneaker-0.6.2_ext_maxsize/popsneaker/rule.h 2003-12-25 09:48:47 +0000 @@ -40,7 +40,7 @@ ~Rule(); /** Setup a maxsize rule */ - void set_maxsize(unsigned long); + void set_maxsize(unsigned long, unsigned long); /** Setup an accept rule */ void set_accept(const char*); @@ -111,7 +111,7 @@ int options; // Options for the regular expression. private: bool silent; // Delete mail in silence. - unsigned long maxsize; // A maximum size for the mail. + unsigned long maxsize[2]; // A maximum size for the mail. mailaction score_action; // Action when score evaluation succeeds. public: long score_value; // The value for a score rule. ##-------- popsneaker-0.6.2_ext_maxsize.patch --------## теперь можно указывать необязательный второй агрумент maxsize, задающий верхнюю границу размера (если не указывать, считается 2^32-1)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру