Hello community,

here is the log from the commit of package imapfilter for openSUSE:Factory 
checked in at 2016-02-16 09:19:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/imapfilter (Old)
 and      /work/SRC/openSUSE:Factory/.imapfilter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "imapfilter"

Changes:
--------
--- /work/SRC/openSUSE:Factory/imapfilter/imapfilter.changes    2015-10-17 
16:39:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.imapfilter.new/imapfilter.changes       
2016-02-16 09:19:22.000000000 +0100
@@ -1,0 +2,13 @@
+Sat Feb  6 23:28:53 UTC 2016 - [email protected]
+
+- update to version 2.6.6:
+  * Bug fix; print an error message if "ssl" has been set to "ssl3".
+
+- changes from version 2.6.5:
+  * Possible to build again with OpenSSL when support for SSL 3.0 is
+    disabled.
+
+- changes from version 2.6.4:
+  * Support for OAuth 2.0 and the XOAUTH2 authentication mechanism.
+
+-------------------------------------------------------------------

Old:
----
  imapfilter-2.6.3.tar.gz

New:
----
  imapfilter-2.6.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ imapfilter.spec ++++++
--- /var/tmp/diff_new_pack.nar3Wi/_old  2016-02-16 09:19:23.000000000 +0100
+++ /var/tmp/diff_new_pack.nar3Wi/_new  2016-02-16 09:19:23.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package imapfilter
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
 License:        MIT
 Group:          Productivity/Networking/Email/Utilities
 Url:            https://github.com/lefcha/imapfilter
-Version:        2.6.3
+Version:        2.6.6
 Release:        0
 Source:         %{name}-%{version}.tar.gz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ imapfilter-2.6.3.tar.gz -> imapfilter-2.6.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/AUTHORS new/imapfilter-2.6.6/AUTHORS
--- old/imapfilter-2.6.3/AUTHORS        2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/AUTHORS        2016-01-23 21:12:28.000000000 +0100
@@ -1 +1 @@
-Lefteris Chatzimparmpas <[email protected]>
+Lefteris Chatzimparmpas <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/LICENSE new/imapfilter-2.6.6/LICENSE
--- old/imapfilter-2.6.3/LICENSE        2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/LICENSE        2016-01-23 21:12:28.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2001-2015 Eleftherios Chatzimparmpas
+Copyright (c) 2001-2016 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.6.3/NEWS new/imapfilter-2.6.6/NEWS
--- old/imapfilter-2.6.3/NEWS   2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/NEWS   2016-01-23 21:12:28.000000000 +0100
@@ -1,3 +1,12 @@
+IMAPFilter 2.6.6 - 23 Jan 2016
+  - Bug fix; print an error message if "ssl" has been set to "ssl3".
+
+IMAPFilter 2.6.5 - 18 Jan 2016
+  - Possible to build again with OpenSSL when support for SSL 3.0 is disabled.
+
+IMAPFilter 2.6.4 - 8 Dec 2015
+  - Support for OAuth 2.0 and the XOAUTH2 authentication mechanism.
+
 IMAPFilter 2.6.3 - 30 Sep 2015
   - Support for loading a default CA certificates file.
   - A new has_unkeyword() method to search messages without a keyword flag set.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/doc/imapfilter_config.5 
new/imapfilter-2.6.6/doc/imapfilter_config.5
--- old/imapfilter-2.6.3/doc/imapfilter_config.5        2015-09-30 
22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/doc/imapfilter_config.5        2016-01-23 
21:12:28.000000000 +0100
@@ -1,4 +1,4 @@
-.Dd Sep 30, 2015
+.Dd Dec 6, 2015
 .Dt IMAPFILTER_CONFIG 5
 .Os
 .Sh NAME
@@ -13,7 +13,9 @@
 .Pp
 Although knowledge of Lua is not required to use
 .Xr imapfilter 1 ,
-it is nonetheless recommended, especially if one wants to extend it.
+it is nonetheless recommended, especially if one wants to extend it.  For more
+information on Lua see
+.Ad http://www.lua.org/docs.html .
 .Sh CONVENTIONS
 .Pp
 A brief description of the Lua values and types mentioned hereafter in the
