summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Varshavchik2014-05-06 08:29:10 -0400
committerSam Varshavchik2014-05-06 08:29:10 -0400
commit2c6962a96a288e8451c77191f0b3a1874ff77153 (patch)
tree53eb7a470704c392d06486d0adb895512920440a
parent3e5ee29f8a2074f1dcb3b6d9959909a3b5ba82b0 (diff)
parentd71f458fcd1291348b1ecaa7dce1e06b2b26f761 (diff)
downloadcourier-libs-2c6962a96a288e8451c77191f0b3a1874ff77153.tar.bz2
Merge branch 'master'.
-rw-r--r--imap/ChangeLog10
-rw-r--r--imap/imaplogin.c16
-rw-r--r--imap/pop3login.c15
-rw-r--r--sqwebmail/ChangeLog4
-rw-r--r--unicode/ChangeLog2
-rw-r--r--unicode/Makefile.am4
-rw-r--r--unicode/book.xml21
-rw-r--r--unicode/configure.ac2
-rw-r--r--unicode/unicode.h62
-rw-r--r--unicode/unicodecpp.C37
10 files changed, 154 insertions, 19 deletions
diff --git a/imap/ChangeLog b/imap/ChangeLog
index 3debcb4..79b0c1b 100644
--- a/imap/ChangeLog
+++ b/imap/ChangeLog
@@ -1,3 +1,13 @@
+2014-05-06 Sam Varshavchik <mrsam@courier-mta.com>
+
+ * pop3login.c (login_callback): Log logins when running in proxy mode.
+
+ * imaplogin.c (login_callback): Log logins when running in proxy mode.
+
+2014-04-27 Sam Varshavchik <mrsam@courier-mta.com>
+
+ * courier.spec.in: Update to use systemd macros.
+
2014-01-12 Sam Varshavchik <mrsam@courier-mta.com>
* Factored out the unicode library into a separate package.
diff --git a/imap/imaplogin.c b/imap/imaplogin.c
index 0a46783..7038b42 100644
--- a/imap/imaplogin.c
+++ b/imap/imaplogin.c
@@ -1,5 +1,5 @@
/*
-** Copyright 1998 - 2011 Double Precision, Inc.
+** Copyright 1998 - 2014 Double Precision, Inc.
** See COPYING for distribution information.
*/
@@ -140,6 +140,14 @@ struct imapproxyinfo {
static int login_imap(int, const char *, void *);
+static const char *safe_getenv(const char *p)
+{
+ p=getenv(p);
+
+ if (!p) p="";
+ return p;
+}
+
int login_callback(struct authinfo *ainfo, void *dummy)
{
int rc;
@@ -196,6 +204,12 @@ int login_callback(struct authinfo *ainfo, void *dummy)
if (fd > 0)
{
alarm(0);
+
+ fprintf(stderr, "INFO: LOGIN, user=%s, ip=[%s], port=[%s], protocol=%s",
+ ainfo->address, safe_getenv("TCPREMOTEIP"),
+ safe_getenv("TCPREMOTEPORT"),
+ safe_getenv("PROTOCOL"));
+
proxyloop(fd);
exit(0);
}
diff --git a/imap/pop3login.c b/imap/pop3login.c
index 4bc291b..1a96a04 100644
--- a/imap/pop3login.c
+++ b/imap/pop3login.c
@@ -1,5 +1,5 @@
/*
-** Copyright 1998 - 2008 Double Precision, Inc.
+** Copyright 1998 - 2014 Double Precision, Inc.
** See COPYING for distribution information.
*/
@@ -38,6 +38,14 @@ extern const char *pop3_externalauth();
static const char *pop3d;
static const char *defaultmaildir;
+static const char *safe_getenv(const char *p)
+{
+ p=getenv(p);
+
+ if (!p) p="";
+ return p;
+}
+
static int starttls()
{
char *argvec[4];
@@ -180,6 +188,11 @@ static int login_callback(struct authinfo *ainfo, void *dummy)
if (fd > 0)
{
alarm(0);
+ fprintf(stderr, "INFO: LOGIN, user=%s, ip=[%s], port=[%s], protocol=%s",
+ ainfo->address, safe_getenv("TCPREMOTEIP"),
+ safe_getenv("TCPREMOTEPORT"),
+ safe_getenv("PROTOCOL"));
+
proxyloop(fd);
exit(0);
}
diff --git a/sqwebmail/ChangeLog b/sqwebmail/ChangeLog
index 097c0fb..24549ab 100644
--- a/sqwebmail/ChangeLog
+++ b/sqwebmail/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-27 Sam Varshavchik <mrsam@courier-mta.com>
+
+ * courier.spec.in: Update to use systemd macros.
+
2014-02-15 "Alexei Batyr'" <lehel@pcmag.ru>
* Fix wrong path in Makefile.
diff --git a/unicode/ChangeLog b/unicode/ChangeLog
index ef75d5e..a018e52 100644
--- a/unicode/ChangeLog
+++ b/unicode/ChangeLog
@@ -1,3 +1,5 @@
+1.0
+
2014-01-06 Sam Varshavchik <mrsam@courier-mta.com>
* Refactored as a standalone library, changed some symbol names.
diff --git a/unicode/Makefile.am b/unicode/Makefile.am
index 986151e..5f4447f 100644
--- a/unicode/Makefile.am
+++ b/unicode/Makefile.am
@@ -45,7 +45,7 @@ update-www-htmlent:
lib_LTLIBRARIES=libunicode.la
include_HEADERS=unicode.h
-man_MANS=$(srcdir)/man/courier-unicode.7 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert_tocase.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]fromu.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]tou.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_save_buf.3 $(srcdir)/man/unicode[\:][\:]linebreak_iter.3 $(srcdir)/man/unicode[\:][\:]linebreakc_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreakc_iter.3 $(srcdir)/man/unicode[\:][\:]wordbreak_callback_base.3 $(srcdir)/man/unicode_convert.3 $(srcdir)/man/unicode_convert_deinit.3 $(srcdir)/man/unicode_convert_fromu_init.3 $(srcdir)/man/unicode_convert_fromu_tobuf.3 $(srcdir)/man/unicode_convert_fromutf8.3 $(srcdir)/man/unicode_convert_init.3 $(srcdir)/man/unicode_convert_tobuf.3 $(srcdir)/man/unicode_convert_tocase.3 $(srcdir)/man/unicode_convert_tocbuf_fromutf8_init.3 $(srcdir)/man/unicode_convert_tocbuf_init.3 $(srcdir)/man/unicode_convert_tocbuf_toutf8_init.3 $(srcdir)/man/unicode_convert_tou_init.3 $(srcdir)/man/unicode_convert_tou_tobuf.3 $(srcdir)/man/unicode_convert_toutf8.3 $(srcdir)/man/unicode_convert_uc.3 $(srcdir)/man/unicode_default_chset.3 $(srcdir)/man/unicode_grapheme_break.3 $(srcdir)/man/unicode_html40ent_lookup.3 $(srcdir)/man/unicode_isspace.3 $(srcdir)/man/unicode_lb_end.3 $(srcdir)/man/unicode_lb_init.3 $(srcdir)/man/unicode_lb_next.3 $(srcdir)/man/unicode_lb_next_cnt.3 $(srcdir)/man/unicode_lb_set_opts.3 $(srcdir)/man/unicode_lbc_end.3 $(srcdir)/man/unicode_lbc_init.3 $(srcdir)/man/unicode_lbc_next.3 $(srcdir)/man/unicode_lbc_next_cnt.3 $(srcdir)/man/unicode_lbc_set_opts.3 $(srcdir)/man/unicode_lc.3 $(srcdir)/man/unicode_tc.3 $(srcdir)/man/unicode_u_ucs2_native.3 $(srcdir)/man/unicode_u_ucs4_native.3 $(srcdir)/man/unicode_uc.3 $(srcdir)/man/unicode_wb_end.3 $(srcdir)/man/unicode_wb_init.3 $(srcdir)/man/unicode_wb_next.3 $(srcdir)/man/unicode_wb_next_cnt.3 $(srcdir)/man/unicode_wbscan_end.3 $(srcdir)/man/unicode_wbscan_init.3 $(srcdir)/man/unicode_wbscan_next.3
+man_MANS=$(srcdir)/man/courier-unicode.7 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert_tocase.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]fromu.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]tou.3 $(srcdir)/man/unicode[\:][\:]iso_8859_1.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_save_buf.3 $(srcdir)/man/unicode[\:][\:]linebreak_iter.3 $(srcdir)/man/unicode[\:][\:]linebreakc_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreakc_iter.3 $(srcdir)/man/unicode[\:][\:]ucs_2.3 $(srcdir)/man/unicode[\:][\:]ucs_4.3 $(srcdir)/man/unicode[\:][\:]utf_8.3 $(srcdir)/man/unicode[\:][\:]wordbreak_callback_base.3 $(srcdir)/man/unicode_convert.3 $(srcdir)/man/unicode_convert_deinit.3 $(srcdir)/man/unicode_convert_fromu_init.3 $(srcdir)/man/unicode_convert_fromu_tobuf.3 $(srcdir)/man/unicode_convert_fromutf8.3 $(srcdir)/man/unicode_convert_init.3 $(srcdir)/man/unicode_convert_tobuf.3 $(srcdir)/man/unicode_convert_tocase.3 $(srcdir)/man/unicode_convert_tocbuf_fromutf8_init.3 $(srcdir)/man/unicode_convert_tocbuf_init.3 $(srcdir)/man/unicode_convert_tocbuf_toutf8_init.3 $(srcdir)/man/unicode_convert_tou_init.3 $(srcdir)/man/unicode_convert_tou_tobuf.3 $(srcdir)/man/unicode_convert_toutf8.3 $(srcdir)/man/unicode_convert_uc.3 $(srcdir)/man/unicode_default_chset.3 $(srcdir)/man/unicode_grapheme_break.3 $(srcdir)/man/unicode_html40ent_lookup.3 $(srcdir)/man/unicode_isspace.3 $(srcdir)/man/unicode_lb_end.3 $(srcdir)/man/unicode_lb_init.3 $(srcdir)/man/unicode_lb_next.3 $(srcdir)/man/unicode_lb_next_cnt.3 $(srcdir)/man/unicode_lb_set_opts.3 $(srcdir)/man/unicode_lbc_end.3 $(srcdir)/man/unicode_lbc_init.3 $(srcdir)/man/unicode_lbc_next.3 $(srcdir)/man/unicode_lbc_next_cnt.3 $(srcdir)/man/unicode_lbc_set_opts.3 $(srcdir)/man/unicode_lc.3 $(srcdir)/man/unicode_tc.3 $(srcdir)/man/unicode_u_ucs2_native.3 $(srcdir)/man/unicode_u_ucs4_native.3 $(srcdir)/man/unicode_uc.3 $(srcdir)/man/unicode_wb_end.3 $(srcdir)/man/unicode_wb_init.3 $(srcdir)/man/unicode_wb_next.3 $(srcdir)/man/unicode_wb_next_cnt.3 $(srcdir)/man/unicode_wbscan_end.3 $(srcdir)/man/unicode_wbscan_init.3 $(srcdir)/man/unicode_wbscan_next.3
libunicode_la_SOURCES=unicode.h unicode.c unicodebuf.c \
unicodecpp.C \
@@ -59,7 +59,7 @@ libunicode_la_SOURCES=unicode.h unicode.c unicodebuf.c \
linebreaktab_internal.h \
unicode_wordbreak.c wordbreaktab.h \
wordbreaktab_internal.h
-libunicode_la_LDFLAGS=-version-info 0:0:0
+libunicode_la_LDFLAGS=-version-info 1:0:0
EXTRA_DIST=$(noinst_SCRIPTS) $(man_MANS) $(PACKAGE).spec
diff --git a/unicode/book.xml b/unicode/book.xml
index 88fcf25..006b082 100644
--- a/unicode/book.xml
+++ b/unicode/book.xml
@@ -1453,13 +1453,22 @@ See COPYING for distribution information.
<refnamediv>
<refname>unicode::iconvert::convert</refname>
+ <refname>unicode::ucs_4</refname>
+ <refname>unicode::ucs_2</refname>
+ <refname>unicode::utf_8</refname>
+ <refname>unicode::iso_8859_1</refname>
<refpurpose>unicode character set conversion</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
- <funcsynopsisinfo>#include &lt;unicode.h&gt;</funcsynopsisinfo>
+ <funcsynopsisinfo>#include &lt;unicode.h&gt;
+
+extern const char unicode::ucs_4[];
+extern const char unicode::ucs_2[];
+extern const char unicode::utf_8[];
+extern const char unicode::iso_8859_1[];</funcsynopsisinfo>
<funcprototype>
<funcdef>std::string <function>unicode::iconvert::convert</function></funcdef>
@@ -1538,6 +1547,16 @@ See COPYING for distribution information.
character set that's supported by
<citerefentry><refentrytitle>iconv</refentrytitle>
<manvolnum>3</manvolnum></citerefentry>.
+
+ Use
+ <varname>unicode::ucs_2</varname> and
+ <varname>unicode::ucs_4</varname> to specify the 16 and the 32 bit
+ unicode octet in native byte order.
+ Use
+ <varname>unicode::utf_8</varname> and
+ <varname>unicode::iso_8859_1</varname> to specify these two
+ standard character sets.
+
The overloaded versions that pass a reference to a
<classname>bool</classname> set the flag to <literal>true</literal>
if some characters could not be converted.
diff --git a/unicode/configure.ac b/unicode/configure.ac
index 67b55f6..5f42966 100644
--- a/unicode/configure.ac
+++ b/unicode/configure.ac
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([courier-unicode], [1.0], [courier-users@lists.sourceforge.net])
+AC_INIT([courier-unicode], [1.1], [courier-users@lists.sourceforge.net])
>confdefs.h # Kill PACKAGE_ macros
diff --git a/unicode/unicode.h b/unicode/unicode.h
index 3efd9c7..bfe1256 100644
--- a/unicode/unicode.h
+++ b/unicode/unicode.h
@@ -887,6 +887,11 @@ extern size_t unicode_wcwidth(const std::vector<unicode_char> &uc);
namespace unicode {
/*
+ ** Various character sets
+ */
+ extern const char ucs_4[], ucs_2[], utf_8[], iso_8859_1[];
+
+ /*
** Interface to iconv.
**
** Subclass converted(). Invoke begin(), then operator(), repeatedly,
@@ -1270,13 +1275,20 @@ namespace unicode {
int opts;
+#if __cplusplus >= 201103L
+ public:
+ linebreak_callback_base(const linebreak_callback_base &)=delete;
+ linebreak_callback_base &operator=(const
+ linebreak_callback_base &)=delete;
+ private:
+#else
linebreak_callback_base(const linebreak_callback_base &);
/* NOT IMPLEMENTED */
- linebreak_callback_base &operator==(const
- linebreak_callback_base &);
+ linebreak_callback_base &operator=(const
+ linebreak_callback_base &);
/* NOT IMPLEMENTED */
-
+#endif
public:
linebreak_callback_base();
virtual ~linebreak_callback_base();
@@ -1304,7 +1316,7 @@ namespace unicode {
return operator()(vec.begin(), vec.end());
}
private:
- virtual int callback(int)=0;
+ virtual int callback(int);
};
class linebreak_callback_save_buf : public linebreak_callback_base {
@@ -1447,14 +1459,24 @@ namespace unicode {
int opts;
+#if __cplusplus >= 201103L
+ public:
+ linebreakc_callback_base(const linebreakc_callback_base &)
+ =delete;
+
+ linebreakc_callback_base &operator=(const
+ linebreakc_callback_base
+ &)=delete;
+ private:
+#else
linebreakc_callback_base(const linebreakc_callback_base &);
/* NOT IMPLEMENTED */
- linebreakc_callback_base &operator==(const
+ linebreakc_callback_base &operator=(const
linebreakc_callback_base
&);
/* NOT IMPLEMENTED */
-
+#endif
public:
linebreakc_callback_base();
@@ -1484,7 +1506,7 @@ namespace unicode {
return operator()(vec.begin(), vec.end());
}
private:
- virtual int callback(int, unicode_char)=0;
+ virtual int callback(int, unicode_char);
};
class linebreakc_callback_save_buf : public linebreakc_callback_base {
@@ -1632,13 +1654,22 @@ namespace unicode {
unicode_wb_info_t handle;
+#if __cplusplus >= 201103L
+ public:
+ wordbreak_callback_base(const wordbreak_callback_base &)=delete;
+
+ wordbreak_callback_base &operator=(const
+ wordbreak_callback_base &)
+ =delete;
+ private:
+#else
wordbreak_callback_base(const wordbreak_callback_base &);
/* NOT IMPLEMENTED */
- wordbreak_callback_base &operator==(const
- wordbreak_callback_base &);
+ wordbreak_callback_base &operator=(const
+ wordbreak_callback_base &);
/* NOT IMPLEMENTED */
-
+#endif
public:
wordbreak_callback_base();
virtual ~wordbreak_callback_base();
@@ -1665,7 +1696,7 @@ namespace unicode {
return operator()(vec.begin(), vec.end());
}
private:
- virtual int callback(bool)=0;
+ virtual int callback(bool);
};
/*
@@ -1676,11 +1707,18 @@ namespace unicode {
unicode_wbscan_info_t handle;
+#if __cplusplus >= 201103L
+ public:
+ wordbreakscan(const wordbreakscan &)=delete;
+ wordbreakscan &operator=(const wordbreakscan &)=delete;
+ private:
+#else
wordbreakscan(const wordbreakscan &);
/* NOT IMPLEMENTED */
- wordbreakscan &operator==(const wordbreakscan &);
+ wordbreakscan &operator=(const wordbreakscan &);
/* NOT IMPLEMENTED */
+#endif
public:
wordbreakscan();
diff --git a/unicode/unicodecpp.C b/unicode/unicodecpp.C
index 485f05d..cbe8f56 100644
--- a/unicode/unicodecpp.C
+++ b/unicode/unicodecpp.C
@@ -1,5 +1,5 @@
/*
-** Copyright 2011 Double Precision, Inc.
+** Copyright 2011-2014 Double Precision, Inc.
** See COPYING for distribution information.
**
*/
@@ -35,6 +35,26 @@ extern "C" {
}
+const char unicode::ucs_4[]=
+#if WORDS_BIGENDIAN
+ "UCS-4BE"
+#else
+ "UCS-4LE"
+#endif
+ ;
+
+const char unicode::ucs_2[]=
+#if WORDS_BIGENDIAN
+ "UCS-2BE"
+#else
+ "UCS-2LE"
+#endif
+ ;
+
+const char unicode::utf_8[]="utf-8";
+
+const char unicode::iso_8859_1[]="iso-8859-1";
+
size_t unicode_wcwidth(const std::vector<unicode_char> &uc)
{
size_t w=0;
@@ -295,6 +315,11 @@ unicode::linebreak_callback_base::~linebreak_callback_base()
finish();
}
+int unicode::linebreak_callback_base::callback(int ignore)
+{
+ return 0;
+}
+
unicode::linebreak_callback_base
&unicode::linebreak_callback_base::operator<<(unicode_char uc)
{
@@ -345,6 +370,11 @@ unicode::linebreakc_callback_base::~linebreakc_callback_base()
finish();
}
+int unicode::linebreakc_callback_base::callback(int dummy1, unicode_char dummy2)
+{
+ return 0;
+}
+
void unicode::linebreakc_callback_base::set_opts(int optsArg)
{
opts=optsArg;
@@ -403,6 +433,11 @@ unicode::wordbreak_callback_base::~wordbreak_callback_base()
finish();
}
+int unicode::wordbreak_callback_base::callback(bool ignore)
+{
+ return 0;
+}
+
unicode::wordbreak_callback_base
&unicode::wordbreak_callback_base::operator<<(unicode_char uc)
{