diff options
| author | Sam Varshavchik | 2014-05-06 08:29:10 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2014-05-06 08:29:10 -0400 | 
| commit | 2c6962a96a288e8451c77191f0b3a1874ff77153 (patch) | |
| tree | 53eb7a470704c392d06486d0adb895512920440a | |
| parent | 3e5ee29f8a2074f1dcb3b6d9959909a3b5ba82b0 (diff) | |
| parent | d71f458fcd1291348b1ecaa7dce1e06b2b26f761 (diff) | |
| download | courier-libs-2c6962a96a288e8451c77191f0b3a1874ff77153.tar.bz2 | |
Merge branch 'master'.
| -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)  { | 