@@ -263,9 +265,28 @@
 .Bl -tag -width Ds
 .It Va password
 User's secret keyword.  If a password wasn't supplied the user will be asked to
-enter one interactively the first time it will be needed.  It takes a
+enter one interactively the first time it will be needed (unless
+.Vt oauth2
+has been set).  It takes a
 .Vt string
 as a value.
+.It Va oauth2
+The OAuth2 string to use to authenticate if the server supports the XOAUTH2
+authentication mechanism.  If the server does not support it and a
+.Vt password
+has been also set, authentication will be attempted using the
+.Vt password .
+It takes a
+.Vt string
+as a value.
+.Pp
+Note that this requires that an OAuth client ID and client secret have been
+obtained, an OAuth2 token has been generated and authorized, a new access token
+has been generated using the refresh token if the last access token has
+expired, and an OAuth2 string has been generated from the access token.  The
+aforementioned OAuth2 string is a Base64 encoded string that should be set
+here.  For more information see
+.Ad https://developers.google.com/gmail/xoauth2_protocol .
 .It Va port
 The port to connect to.  It takes a
 .Vt number
@@ -856,7 +877,8 @@
 that match a specific regular expression pattern. The matching mechanism that
 is used to support this is based on the Perl-compatible regular expressions
 (PCRE), and more information about the patterns and modifiers that can be used,
-is available in the relevant documentation.
+is available in the relevant documentation at
+.Ad http://pcre.org/original/doc/html/ .
 .Pp
 This way of searching is not supported by the IMAP protocol, and this means
 that what actually happens under the hood, is that the relevant parts of all
@@ -1315,7 +1337,9 @@
 type.  Note that due to Lua using backslash
 .Sq \e
 as an escape character for its strings, one has to double backslashes in order
-to insert a single backslash inside a regular expression pattern.
+to insert a single backslash inside a regular expression pattern.  For more
+information on PCRE see 
+.Ad http://pcre.org/original/doc/html/ .
 .El
 .Pp
 Examples:
@@ -1339,6 +1363,4 @@
 User's home directory.
 .El
 .Sh SEE ALSO
-.Xr imapfilter 1 ,
-.Ad http://www.lua.org/docs.html ,
-.Ad http://pcre.org/original/doc/html/
+.Xr imapfilter 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/samples/extend.lua 
new/imapfilter-2.6.6/samples/extend.lua
--- old/imapfilter-2.6.3/samples/extend.lua     2015-09-30 22:55:26.000000000 
+0200
+++ new/imapfilter-2.6.6/samples/extend.lua     2016-01-23 21:12:28.000000000 
+0100
@@ -120,3 +120,42 @@
     password = password2
 }
 
