diff options
| -rw-r--r-- | imap/ChangeLog | 10 | ||||
| -rw-r--r-- | imap/imaplogin.c | 16 | ||||
| -rw-r--r-- | imap/pop3login.c | 15 | ||||
| -rw-r--r-- | sqwebmail/ChangeLog | 4 | ||||
| -rw-r--r-- | unicode/ChangeLog | 2 | ||||
| -rw-r--r-- | unicode/Makefile.am | 4 | ||||
| -rw-r--r-- | unicode/book.xml | 21 | ||||
| -rw-r--r-- | unicode/configure.ac | 2 | ||||
| -rw-r--r-- | unicode/unicode.h | 62 | ||||
| -rw-r--r-- | unicode/unicodecpp.C | 37 |
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 <unicode.h></funcsynopsisinfo> + <funcsynopsisinfo>#include <unicode.h> + +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) { |
