Commit Graph

42 Commits

Author SHA1 Message Date
Oswald Buddenhagen
c3d91ae1e8 introduce new inheritance model based on C11 anonymous structs
the struct declarations got uglier, but their usage requires a lot fewer
explicit references to the parent struct (though some are added where
using the derived struct is more practical now).

we also use something i'd term "covariant members": derivatives of
store_t also reference derivatives of store_conf_t, etc., which
drastically cuts down the number of casts.
fwiw, to achieve this with "proper" inheritance in C++, we'd use
covariant getter functions which hide the still existing casts.

C11 is almost a decade old now, and compilers supported that feature
even longer than that, so i don't expect this to be a problem.
2020-12-17 22:18:10 +01:00
Oswald Buddenhagen
4ad82686f2 fix build with macOS keychain support
we use symbols from CoreFoundation directly, so we need to link it
explicitly.

amends 198ca65b.
2020-11-29 13:47:18 +01:00
Oswald Buddenhagen
198ca65b6e add option to get password from macOS Keychain
this is better than using PassCmd, as it allows the keychain manager to
identify the calling process and therefore use a selective whitelist.

unlike in the now removed example, we use an "internet password" for the
imap protocol, rather than a "generic password" - this seems more
appropriate.

based on a patch by Oliver Runge <oliver.runge@gmail.com>
2020-08-04 17:16:03 +02:00
Oswald Buddenhagen
a6bb26091a modernize list of gcc warning flags somewhat 2020-08-04 17:16:03 +02:00
Oswald Buddenhagen
462fed556a Merge branch '1.3' 2019-10-03 20:17:54 +02:00
Oswald Buddenhagen
8959c6b791 fix libcrypto detection in openssl 1.1+ without pkg-config
CRYPTO_lock() was removed. test for X509_cmp() instead, which we
actually use.

inspired by report from FX <coudert@users.sourceforge.net>.
2019-09-10 13:26:19 +02:00
Oswald Buddenhagen
a310e7e2ba purge vestiges of the compat wrapper
amends cbac8aa75.
2019-08-30 13:13:30 +02:00
Oswald Buddenhagen
2e515bf842 make output of perl check more tidy
amends c75001aa.
2019-05-28 15:48:58 +02:00
Oswald Buddenhagen
904858365d Merge branch '1.3'
Conflicts:
	configure.ac
2018-04-08 18:17:10 +02:00
Oswald Buddenhagen
c75001aa7d add check for perl and its version 2017-10-15 11:34:50 +02:00
Oswald Buddenhagen
5d5a0461ce bump version 2017-10-07 14:18:22 +02:00
Oswald Buddenhagen
cbac8aa75c delete the compat wrapper
it was deprecated in 1.2. until 1.4 gets released, enough time will have
passed for sure.
2017-10-01 15:30:07 +02:00
Oswald Buddenhagen
094bc883e8 bump version 2017-10-01 15:06:37 +02:00
Oswald Buddenhagen
1b354fa61a Merge branch '1.2'
Conflicts:
	Makefile.am
	configure.ac
	debian/.gitignore
2017-10-01 10:38:43 +02:00
Oswald Buddenhagen
8bab938f69 bump version 2017-10-01 09:42:13 +02:00
Helmut Grohne
d529bc3887 use autoconf's built-in pkg-config support for OpenSSL
the hand-crafted suppport did not work with cross-builds.
2017-08-19 13:24:09 +02:00
Oswald Buddenhagen
fed0dcc60e bump version 2017-08-05 20:28:52 +02:00
Oswald Buddenhagen
7b567164ff abstract growable arrays somewhat
... and sneak in a C99 requirement on the way. just because.
2016-11-05 17:32:34 +01:00
Oswald Buddenhagen
7ddd8d1737 Merge branch 'isync_1_2_branch' 2015-11-08 12:04:44 +01:00
Oswald Buddenhagen
57a0920fcb fix configure for static libdb, libnsl, and libsocket
the right variable to put libraries into is LIBS, not LDFLAGS.

REFMAIL: CAABPU68s3uy0Gv-vfAGzeNn0s5Ow--+p+y8W7xE7US_7iXpdjw@mail.gmail.com
2015-07-18 18:17:07 +02:00
Oswald Buddenhagen
bcd43e2c66 Merge branch 'isync_1_2_branch'
Conflicts:
	configure.ac
	src/drv_imap.c