+
+-- An alternative way to authenticate to a server is by using a OAuth2 string,
+-- if the server supports the XOAUTH2 authentication mechanism.
+--
+-- In order to generate an OAuth2 string the oauth2.py script and library can
+-- be used, and instructions on how to use it and where to download it are
+-- available at:
+--
+--   https://github.com/google/gmail-oauth2-tools/wiki/OAuth2DotPyRunThrough
+--
+-- The generated OAuth2 string is then supplied to imapfilter in order to
+-- authenticate to the IMAP server using it instead of a login
+-- username/password pair.
+--
+-- Here we assume that imapfilter has the user, the cliend id, the client
+-- secret and the refresh token, and uses them to generate a new access token
+-- (access tokens expire after one hour), and then from the new access token to
+-- generate the OAuth2 string that is used with the IMAP server:
+user = '[email protected]'
+clientid = '364545978226.apps.googleusercontent.com'
+clientsecret = 'zNrNsBzOOnQy8_O-8LkofeTR'
+refreshtoken = '1/q4SaB2JMQB9I-an6F1rxJE9OkOMtfjaz1bPm1tfDpQM'
+
+status, output = pipe_from('oauth2.py --client_id=' .. clientid ..
+                 ' --client_secret=' .. clientsecret ..
+                 ' --refresh_token=' .. refreshtoken)
+_, _, accesstoken = string.find(output, 'Access Token: ([%w%p]+)\n')
+
+status, output = pipe_from('oauth2.py --generate_oauth2_string' ..
+                           ' --access_token=' .. accesstoken ..
+                           ' --user=' .. user)
+_, _, oauth2string = string.find(output, 'OAuth2 argument:\n([%w%p]+)\n')
+
+account3 = IMAP {
+    server = 'imap.gmail.com',
+    ssl = 'tls1.2',
+    username = user,
+    oauth2 = oauth2string
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/Makefile 
new/imapfilter-2.6.6/src/Makefile
--- old/imapfilter-2.6.3/src/Makefile   2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/Makefile   2016-01-23 21:12:28.000000000 +0100
@@ -1,5 +1,5 @@
-DESTDIR =
-PREFIX = /usr/local
+DESTDIR ?=
+PREFIX ?= /usr/local
 BINDIR = $(PREFIX)/bin
 SHAREDIR = $(PREFIX)/share/imapfilter
 MANDIR = $(PREFIX)/man
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/account.lua 
new/imapfilter-2.6.6/src/account.lua
--- old/imapfilter-2.6.3/src/account.lua        2015-09-30 22:55:26.000000000 
+0200
+++ new/imapfilter-2.6.6/src/account.lua        2016-01-23 21:12:28.000000000 
+0100
@@ -12,10 +12,22 @@
 setmetatable(_imap, { __mode = "v" })
 
 
+_undefined = 0
+function _next_undefined()
+    _undefined = _undefined + 1
+    return 'undefined' .. _undefined
+end
+
+
 Account._mt.__call = function (self, arg)
     _check_required(arg.server, 'string')
-    _check_required(arg.username, 'string')
+    if not arg.oauth2 then
+        _check_required(arg.username, 'string')
+    else
+        _check_optional(arg.username, 'string')
+    end
     _check_optional(arg.password, 'string')
+    _check_optional(arg.oauth2, 'string')
     _check_optional(arg.port, 'number')
     _check_optional(arg.ssl, 'string')
 
@@ -24,13 +36,14 @@
     object._type = 'account'
     object._account = {}
     object._account.server = arg.server
-    object._account.username = arg.username
+    object._account.username = arg.username or _next_undefined()
     object._account.password = arg.password
+    object._account.oauth2 = arg.oauth2
     object._account.port = tostring(arg.port or arg.ssl and 993 or 143)
-    object._account.ssl = arg.ssl or ''
+    object._account.ssl = arg.ssl
     object._account.session = nil
     object._account.selected = nil
-    object._string = arg.username .. '@' .. arg.server
+    object._string = object._account.username .. '@' .. object._account.server
 
     for key, value in pairs(Account) do
         if type(value) == 'function' then object[key] = value end
@@ -72,18 +85,18 @@
 
 
 function Account._login_user(self)
-    if self._account.password == nil then
-        self._account.password = get_password('Enter password for ' ..
-                                              self._string .. ': ')
+    if self._account.password == nil and self._account.oauth2 == nil then
+            self._account.password = get_password('Enter password for ' ..
+                                                  self._string .. ': ')
     end
 
     if self._account.session then return true end
     local r, s = ifcore.login(self._account.server, self._account.port,
                               self._account.ssl, self._account.username,
-                              self._account.password)
+                              self._account.password, self._account.oauth2)
     self._check_result(self, 'login', r)
     if r == false then
-        error('authentication to ' .. self._string .. ' failed.', 0)
+        error('authentication of ' .. self._string .. ' failed.', 0)
     end
     if not r then return false end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/core.c 
