summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog83
-rw-r--r--Makefile.am2
-rw-r--r--auth/gsasl.c54
-rw-r--r--auth/pam.c56
-rw-r--r--auth/radius.c179
-rw-r--r--auth/sql.c266
-rw-r--r--auth/sql.h27
-rw-r--r--auth/tls.c151
-rw-r--r--auth/virtual.c46
-rw-r--r--comsat/Makefile.am2
-rw-r--r--comsat/comsat.c20
-rw-r--r--comsat/comsat.h2
-rw-r--r--config/Makefile.am4
-rw-r--r--config/mailutils-config.c4
-rw-r--r--configure.ac6
-rw-r--r--dotlock/Makefile.am2
-rw-r--r--dotlock/dotlock.c12
-rw-r--r--examples/Makefile.am3
-rw-r--r--examples/muauth.c5
-rw-r--r--examples/muemail.c9
-rw-r--r--frm/Makefile.am2
-rw-r--r--frm/frm.c14
-rw-r--r--frm/frm.h3
-rw-r--r--frm/from.c6
-rw-r--r--guimb/Makefile.am2
-rw-r--r--guimb/guimb.h1
-rw-r--r--guimb/main.c5
-rw-r--r--imap4d/Makefile.am2
-rw-r--r--imap4d/idle.c2
-rw-r--r--imap4d/imap4d.c38
-rw-r--r--imap4d/imap4d.h7
-rw-r--r--imap4d/util.c10
-rw-r--r--imap4d/version.c2
-rw-r--r--include/mailutils/Makefile.am91
-rw-r--r--include/mailutils/cfg.h3
-rw-r--r--include/mailutils/daemon.h9
-rw-r--r--include/mailutils/error.h3
-rw-r--r--include/mailutils/gocs.h98
-rw-r--r--include/mailutils/gsasl.h18
-rw-r--r--include/mailutils/libsieve.h14
-rw-r--r--include/mailutils/mailutils.h2
-rw-r--r--include/mailutils/mu_auth.h5
-rw-r--r--include/mailutils/mutil.h2
-rw-r--r--include/mailutils/pam.h26
-rw-r--r--include/mailutils/radius.h34
-rw-r--r--include/mailutils/sql.h38
-rw-r--r--include/mailutils/syslog.h39
-rw-r--r--include/mailutils/tls.h26
-rw-r--r--lib/Makefile.am3
-rw-r--r--lib/argpinit.c31
-rw-r--r--lib/muinit.c52
-rw-r--r--lib/muinit.h27
-rw-r--r--libargp/.cvsignore7
-rw-r--r--libargp/auth.c92
-rw-r--r--libargp/cmdline.h122
-rw-r--r--libargp/common.c521
-rw-r--r--libargp/gsasl.c71
-rw-r--r--libargp/mu_argp.c348
-rw-r--r--libargp/mu_argp.h (renamed from include/mailutils/argp.h)31
-rw-r--r--libargp/pam.c67
-rw-r--r--libargp/radius.c86
-rw-r--r--libargp/sieve.c (renamed from libsieve/argp.c)87
-rw-r--r--libargp/sql.c149
-rw-r--r--libargp/tls.c90
-rw-r--r--libargp/virtdomain.c66
-rw-r--r--libcfg/.cvsignore7
-rw-r--r--libcfg/Makefile.am35
-rw-r--r--libcfg/auth.c55
-rw-r--r--libcfg/common.c126
-rw-r--r--libcfg/gsasl.c30
-rw-r--r--libcfg/init.c104
-rw-r--r--libcfg/libcfg.h91
-rw-r--r--libcfg/pam.c28
-rw-r--r--libcfg/radius.c31
-rw-r--r--libcfg/sieve.c97
-rw-r--r--libcfg/sql.c64
-rw-r--r--libcfg/tls.c32
-rw-r--r--libcfg/virtdomain.c28
-rw-r--r--libsieve/Makefile.am2
-rw-r--r--libsieve/conf.c69
-rw-r--r--maidag/Makefile.am2
-rw-r--r--maidag/lmtp.c12
-rw-r--r--maidag/maidag.c20
-rw-r--r--maidag/maidag.h5
-rw-r--r--maidag/mailquota.c12
-rw-r--r--mail.local/Makefile.am2
-rw-r--r--mail.local/mail.local.h1
-rw-r--r--mail.local/mailquota.c12
-rw-r--r--mail.local/main.c13
-rw-r--r--mail.remote/Makefile.am2
-rw-r--r--mail.remote/mail.remote.c9
-rw-r--r--mail/Makefile.am2
-rw-r--r--mail/mail.c14
-rw-r--r--mail/mail.h2
-rw-r--r--mail/send.c2
-rw-r--r--mail/version.c2
-rw-r--r--mailbox/.cvsignore2
-rw-r--r--mailbox/Makefile.am117
-rw-r--r--mailbox/cfg_parser.y32
-rw-r--r--mailbox/daemon.c21
-rw-r--r--mailbox/mu_argp.c1393
-rw-r--r--mailbox/mu_auth.c155
-rw-r--r--mailbox/muerror.c30
-rw-r--r--mailbox/mutil.c17
-rw-r--r--mailbox/system.c3
-rw-r--r--messages/Makefile.am2
-rw-r--r--messages/messages.c19
-rw-r--r--mh/mh_argp.c3
-rw-r--r--mh/mh_getopt.h4
-rw-r--r--mh/mh_whom.c4
-rw-r--r--mimeview/Makefile.am2
-rw-r--r--mimeview/mimeview.c7
-rw-r--r--movemail/Makefile.am2
-rw-r--r--movemail/movemail.c15
-rw-r--r--po/POTFILES.in20
-rw-r--r--pop3d/Makefile.am4
-rw-r--r--pop3d/extra.c7
-rw-r--r--pop3d/pop3d.c33
-rw-r--r--pop3d/pop3d.h1
-rw-r--r--pop3d/popauth.c6
-rw-r--r--readmsg/Makefile.am2
-rw-r--r--readmsg/readmsg.c19
-rw-r--r--readmsg/readmsg.h1
-rw-r--r--sieve/Makefile.am2
-rw-r--r--sieve/sieve.c23
-rw-r--r--testsuite/lib/mailutils.exp4
126 files changed, 3574 insertions, 2572 deletions
diff --git a/ChangeLog b/ChangeLog
index caafcf6d2..046aca723 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,86 @@
+2007-11-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Move rc file and argp parsing into separate abstract layers.
+
+ * include/mailutils/gocs.h, include/mailutils/pam.h,
+ include/mailutils/radius.h, include/mailutils/syslog.h: New files
+ * lib/argpinit.c, lib/muinit.c, lib/muinit.h: New files.
+ * libsieve/conf.c: New file.
+
+ * libcfg: New directory
+ * libcfg/libcfg.h, libcfg/auth.c, libcfg/common.c, libcfg/init.c,
+ libcfg/gsasl.c, libcfg/pam.c, libcfg/radius.c, libcfg/sieve.c,
+ libcfg/sql.c, libcfg/tls.c, libcfg/virtdomain.c,
+ libcfg/.cvsignore: New files.
+
+ * libargp: New directory
+ * libargp/auth.c, libargp/cmdline.h, libargp/common.c,
+ libargp/gsasl.c, libargp/mu_argp.h, libargp/mu_argp.c,
+ libargp/pam.c, libargp/radius.c, libargp/sieve.c, libargp/sql.c,
+ libargp/tls.c, libargp/virtdomain.c, libargp/.cvsignore: New
+ files.
+
+ * mailbox/.cvsignore: Add cfg_parser.c and cfg_parser.h.
+ * Makefile.am (SUBDIRS): Add libargp and libcfg.
+ * configure.ac (MU_APP_LIBRARIES): New variable
+ (MU_COMMON_INCLUDES): add libargp and libcfg
+ (AC_CONFIG_FILES): Add libargp and libcfg.
+
+ * auth/gsasl.c, auth/pam.c, auth/radius.c, auth/sql.c, auth/sql.h,
+ auth/tls.c, auth/virtual.c, comsat/comsat.h, frm/frm.h,
+ guimb/guimb.h, imap4d/imap4d.h, include/mailutils/gsasl.h,
+ include/mailutils/libsieve.h, include/mailutils/mailutils.h,
+ include/mailutils/mu_auth.h, include/mailutils/tls.h,
+ include/mailutils/sql.h, maidag/maidag.h, mail/mail.h,
+ mail.local/mail.local.h, mailbox/daemon.c, mailbox/system.c,
+ mh/mh_argp.c, mh/mh_getopt.h, pop3d/pop3d.h,
+ readmsg/readmsg.h: Remove argp stuff
+
+ * comsat/comsat.c, config/mailutils-config.c, dotlock/dotlock.c,
+ examples/muauth.c, examples/muemail.c, frm/frm.c, frm/from.c,
+ guimb/main.c, imap4d/idle.c, imap4d/imap4d.c, imap4d/util.c,
+ imap4d/version.c, maidag/lmtp.c, maidag/maidag.c,
+ maidag/mailquota.c, mail/mail.c, mail/send.c, mail/version.c,
+ mail.local/mailquota.c, mail.local/main.c,
+ mail.remote/mail.remote.c, mailbox/mu_auth.c, messages/messages.c,
+ mimeview/mimeview.c, movemail/movemail.c, pop3d/extra.c,
+ pop3d/pop3d.c, pop3d/popauth.c, readmsg/readmsg.c, sieve/sieve.c:
+ Use mu_app_init for parsing command line and
+ configuration files.
+ * comsat/Makefile.am, config/Makefile.am, dotlock/Makefile.am,
+ examples/Makefile.am, frm/Makefile.am, guimb/Makefile.am,
+ imap4d/Makefile.am, maidag/Makefile.am, mail/Makefile.am,
+ mail.local/Makefile.am, mail.remote/Makefile.am,
+ mailbox/Makefile.am, messages/Makefile.am, mimeview/Makefile.am,
+ movemail/Makefile.am, pop3d/Makefile.am, readmsg/Makefile.am,
+ sieve/Makefile.am: Use MU_APP_LIBRARIES.
+
+ * include/mailutils/Makefile.am: Add new files.
+ * include/mailutils/argp.h: Remove.
+ * include/mailutils/cfg.h: New file.
+ * include/mailutils/daemon.h (MODE_INTERACTIVE,MODE_DAEMON): New
+ defines (from removed argp.h).
+ (mu_gocs_daemon): New decl.
+ * include/mailutils/error.h (mu_program_name): New variable
+ (mu_set_program_name): New function.
+ * lib/Makefile.am (libmuaux_la_SOURCES): Add new files.
+ * libsieve/Makefile.am (libsieve_la_SOURCES): Remove argp.c, add
+ conf.c instead.
+ * libsieve/argp.c: Remove.
+
+ * mailbox/cfg_parser.y (mu_cfg_parse_boolean): New function.
+ * mailbox/mu_argp.c: Remove.
+
+ * mailbox/muerror.c (mu_program_name): New variable
+ (mu_set_program_name): New function
+ (mu_default_error_printer): Print program name before diagnostic
+ string.
+ * mailbox/mutil.c (mu_sql_decode_password_type): New function.
+ * mh/mh_whom.c (mh_alias_expand): Bugfix
+ * po/POTFILES.in: Update
+ * testsuite/lib/mailutils.exp (mu_init): Pass --no-site-rcfile
+ --no-user-rcfile to all programs.
+
2007-11-12 Sergey Poznyakoff <gray@gnu.org.ua>
* maidag/lmtp.c: Use English reply texts.
diff --git a/Makefile.am b/Makefile.am
index f1b70f00b..b1c48e981 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -33,6 +33,8 @@ SUBDIRS = \
libsieve\
libmu_cpp\
libmu_scm\
+ libargp\
+ libcfg\
doc\
config\
examples\
diff --git a/auth/gsasl.c b/auth/gsasl.c
index 07746a4fb..9540c876d 100644
--- a/auth/gsasl.c
+++ b/auth/gsasl.c
@@ -26,7 +26,6 @@
#include <string.h>
#include <limits.h>
#include <unistd.h>
-#include <mailutils/argp.h>
#include <mailutils/error.h>
#include <mailutils/errno.h>
#include <mailutils/mu_auth.h>
@@ -36,54 +35,21 @@
#include <gsasl.h>
#include <lbuf.h>
-char *mu_gsasl_cram_md5_pwd = SITE_CRAM_MD5_PWD;
+struct mu_gsasl_module_data mu_gsasl_module_data;
-#define ARG_CRAM_PASSWD 1
-
-static struct argp_option _gsasl_argp_options[] = {
- {"cram-passwd", ARG_CRAM_PASSWD, N_("FILE"), OPTION_HIDDEN,
- N_("Specify password file for CRAM-MD5 authentication"), 0},
- { NULL, 0, NULL, 0, NULL, 0 }
-};
-
-static error_t
-_gsasl_argp_parser (int key, char *arg, struct argp_state *state)
+int
+mu_gsasl_module_init (void *data)
{
- switch (key)
- {
- case ARG_CRAM_PASSWD:
- mu_gsasl_cram_md5_pwd = arg;
- break;
-
- default:
- return ARGP_ERR_UNKNOWN;
- }
+ static struct mu_gsasl_module_data _default_module_data = {
+ SITE_CRAM_MD5_PWD
+ };
+
+ if (!data)
+ mu_gsasl_module_data = _default_module_data;
+ memcpy (&mu_gsasl_module_data, data, sizeof (mu_gsasl_module_data));
return 0;
}
-static struct argp _gsasl_argp = {
- _gsasl_argp_options,
- _gsasl_argp_parser
-};
-
-static struct argp_child _gsasl_argp_child = {
- &_gsasl_argp,
- 0,
- NULL,
- 0
-};
-
-void
-mu_gsasl_init_argp ()
-{
- if (mu_register_capa ("gsasl", &_gsasl_argp_child, NULL))
- {
- mu_error (_("INTERNAL ERROR: cannot register argp capability gsasl"));
- abort ();
- }
-}
-
-
struct _gsasl_stream {
Gsasl_session_ctx *sess_ctx; /* Context */
int last_err; /* Last Gsasl error code */