![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package imapfilter for openSUSE:Factory checked in at Fri Nov 5 17:26:19 CET 2010. -------- --- imapfilter/imapfilter.changes 2009-12-31 21:06:07.000000000 +0100 +++ imapfilter/imapfilter.changes 2010-11-05 17:06:16.000000000 +0100 @@ -1,0 +2,8 @@ +Fri Nov 5 16:05:35 UTC 2010 - hvogel@novell.com + +- Update to version 2.2.2 + * Bug fix; a couple of errors in the extending examples file. + * A global option for the IDLE refreshing interval was added. + * Bug fix; more detailed reporting when SSL socket errors occur. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- imapfilter-2.2.tar.bz2 New: ---- imapfilter-2.2.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ imapfilter.spec ++++++ --- /var/tmp/diff_new_pack.H1gvGm/_old 2010-11-05 17:25:48.000000000 +0100 +++ /var/tmp/diff_new_pack.H1gvGm/_new 2010-11-05 17:25:48.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package imapfilter (Version 2.2) +# spec file for package imapfilter (Version 2.2.2) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -15,17 +15,16 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild Name: imapfilter Summary: A mail filtering utility -Version: 2.2 -Release: 1 License: MIT -Group: Productivity/Networking/Email/Utilities Url: http://imapfilter.hellug.gr -Source: http://imapfilter.hellug.gr/source/imapfilter-%{version}.tar.bz2 +Group: Productivity/Networking/Email/Utilities +Version: 2.2.2 +Release: 1 +Source: http://imapfilter.hellug.gr/source/%{name}-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: lua-devel >= 5.1 BuildRequires: openssl-devel pcre-devel pkgconfig @@ -42,13 +41,8 @@ extension language. - -Authors: --------- - Lefteris Chatzibarbas <lefcha@hellug.gr> - %prep -%setup +%setup -q %build ./configure -d "%{_prefix}" -b "%{_bindir}" -m "%{_mandir}" ++++++ imapfilter-2.2.tar.bz2 -> imapfilter-2.2.2.tar.bz2 ++++++ Files old/imapfilter-2.2/.swp and new/imapfilter-2.2.2/.swp differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/LICENSE new/imapfilter-2.2.2/LICENSE --- old/imapfilter-2.2/LICENSE 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/LICENSE 2010-01-23 15:37:50.000000000 +0100 @@ -1,4 +1,4 @@ -Copyright (c) 2001-2009 Eleftherios Chatzimparmpas +Copyright (c) 2001-2010 Eleftherios Chatzimparmpas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/NEWS new/imapfilter-2.2.2/NEWS --- old/imapfilter-2.2/NEWS 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/NEWS 2010-01-23 15:37:50.000000000 +0100 @@ -1,3 +1,14 @@ +Version 2.2.2 - 23 January 2010 +------------------------------- +- Bug fix; a couple of errors in the extending examples file. + + +Version 2.2.1 - 20 January 2010 +------------------------------- +- A global option for the IDLE refreshing interval was added. +- Bug fix; more detailed reporting when SSL socket errors occur. + + Version 2.2 - 30 December 2009 ------------------------------ - Support for combining searching methods in multiple mailboxes at the same or diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/README new/imapfilter-2.2.2/README --- old/imapfilter-2.2/README 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/README 2010-01-23 15:37:50.000000000 +0100 @@ -1,5 +1,5 @@ -IMAPFilter Version 2.2 -====================== +IMAPFilter Version 2.2.2 +======================== Requirements ------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/imapfilter_config.5 new/imapfilter-2.2.2/imapfilter_config.5 --- old/imapfilter-2.2/imapfilter_config.5 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/imapfilter_config.5 2010-01-23 15:37:50.000000000 +0100 @@ -1,4 +1,4 @@ -.Dd December 28, 2009 +.Dd January 23, 2010 .Dt IMAPFILTER_CONFIG 5 .Os .Sh NAME @@ -72,23 +72,28 @@ .It Va cache When this option is enabled, parts of messages are cached locally in memory to avoid being downloaded more than once. The cache is preserved for the current -session only. Default is ``true''. +session only. This variable takes a +.Vt boolean +as a value. Default is ``true''. .It Va certificates When this option is enabled, the server certificate can be accepted and stored, -in order to validate the authenticity of the server in future connections. -Default is ``true''. +in order to validate the authenticity of the server in future connections. This +variable takes a +.Vt boolean +as a value. Default is ``true''. .It Va charset Indicates to the server the character set of the strings for the searching methods. This variable takes a .Vt string -as a value. +as a value. By default no character set is set, and thus plain ASCII should be +assumed by the server. .It Va create According to the IMAP specification, when trying to write a message to a non-existent mailbox, the server must send a hint to the client, whether it -should create the mailbox and try again or not. However some broken IMAP -servers don't follow the specification and don't send the correct response code -to the client. By enabling this option the client tries to create the mailbox, -despite of the server's response. This variable takes a +should create the mailbox and try again or not. However some IMAP servers don't +follow the specification and don't send the correct response code to the +client. By enabling this option the client tries to create the mailbox, despite +of the server's response. This variable takes a .Vt boolean as a value. Default is ``false''. .It Va close @@ -115,6 +120,15 @@ while processing mailboxes. This variable takes a .Vt boolean as a value. Default is ``true''. +.It Va keepalive +The time in minutes before terminating and re-issuing the IDLE command, in +order to keep alive the connection, by resetting the inactivity timeout of the +server. A standards compliant server must have an inactivity timeout of at +least 30 minutes. But it may happen that some IMAP servers don't respect that, +or some intermediary network device has a shorter timeout. By setting this +option the above problem can be worked around. This variable takes a +.Vt number +as a value. Default is ``29'' minutes. .It Va namespace When enabled, the program gets the namespace of the user's personal mailboxes, and applies automatically the prefix and hierarchy delimiter to any mailboxes @@ -141,7 +155,7 @@ The time in seconds for the program to wait for a mail server's response. If not set, the client will block indefinitely. This variable takes a .Vt number -as a value. +as a value. By default no value is set. .El .Sh ACCOUNTS Accounts are initialized using the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/lua.c new/imapfilter-2.2.2/lua.c --- old/imapfilter-2.2/lua.c 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/lua.c 2010-01-23 15:37:50.000000000 +0100 @@ -115,6 +115,7 @@ set_table_boolean("crammd5", 1); set_table_boolean("create", 0); set_table_boolean("expunge", 1); + set_table_number("keepalive", 29); set_table_boolean("namespace", 1); set_table_boolean("starttls", 1); set_table_boolean("subscribe", 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/response.c new/imapfilter-2.2.2/response.c --- old/imapfilter-2.2/response.c 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/response.c 2010-01-23 15:37:50.000000000 +0100 @@ -795,7 +795,8 @@ do { buffer_reset(&ibuf); - switch (receive_response(ssn, ibuf.data, 29 * 60, 0)) { + switch (receive_response(ssn, ibuf.data, + get_option_number("keepalive") * 60, 0)) { case -1: return -1; break; /* NOTREACHED */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/sample.extend.lua new/imapfilter-2.2.2/sample.extend.lua --- old/imapfilter-2.2/sample.extend.lua 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/sample.extend.lua 2010-01-23 15:37:50.000000000 +0100 @@ -32,12 +32,12 @@ all = myaccount.mymailbox:select_all() -results = {} +results = Set {} for _, mesg in ipairs(all) do mbox, uid = unpack(mesg) text = mbox[uid]:fetch_message() if (pipe_to('bayesian-spam-filter', text) == 1) then - results.insert(mesg) + table.insert(results, mesg) end end @@ -50,7 +50,7 @@ all = myaccount.mymailbox:select_all() -results = {} +results = Set {} for _, mesg in ipairs(all) do mbox, uid = unpack(mesg) structure = mbox[uid]:fetch_structure() @@ -58,7 +58,7 @@ if partinf.type:lower() == 'text/plain' and partinf.size < 1024 then part = mbox[uid]:fetch_part(partid) if (pipe_to('bayesian-spam-filter', part) == 1) then - results.insert(mesg) + table.insert(results, mesg) break end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/socket.c new/imapfilter-2.2.2/socket.c --- old/imapfilter-2.2/socket.c 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/socket.c 2010-01-23 15:37:50.000000000 +0100 @@ -97,7 +97,7 @@ open_secure_connection(session *ssn, const char *server, const char *port, const char *protocol) { - int e; + int r, e; SSL_CTX *ctx; SSL_METHOD *method; @@ -117,11 +117,37 @@ SSL_set_fd(ssn->ssl, ssn->socket); - if ((e = SSL_connect(ssn->ssl)) <= 0) { - SSL_get_error(ssn->ssl, e); - error("initiating SSL connection to %s at port %s; %s\n", - server, port, ERR_error_string(ERR_get_error(), NULL)); - goto fail; + for (;;) { + if ((r = SSL_connect(ssn->ssl)) > 0) + break; + + switch (SSL_get_error(ssn->ssl, r)) { + case SSL_ERROR_ZERO_RETURN: + error("initiating SSL connection to %s; the " + "connection has been closed cleanly\n", server); + goto fail; + case SSL_ERROR_WANT_CONNECT: + case SSL_ERROR_WANT_ACCEPT: + case SSL_ERROR_WANT_X509_LOOKUP: + case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_WRITE: + break; + case SSL_ERROR_SYSCALL: + e = ERR_get_error(); + if (e == 0) + error("initiating SSL connection to %s; EOF " + "in violation of the protocol\n", server); + else if (e == -1) + error("initiating SSL connection to %s; %s\n", + server, strerror(errno)); + goto fail; + case SSL_ERROR_SSL: + error("initiating SSL connection to %s; %s\n", server, + ERR_error_string(ERR_get_error(), NULL)); + goto fail; + default: + goto fail; + } } if (get_option_boolean("certificates") && get_cert(ssn) == -1) goto fail; @@ -262,7 +288,7 @@ ssize_t socket_secure_read(session *ssn, char *buf, size_t len) { - int r; + int r, e; for (;;) { r = (ssize_t) SSL_read(ssn->ssl, buf, len); @@ -271,12 +297,24 @@ break; switch (SSL_get_error(ssn->ssl, r)) { + case SSL_ERROR_ZERO_RETURN: + error("reading data; the connection has been closed " + "cleanly\n"); + return -1; case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_WRITE: - continue; - case SSL_ERROR_ZERO_RETURN: - return 0; + case SSL_ERROR_WANT_CONNECT: + case SSL_ERROR_WANT_ACCEPT: + case SSL_ERROR_WANT_X509_LOOKUP: + break; case SSL_ERROR_SYSCALL: + e = ERR_get_error(); + if (e == 0) + error("reading data; EOF in violation of the " + "protocol\n"); + else if (e == -1) + error("reading data; %s\n", strerror(errno)); + return -1; case SSL_ERROR_SSL: error("reading data; %s\n", ERR_error_string(ERR_get_error(), NULL)); @@ -361,7 +399,7 @@ ssize_t socket_secure_write(session *ssn, const char *buf, size_t len) { - int w; + int w, e; for (;;) { w = (ssize_t) SSL_write(ssn->ssl, buf, len); @@ -370,12 +408,24 @@ break; switch (SSL_get_error(ssn->ssl, w)) { + case SSL_ERROR_ZERO_RETURN: + error("writing data; the connection has been closed " + "cleanly\n"); + return -1; case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_WRITE: - continue; - case SSL_ERROR_ZERO_RETURN: - return 0; + case SSL_ERROR_WANT_CONNECT: + case SSL_ERROR_WANT_ACCEPT: + case SSL_ERROR_WANT_X509_LOOKUP: + break; case SSL_ERROR_SYSCALL: + e = ERR_get_error(); + if (e == 0) + error("writing data; EOF in violation of the " + "protocol\n"); + else if (e == -1) + error("writing data; %s\n", strerror(errno)); + return -1; case SSL_ERROR_SSL: error("writing data; %s\n", ERR_error_string(ERR_get_error(), NULL)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/imapfilter-2.2/version.h new/imapfilter-2.2.2/version.h --- old/imapfilter-2.2/version.h 2009-12-30 18:04:23.000000000 +0100 +++ new/imapfilter-2.2.2/version.h 2010-01-23 15:37:50.000000000 +0100 @@ -3,10 +3,10 @@ /* Program's version number. */ -#define IMAPFILTER_VERSION "2.2" +#define IMAPFILTER_VERSION "2.2.2" /* Program's copyright. */ -#define IMAPFILTER_COPYRIGHT "Copyright (c) 2001-2009 Eleftherios Chatzimparmpas" +#define IMAPFILTER_COPYRIGHT "Copyright (c) 2001-2010 Eleftherios Chatzimparmpas" #endif /* VERSION_H */ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org