new/imapfilter-2.6.6/src/core.c
--- old/imapfilter-2.6.3/src/core.c     2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/core.c     2016-01-23 21:12:28.000000000 +0100
@@ -114,18 +114,28 @@
 ifcore_login(lua_State *lua)
 {
        session *s = NULL;
-       int r;
+       int t, r;
 
-       if (lua_gettop(lua) != 5)
+       if (lua_gettop(lua) != 6)
                luaL_error(lua, "wrong number of arguments");
        luaL_checktype(lua, 1, LUA_TSTRING);
        luaL_checktype(lua, 2, LUA_TSTRING);
-       luaL_checktype(lua, 3, LUA_TSTRING);
-       luaL_checktype(lua, 4, LUA_TSTRING);
-       luaL_checktype(lua, 5, LUA_TSTRING);
+       t = lua_type(lua, 3);
+       luaL_argcheck(lua, t == LUA_TSTRING || t == LUA_TNIL, 3,
+           "string or nil expected");
+       t = lua_type(lua, 4);
+       luaL_argcheck(lua, t == LUA_TSTRING || t == LUA_TNIL, 4,
+           "string or nil expected");
+       t = lua_type(lua, 5);
+       luaL_argcheck(lua, t == LUA_TSTRING || t == LUA_TNIL, 5,
+           "string or nil expected");
+       t = lua_type(lua, 6);
+       luaL_argcheck(lua, t == LUA_TSTRING || t == LUA_TNIL, 6,
+           "string or nil expected");
 
        r = request_login(&s, lua_tostring(lua, 1), lua_tostring(lua, 2),
-           lua_tostring(lua, 3), lua_tostring(lua, 4), lua_tostring(lua, 5));
+           lua_tostring(lua, 3), lua_tostring(lua, 4), lua_tostring(lua, 5),
+           lua_tostring(lua, 6));
 
        lua_pop(lua, 5);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/imapfilter.c 
new/imapfilter-2.6.6/src/imapfilter.c
--- old/imapfilter-2.6.3/src/imapfilter.c       2015-09-30 22:55:26.000000000 
+0200
+++ new/imapfilter-2.6.6/src/imapfilter.c       2016-01-23 21:12:28.000000000 
+0100
@@ -21,7 +21,10 @@
 
 extern buffer ibuf, obuf, nbuf, cbuf;
 extern regexp responses[];
-extern SSL_CTX *ssl3ctx, *ssl23ctx, *tls1ctx;
+extern SSL_CTX *ssl23ctx, *tls1ctx;
+#ifndef OPENSSL_NO_SSL3_METHOD
+extern SSL_CTX *ssl3ctx;
+#endif
 #if OPENSSL_VERSION_NUMBER >= 0x01000100fL
 extern SSL_CTX *tls11ctx, *tls12ctx;
 #endif
@@ -114,7 +117,9 @@
 
        SSL_library_init();
        SSL_load_error_strings();
+#ifndef OPENSSL_NO_SSL3_METHOD
        ssl3ctx = SSL_CTX_new(SSLv3_client_method());
+#endif
        ssl23ctx = SSL_CTX_new(SSLv23_client_method());
        tls1ctx = SSL_CTX_new(TLSv1_client_method());
 #if OPENSSL_VERSION_NUMBER >= 0x01000100fL
@@ -125,7 +130,9 @@
                capath = opts.truststore;
        else if (exists_file(opts.truststore))
                cafile = opts.truststore;
+#ifndef OPENSSL_NO_SSL3_METHOD
        SSL_CTX_load_verify_locations(ssl3ctx, cafile, capath);
+#endif
        SSL_CTX_load_verify_locations(ssl23ctx, cafile, capath);
        SSL_CTX_load_verify_locations(tls1ctx, cafile, capath);
 #if OPENSSL_VERSION_NUMBER >= 0x01000100fL
@@ -150,7 +157,9 @@
 #endif
        stop_lua();
 
+#ifndef OPENSSL_NO_SSL3_METHOD
        SSL_CTX_free(ssl3ctx);
+#endif
        SSL_CTX_free(ssl23ctx);
        SSL_CTX_free(tls1ctx);
 #if OPENSSL_VERSION_NUMBER >= 0x01000100fL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/imapfilter.h 
new/imapfilter-2.6.6/src/imapfilter.h
--- old/imapfilter-2.6.3/src/imapfilter.h       2015-09-30 22:55:26.000000000 
+0200
+++ new/imapfilter-2.6.6/src/imapfilter.h       2016-01-23 21:12:28.000000000 
+0100
@@ -33,6 +33,7 @@
 #define CAPABILITY_STARTTLS            0x04
 #define CAPABILITY_CHILDREN            0x08
 #define CAPABILITY_IDLE                        0x10