2015-05-09 19:31:55 +02:00
Oswald Buddenhagen
4106de5c14 bump version 2015-05-09 19:25:51 +02:00
Felix Janda
9ce90dfe01 Add configure option for zlib 2015-05-09 18:57:30 +02:00
Oswald Buddenhagen
ef1f80abe3 fix consistent misspelling of Berkeley 2015-05-01 11:55:27 +02:00
Oswald Buddenhagen
79ef2ab360 the minimum required bdb version is in fact 4.1
this is the one that introduced the transaction argument to db->open().
2015-05-01 11:48:55 +02:00
Oswald Buddenhagen
825041fc8c make the bdb check actually check for a linkable library
it only checked whether the header is compilable.

amends e1d0ea8a1.
2015-05-01 11:47:30 +02:00
Oswald Buddenhagen
59ac6b3f20 Merge branch 'isync_1_2_branch' 2015-04-25 10:54:46 +02:00
Reimar Döffinger
08dab9465b Make Berkley DB an optional dependency.
It doesn't seem necessary for any of the basic functionality.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2015-04-13 09:19:02 +02:00
Oswald Buddenhagen
774ca45f1b bump version 2015-04-03 13:24:51 +02:00
Oswald Buddenhagen
139b90be29 added support for IMAP DEFLATE
initial patch by Jesse Weaver <pianohacker@gmail.com>, but mostly
rewritten by me.
2015-01-11 15:05:28 +01:00
Oswald Buddenhagen
eb1005151c add SASL support
patch initially by Jack Stone <jwjstone@fastmail.fm>,
cleaned up by Jan Synacek <jsynacek@redhat.com>,
... and then almost completely rewritten by me. ^^
2014-10-20 10:10:55 +02:00
Oswald Buddenhagen
2a3963af58 bump version 2014-10-18 16:15:02 +02:00
Oswald Buddenhagen
4f383a8074 stop abusing memcmp()
memcmp() is unfortunately not guaranteed to read forward byte-by-byte,
which means that the clever use as a strncmp() without the pointless
strlen()s is not permitted, and can actually misbehave with
SSE-optimized string functions.

so implement proper equals() and starts_with() functions. as a bonus,
the calls are less cryptic.
2014-10-04 18:37:34 +02:00
Oswald Buddenhagen
060430b233 bump version 2014-06-28 14:27:04 +02:00
Oswald Buddenhagen
aee0fa3b68 make date parsing portable, take 2
the global timezone variable is glibc-specific.
so use timegm() instead of mktime() for the conversion.
as that is specific to the BSDs and glibc, provide a fallback.
amends 62a6099.
2014-01-02 21:09:09 +01:00
Oswald Buddenhagen
813b4942db bump version 2014-01-02 21:08:57 +01:00
Oswald Buddenhagen
03b3b566f1 reshuffle sources a bit
split header and move some code to more logical places.
2013-12-08 23:19:12 +01:00
Oswald Buddenhagen
a49893f32e fix strftime() %z conversion specifier check
only glibc does something sane with gmtime()+strftime(). on bsd (incl.
mac os), strftime() can be used only with localtime().
2013-12-01 13:36:26 +01:00
Oswald Buddenhagen
3ceb553102 IPv6 support
inspired by a patch by "Todd T. Fries" <todd@fries.net>.
2013-09-01 17:39:07 +02:00
Oswald Buddenhagen
eb1f10762f added sync support for the arrival date of messages
initial patch by Marc Hoersken <info@marc-hoersken.de>
2013-08-03 18:54:34 +02:00
Felipe Contreras
ff9bf4d91b Fix build with recent autoconf and modernize configure.ac
configure.ac:2: warning: macro 'AM_CONFIG_HEADERS' not found in library
configure.ac:7: error: 'AM_PROG_CC_STDC': this macro is obsolete.
    You should simply use the 'AC_PROG_CC' macro instead.
    Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
    but upon 'ac_cv_prog_cc_stdc'.
configure.ac:3: warning: AM_INIT_AUTOMAKE: two- and three-arguments

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2013-04-07 16:57:45 +02:00
Felipe Contreras
10a146e1b9 Rename configure.in to the modern equivalent
Fixes:

 aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2013-04-07 16:57:45 +02:00