+#define CAPABILITY_XOAUTH2              0x20
 
 /* Status responses and response codes. */
 #define STATUS_NONE                    0
@@ -141,7 +142,7 @@
 /*     request.c       */
 int request_noop(session *ssn);
 int request_login(session **ssn, const char *server, const char *port, const
-    char *protocol, const char *user, const char *pass);
+    char *protocol, const char *user, const char *pass, const char *oauth2);
 int request_logout(session *ssn);
 int request_status(session *ssn, const char *mbox, unsigned int *exist,
     unsigned int *recent, unsigned int *unseen, unsigned int *uidnext);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/request.c 
new/imapfilter-2.6.6/src/request.c
--- old/imapfilter-2.6.3/src/request.c  2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/request.c  2016-01-23 21:12:28.000000000 +0100
@@ -34,14 +34,15 @@
        case -1:                                                               \
                if ((!strcasecmp(get_option_string("recover"), "all") ||       \
                    !strcasecmp(get_option_string("recover"), "errors")) &&    \
-                   request_login(&ssn, NULL, NULL, NULL, NULL, NULL) != -1)   \
+                   request_login(&ssn, NULL, NULL, NULL, NULL, NULL,          \
+                       NULL) != -1)                                           \
                        return STATUS_NONE;                                    \
                return -1;                                                     \
        case STATUS_BYE:                                                       \
                close_connection(ssn);                                         \
                if (!strcasecmp(get_option_string("recover"), "all")) {        \
                        if (request_login(&ssn, NULL, NULL, NULL, NULL,        \
-                           NULL) != -1)                                       \
+                           NULL, NULL) != -1)                                 \
                                return STATUS_NONE;                            \
                } else                                                         \
                        session_destroy(ssn);                                  \
@@ -153,7 +154,7 @@
  */
 int
 request_login(session **ssnptr, const char *server, const char *port, const
-    char *ssl, const char *user, const char *pass)
+    char *ssl, const char *user, const char *pass, const char *oauth2)
 {
        int t, r, rg = -1, rl = -1; 
        session *ssn = *ssnptr;
@@ -168,8 +169,9 @@
                ssn->port = port;
                ssn->username = user;
                ssn->password = pass;
+               ssn->oauth2 = oauth2;
 
-               if (strlen(ssl) != 0)
+               if (ssl)
                        ssn->sslproto = ssl;
        } else {
                debug("recovering connection: %s://%s@%s:%s/%s\n",
@@ -203,7 +205,28 @@
        }
 
        if (rg != STATUS_PREAUTH) {
-               if (ssn->capabilities & CAPABILITY_CRAMMD5 &&
+               if (ssn->oauth2 && !ssn->password &&
+                  !(ssn->capabilities & CAPABILITY_XOAUTH2)) {
+                       error("OAuth2 not supported at %s@%s\n", ssn->username,
+                           ssn->server);
+                       close_connection(ssn);
+                       session_destroy(ssn);
+                       return STATUS_NO;
+               }
+               if (ssn->capabilities & CAPABILITY_XOAUTH2 && ssn->oauth2) {
+                       CHECK(t = send_request(ssn, "AUTHENTICATE XOAUTH2 %s",
+                           ssn->oauth2));
+                       CHECK(rl = response_generic(ssn, t));
+               }
+               if (rl == STATUS_NO) {
+                       error("oauth2 string rejected at %s@%s\n",
+                           ssn->username, ssn->server);
+                       close_connection(ssn);
+                       session_destroy(ssn);
+                       return STATUS_NO;
+               }
+               if (rl != STATUS_OK && ssn->password &&
+                   ssn->capabilities & CAPABILITY_CRAMMD5 &&
                    get_option_boolean("crammd5")) {
                        unsigned char *in, *out;
                        CHECK(t = send_request(ssn, "AUTHENTICATE CRAM-MD5"));
@@ -219,12 +242,11 @@
                        } else
                                goto abort;
                }
-               if (rl != STATUS_OK) {
+               if (rl != STATUS_OK && ssn->password) {
                        CHECK(t = send_request(ssn, "LOGIN \"%s\" \"%s\"",
                            ssn->username, ssn->password));
                        CHECK(rl = response_generic(ssn, t));
                }
-
                if (rl == STATUS_NO) {
                        error("username %s or password rejected at %s\n",
                            ssn->username, ssn->server);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/response.c 
new/imapfilter-2.6.6/src/response.c
--- old/imapfilter-2.6.3/src/response.c 2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/response.c 2016-01-23 21:12:28.000000000 +0100
@@ -336,9 +336,10 @@
                        ssn->capabilities |= CAPABILITY_STARTTLS;
                if (xstrcasestr(s, "CHILDREN"))
                        ssn->capabilities |= CAPABILITY_CHILDREN;
-
                if (xstrcasestr(s, "IDLE"))
                        ssn->capabilities |= CAPABILITY_IDLE;
+               if (xstrcasestr(s, "AUTH=XOAUTH2"))
+                       ssn->capabilities |= CAPABILITY_XOAUTH2;
 
                xfree(s);
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/session.c 
new/imapfilter-2.6.6/src/session.c
--- old/imapfilter-2.6.3/src/session.c  2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/session.c  2016-01-23 21:12:28.000000000 +0100
@@ -40,6 +40,7 @@
        ssn->sslproto = NULL;
        ssn->username = NULL;
        ssn->password = NULL;
+       ssn->oauth2 = NULL;
        ssn->socket = -1;
        ssn->sslconn = NULL;
        ssn->protocol = PROTOCOL_NONE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/session.h 
new/imapfilter-2.6.6/src/session.h
--- old/imapfilter-2.6.3/src/session.h  2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/session.h  2016-01-23 21:12:28.000000000 +0100
@@ -12,6 +12,7 @@
        const char *sslproto;   /* SSL protocol. */
        const char *username;   /* User name. */
        const char *password;   /* User password. */
+        const char *oauth2;     /* Oauth2 token */
        int socket;             /* Socket. */
        SSL *sslconn;           /* SSL connection. */
        unsigned int protocol;  /* IMAP protocol.  Currently IMAP4rev1 and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/socket.c 
new/imapfilter-2.6.6/src/socket.c
--- old/imapfilter-2.6.3/src/socket.c   2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/socket.c   2016-01-23 21:12:28.000000000 +0100
@@ -16,8 +16,10 @@
 #include "imapfilter.h"
 #include "session.h"
 
-
-SSL_CTX *ssl3ctx, *ssl23ctx, *tls1ctx;
+SSL_CTX *ssl23ctx, *tls1ctx;
+#ifndef OPENSSL_NO_SSL3_METHOD
+SSL_CTX *ssl3ctx;
+#endif
 #if OPENSSL_VERSION_NUMBER >= 0x01000100fL
 SSL_CTX *tls11ctx, *tls12ctx;
 #endif
@@ -95,7 +97,12 @@
        if (!ssn->sslproto) {
                ctx = ssl23ctx;
        } else if (!strcasecmp(ssn->sslproto, "ssl3")) {
+#ifndef OPENSSL_NO_SSL3_METHOD
                ctx = ssl3ctx;
+#else
+               error("protocol SSLv3 not supported by current build\n");
+               goto fail;
+#endif
        } else if (!strcasecmp(ssn->sslproto, "tls1")) {
                ctx = tls1ctx;
        } else if (!strcasecmp(ssn->sslproto, "tls1.1")) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.6.3/src/version.h 
new/imapfilter-2.6.6/src/version.h
--- old/imapfilter-2.6.3/src/version.h  2015-09-30 22:55:26.000000000 +0200
+++ new/imapfilter-2.6.6/src/version.h  2016-01-23 21:12:28.000000000 +0100
@@ -3,10 +3,10 @@
 
 
 /* Program's version number. */
-#define VERSION                "2.6.3"
+#define VERSION                "2.6.6"
 
 /* Program's copyright. */
-#define COPYRIGHT      "Copyright (c) 2001-2015 Eleftherios Chatzimparmpas"
+#define COPYRIGHT      "Copyright (c) 2001-2016 Eleftherios Chatzimparmpas"
 
 
 #endif                         /* VERSION_H */


Reply via email to