Commit ca496753 ca4967534b748731eef2f050b7c832e2604a35b2 by Sergey Poznyakoff

Minor changes

1 parent 3a91a69b
...@@ -102,15 +102,23 @@ libmu_auth module. It is declared as follows: ...@@ -102,15 +102,23 @@ libmu_auth module. It is declared as follows:
102 102
103 @smallexample 103 @smallexample
104 @group 104 @group
105 struct mu_auth_module @{ 105 struct mu_auth_module
106 char *name; /* Module name */ 106 @{
107 struct argp *argp; /* Corresponding argp structure */ 107 /* Module name */
108 mu_auth_fp authenticate; /* Authentication function ... */ 108 char *name;
109 void *authenticate_data; /* ... and its specific data */ 109 /* Pointers to functions for each mode */
110 mu_auth_fp auth_by_name; /* Get user info by user name */ 110 mu_auth_fp handler[MU_AUTH_MODE_COUNT];
111 void *auth_by_name_data; /* ... and its specific data */ 111 /* Corresponding data pointers */
112 mu_auth_fp auth_by_uid; /* Get user info by user id */ 112 void *data[MU_AUTH_MODE_COUNT];
113 void *auth_by_uid_data; /* ... and its specific data */ 113
114 /* Describes command line options for that module */
115 struct mu_option *opt;
116 /* Configuration parameters for that module */
117 struct mu_cfg_param *cfg;
118 /* Configuration section parser */
119 mu_cfg_section_fp parser;
120 /* Function to commit the changes */
121 mu_cli_capa_commit_fp commit;
114 @}; 122 @};
115 @end group 123 @end group
116 @end smallexample 124 @end smallexample
...@@ -271,8 +279,6 @@ main (int argc, char **argv) ...@@ -271,8 +279,6 @@ main (int argc, char **argv)
271 state = STATE_NONAUTH; /* Starting state in non-auth. */ 279 state = STATE_NONAUTH; /* Starting state in non-auth. */
272 280
273 MU_AUTH_REGISTER_ALL_MODULES (); 281 MU_AUTH_REGISTER_ALL_MODULES ();
274 mu_argp_parse (&argp, &argc, &argv, 0, imap4d_capa,
275 NULL, &daemon_param);
276 @dots{} 282 @dots{}
277 @end group 283 @end group
278 @end smallexample 284 @end smallexample
......
...@@ -7435,18 +7435,12 @@ Enable support for mailers. ...@@ -7435,18 +7435,12 @@ Enable support for mailers.
7435 Link in the support for Sieve mail filtering language. 7435 Link in the support for Sieve mail filtering language.
7436 @item dbm 7436 @item dbm
7437 Link in the support for DBM databases (libmu_dbm library). 7437 Link in the support for DBM databases (libmu_dbm library).
7438 @item compat
7439 Provide a compatibility layer for Mailutils 2.x.
7440 @item auth 7438 @item auth
7441 Link in the Mailutils authentication library. 7439 Link in the Mailutils authentication library.
7442 @item guile 7440 @item guile
7443 Provide Guile language bindings. 7441 Provide Guile language bindings.
7444 @item python 7442 @item python
7445 Provide Python language bindings. 7443 Provide Python language bindings.
7446 @item cfg
7447 Link in the Mailutils configuration library.
7448 @item argp
7449 Link in the library for command line parsing.
7450 @end table 7444 @end table
7451 7445
7452 @node mailutils query 7446 @node mailutils query
......
...@@ -364,7 +364,9 @@ static struct mu_cfg_param imap4d_srv_param[] = { ...@@ -364,7 +364,9 @@ static struct mu_cfg_param imap4d_srv_param[] = {
364 #ifdef WITH_TLS 364 #ifdef WITH_TLS
365 { "tls", mu_cfg_callback, 365 { "tls", mu_cfg_callback,
366 NULL, mu_offsetof (struct imap4d_srv_config, tls_mode), cb_tls, 366 NULL, mu_offsetof (struct imap4d_srv_config, tls_mode), cb_tls,
367 N_("Kind of TLS encryption to use for this server") }, 367 N_("Kind of TLS encryption to use for this server"),
368 /* TRANSLATORS: translate only arg:, the rest are keywords */
369 N_("arg: false|true|ondemand|stls|requred|connection") },
368 #endif 370 #endif
369 { NULL } 371 { NULL }
370 }; 372 };
...@@ -396,33 +398,38 @@ static struct mu_cfg_param imap4d_cfg_param[] = { ...@@ -396,33 +398,38 @@ static struct mu_cfg_param imap4d_cfg_param[] = {
396 N_("Set shared namespace.") }, 398 N_("Set shared namespace.") },
397 { "other-mailbox-mode", mu_cfg_callback, &mailbox_mode[NS_OTHER], 0, 399 { "other-mailbox-mode", mu_cfg_callback, &mailbox_mode[NS_OTHER], 0,
398 cb_mailbox_mode, 400 cb_mailbox_mode,
399 N_("File mode for mailboxes in other namespace.") }, 401 N_("File mode for mailboxes in other namespace."),
402 N_("mode: g(+|=)[wr]+,o(+|=)[wr]+") },
400 { "shared-mailbox-mode", mu_cfg_callback, &mailbox_mode[NS_SHARED], 0, 403 { "shared-mailbox-mode", mu_cfg_callback, &mailbox_mode[NS_SHARED], 0,
401 cb_mailbox_mode, 404 cb_mailbox_mode,
402 N_("File mode for mailboxes in shared namespace.") }, 405 N_("File mode for mailboxes in shared namespace."),
406 N_("mode: g(+|=)[wr]+,o(+|=)[wr]+") },
403 { "login-disabled", mu_c_bool, &login_disabled, 0, NULL, 407 { "login-disabled", mu_c_bool, &login_disabled, 0, NULL,
404 N_("Disable LOGIN command.") }, 408 N_("Disable LOGIN command.") },
405 { "create-home-dir", mu_c_bool, &create_home_dir, 0, NULL, 409 { "create-home-dir", mu_c_bool, &create_home_dir, 0, NULL,
406 N_("If true, create non-existing user home directories.") }, 410 N_("If true, create non-existing user home directories.") },
407 { "home-dir-mode", mu_cfg_callback, NULL, 0, cb_mode, 411 { "home-dir-mode", mu_cfg_callback, NULL, 0, cb_mode,
408 N_("File mode for creating user home directories (octal)."), 412 N_("File mode for creating user home directories."),
409 N_("mode") }, 413 N_("mode: octal") },
410 { "retain-groups", mu_cfg_callback, &user_retain_groups, 0, cb_group, 414 { "retain-groups", mu_cfg_callback, &user_retain_groups, 0, cb_group,
411 N_("Retain these supplementary groups when switching to user privileges"), 415 N_("Retain these supplementary groups when switching to user privileges"),
412 N_("groups: list of string") }, 416 N_("groups: list of string") },
413 #ifdef WITH_TLS 417 #ifdef WITH_TLS
414 { "tls", mu_cfg_callback, &tls_mode, 0, cb_tls, 418 { "tls", mu_cfg_callback, &tls_mode, 0, cb_tls,
415 N_("Kind of TLS encryption to use") }, 419 N_("Kind of TLS encryption to use"),
420 /* TRANSLATORS: translate only arg:, the rest are keywords */
421 N_("arg: false|true|ondemand|stls|requred|connection") },
416 { "tls-required", mu_cfg_callback, &tls_mode, 0, cb_tls_required, 422 { "tls-required", mu_cfg_callback, &tls_mode, 0, cb_tls_required,
417 N_("Always require STLS before entering authentication phase.\n" 423 N_("Always require STLS before entering authentication phase.\n"
418 "Deprecated, use \"tls required\" instead.") }, 424 "Deprecated, use \"tls required\" instead."),
425 N_("arg: bool") },
419 #endif 426 #endif
420 { "preauth", mu_cfg_callback, NULL, 0, cb_preauth, 427 { "preauth", mu_cfg_callback, NULL, 0, cb_preauth,
421 N_("Configure PREAUTH mode. MODE is one of:\n" 428 N_("Configure PREAUTH mode. <value> is one of:\n"
422 " prog:///<full-program-name: string>\n" 429 " prog:///<full-program-name: string>\n"
423 " ident[://:<port: string-or-number>]\n" 430 " ident[://:<port: string-or-number>]\n"
424 " stdio"), 431 " stdio"),
425 N_("mode") }, 432 N_("mode: value") },
426 { "preauth-only", mu_c_bool, &preauth_only, 0, NULL, 433 { "preauth-only", mu_c_bool, &preauth_only, 0, NULL,
427 N_("Use only preauth mode. If unable to setup it, disconnect " 434 N_("Use only preauth mode. If unable to setup it, disconnect "
428 "immediately.") }, 435 "immediately.") },
......
...@@ -221,15 +221,16 @@ static struct mu_cfg_param acl_param[] = { ...@@ -221,15 +221,16 @@ static struct mu_cfg_param acl_param[] = {
221 N_("addr: IP") }, 221 N_("addr: IP") },
222 { "exec", mu_cfg_callback, NULL, 0, cb_exec, 222 { "exec", mu_cfg_callback, NULL, 0, cb_exec,
223 N_("Execute supplied program if a connection from this IP address is " 223 N_("Execute supplied program if a connection from this IP address is "
224 "requested. Arguments are:\n" 224 "requested.\n\n"
225 " <addr: IP> <program: string>\n" 225 "The following macros are expanded in <program> before executing:\n"
226 "Following macros are expanded in <program> before executing:\n"
227 " address - Source IP address\n" 226 " address - Source IP address\n"
228 " port - Source port number\n") }, 227 " port - Source port number\n"),
228 N_("addr: IP> <program: string") },
229 { "ifexec", mu_cfg_callback, NULL, 0, cb_ifexec, 229 { "ifexec", mu_cfg_callback, NULL, 0, cb_ifexec,
230 N_("If a connection from this IP address is requested, execute supplied " 230 N_("If a connection from this IP address is requested, execute supplied "
231 "program and allow or deny the connection depending on its exit code. " 231 "program and allow or deny the connection depending on its exit code. "
232 "See `exec' for a description of its arguments.") }, 232 "See `exec' for a description of its arguments."),
233 N_("addr: IP> <program: string") },
233 { NULL } 234 { NULL }
234 }; 235 };
235 236
......
...@@ -79,12 +79,14 @@ static struct mu_cfg_param logging_cfg[] = { ...@@ -79,12 +79,14 @@ static struct mu_cfg_param logging_cfg[] = {
79 { "severity", mu_cfg_callback, NULL, 0, cb_severity, 79 { "severity", mu_cfg_callback, NULL, 0, cb_severity,
80 N_("Output only messages with a severity equal to or greater than " 80 N_("Output only messages with a severity equal to or greater than "
81 "this one."), 81 "this one."),
82 N_("arg: string")}, 82 /* TRANSLATORS: Translate only arg:, rest are keywords */
83 N_("arg: debug|info|notice|warning|error|crit|alert|emerg")},
83 { "facility", mu_cfg_callback, NULL, 0, cb_facility, 84 { "facility", mu_cfg_callback, NULL, 0, cb_facility,
84 N_("Set syslog facility. Arg is one of the following: user, daemon, " 85 N_("Set syslog facility. Arg is one of the following: user, daemon, "
85 "auth, authpriv, mail, cron, local0 through local7 (case-insensitive), " 86 "auth, authpriv, mail, cron, local0 through local7 (case-insensitive), "
86 "or a facility number."), 87 "or a facility number."),
87 N_("arg: string") }, 88 /* TRANSLATORS: Translate only arg: and <number>, rest are keywords */
89 N_("arg: auth|authpriv|mail|local0-local7|<number>") },
88 { "session-id", mu_c_bool, &mu_log_session_id, 0, NULL, 90 { "session-id", mu_c_bool, &mu_log_session_id, 0, NULL,
89 N_("Log session ID") }, 91 N_("Log session ID") },
90 { "tag", mu_c_string, &mu_log_tag, 0, NULL, 92 { "tag", mu_c_string, &mu_log_tag, 0, NULL,
......
...@@ -895,8 +895,9 @@ static struct mu_cfg_param dot_server_cfg_param[] = { ...@@ -895,8 +895,9 @@ static struct mu_cfg_param dot_server_cfg_param[] = {
895 N_("Maximum number of children processes to run simultaneously.") }, 895 N_("Maximum number of children processes to run simultaneously.") },
896 { "mode", mu_cfg_callback, 896 { "mode", mu_cfg_callback,
897 NULL, mu_offsetof (struct _mu_m_server,mode), _cb_daemon_mode, 897 NULL, mu_offsetof (struct _mu_m_server,mode), _cb_daemon_mode,
898 N_("Set daemon mode (either inetd (or interactive) or daemon)."), 898 N_("Set operation mode."),
899 N_("mode") }, 899 /* TRANSLATORS: Words to the right of : are keywords. */
900 N_("mode: inetd|interactive|daemom") },
900 { "foreground", mu_c_bool, 901 { "foreground", mu_c_bool,
901 NULL, mu_offsetof (struct _mu_m_server, foreground), NULL, 902 NULL, mu_offsetof (struct _mu_m_server, foreground), NULL,
902 N_("Run in foreground.") }, 903 N_("Run in foreground.") },
...@@ -906,7 +907,8 @@ static struct mu_cfg_param dot_server_cfg_param[] = { ...@@ -906,7 +907,8 @@ static struct mu_cfg_param dot_server_cfg_param[] = {
906 N_("file") }, 907 N_("file") },
907 { "port", mu_cfg_callback, 908 { "port", mu_cfg_callback,
908 NULL, mu_offsetof (struct _mu_m_server, hints), _cb_port, 909 NULL, mu_offsetof (struct _mu_m_server, hints), _cb_port,
909 N_("Default port number.") }, 910 N_("Default port number."),
911 N_("arg: port number or service name") },
910 { "timeout", mu_c_time, 912 { "timeout", mu_c_time,
911 NULL, mu_offsetof (struct _mu_m_server,timeout), NULL, 913 NULL, mu_offsetof (struct _mu_m_server,timeout), NULL,
912 N_("Set idle timeout.") }, 914 N_("Set idle timeout.") },
...@@ -953,7 +955,8 @@ _cb_backlog (void *data, mu_config_value_t *val) ...@@ -953,7 +955,8 @@ _cb_backlog (void *data, mu_config_value_t *val)
953 static struct mu_cfg_param server_tcp_param[] = { 955 static struct mu_cfg_param server_tcp_param[] = {
954 { "backlog", mu_cfg_callback, 956 { "backlog", mu_cfg_callback,
955 NULL, mu_offsetof (struct mu_srv_config, tcpsrv), _cb_backlog, 957 NULL, mu_offsetof (struct mu_srv_config, tcpsrv), _cb_backlog,
956 N_("Size of the queue of pending connections") }, 958 N_("Size of the queue of pending connections"),
959 N_("number") },
957 { NULL } 960 { NULL }
958 }; 961 };
959 962
......
...@@ -106,7 +106,7 @@ static struct mu_cfg_param mu_ldap_param[] = { ...@@ -106,7 +106,7 @@ static struct mu_cfg_param mu_ldap_param[] = {
106 "where <name> is one of the following: name, passwd, uid, gid, " 106 "where <name> is one of the following: name, passwd, uid, gid, "
107 "gecos, dir, shell, mailbox, quota, and <attr> is the name of " 107 "gecos, dir, shell, mailbox, quota, and <attr> is the name of "
108 "the corresponding LDAP attribute."), 108 "the corresponding LDAP attribute."),
109 N_("map") }, 109 N_("map: definition") },
110 { "getpwnam", mu_c_string, &ldap_param.getpwnam_filter, 0, NULL, 110 { "getpwnam", mu_c_string, &ldap_param.getpwnam_filter, 0, NULL,
111 N_("LDAP filter to use for getpwnam requests."), 111 N_("LDAP filter to use for getpwnam requests."),
112 N_("filter") }, 112 N_("filter") },
......
...@@ -191,7 +191,8 @@ static struct mu_cfg_param mu_radius_param[] = { ...@@ -191,7 +191,8 @@ static struct mu_cfg_param mu_radius_param[] = {
191 N_("Radius request for getpwuid."), 191 N_("Radius request for getpwuid."),
192 N_("request: string") }, 192 N_("request: string") },
193 { "directory", mu_cfg_callback, NULL, 0, cb_config_dir, 193 { "directory", mu_cfg_callback, NULL, 0, cb_config_dir,
194 N_("Set radius configuration directory.") }, 194 N_("Set radius configuration directory."),
195 N_("dir: string") },
195 { NULL } 196 { NULL }
196 }; 197 };
197 198
......
...@@ -103,6 +103,7 @@ static struct mu_cfg_param mu_sql_param[] = { ...@@ -103,6 +103,7 @@ static struct mu_cfg_param mu_sql_param[] = {
103 { "interface", mu_cfg_callback, &mu_sql_module_config.interface, 0, 103 { "interface", mu_cfg_callback, &mu_sql_module_config.interface, 0,
104 cb_interface, 104 cb_interface,
105 N_("Set SQL interface to use."), 105 N_("Set SQL interface to use."),
106 /* TRANSLATORS: Words to the right of : are keywords - do not translate */
106 N_("iface: mysql|odbc|postgres") }, 107 N_("iface: mysql|odbc|postgres") },
107 { "getpwnam", mu_c_string, &mu_sql_module_config.getpwnam_query, 0, NULL, 108 { "getpwnam", mu_c_string, &mu_sql_module_config.getpwnam_query, 0, NULL,
108 N_("SQL query to use for getpwnam requests."), 109 N_("SQL query to use for getpwnam requests."),
...@@ -124,8 +125,9 @@ static struct mu_cfg_param mu_sql_param[] = { ...@@ -124,8 +125,9 @@ static struct mu_cfg_param mu_sql_param[] = {
124 { "db", mu_c_string, &mu_sql_module_config.db, 0, NULL, 125 { "db", mu_c_string, &mu_sql_module_config.db, 0, NULL,
125 N_("Database name.") }, 126 N_("Database name.") },
126 { "password-type", mu_cfg_callback, NULL, 0, cb_password_type, 127 { "password-type", mu_cfg_callback, NULL, 0, cb_password_type,
127 N_("Type of password returned by getpass query (one of: plain, hash, " 128 N_("Type of password returned by getpass query."),
128 "scrambled).") }, 129 /* TRANSLATORS: Words to the right of : are keywords - do not translate */
130 N_("arg: plain|hash|scrambled") },
129 { "positional", mu_c_bool, &mu_sql_module_config.positional, 0, NULL, 131 { "positional", mu_c_bool, &mu_sql_module_config.positional, 0, NULL,
130 N_("Use positional (v1.0 compatible) field interface.") }, 132 N_("Use positional (v1.0 compatible) field interface.") },
131 { "field-map", mu_cfg_callback, NULL, 0, cb_field_map, 133 { "field-map", mu_cfg_callback, NULL, 0, cb_field_map,
...@@ -136,7 +138,7 @@ static struct mu_cfg_param mu_sql_param[] = { ...@@ -136,7 +138,7 @@ static struct mu_cfg_param mu_sql_param[] = {
136 "where <name> is one of the following: name, passwd, uid, gid, " 138 "where <name> is one of the following: name, passwd, uid, gid, "
137 "gecos, dir, shell, mailbox, quota, and <column> is the name of " 139 "gecos, dir, shell, mailbox, quota, and <column> is the name of "
138 "the corresponding SQL column."), 140 "the corresponding SQL column."),
139 N_("map") }, 141 N_("map: definition") },
140 { NULL } 142 { NULL }
141 }; 143 };
142 144
......
...@@ -142,21 +142,23 @@ cb_library_path_prefix (void *data, mu_config_value_t *val) ...@@ -142,21 +142,23 @@ cb_library_path_prefix (void *data, mu_config_value_t *val)
142 142
143 static struct mu_cfg_param mu_sieve_param[] = { 143 static struct mu_cfg_param mu_sieve_param[] = {
144 { "clear-library-path", mu_cfg_callback, NULL, 0, cb_clear_library_path, 144 { "clear-library-path", mu_cfg_callback, NULL, 0, cb_clear_library_path,
145 N_("Clear library search path.") }, 145 N_("Clear library search path."),
146 N_("arg: directory list") },
146 { "clear-include-path", mu_cfg_callback, NULL, 0, cb_clear_include_path, 147 { "clear-include-path", mu_cfg_callback, NULL, 0, cb_clear_include_path,
147 N_("Clear include search path.") }, 148 N_("Clear include search path."),
149 N_("arg: directory list") },
148 { "library-path", mu_cfg_callback, NULL, 0, cb_library_path, 150 { "library-path", mu_cfg_callback, NULL, 0, cb_library_path,
149 N_("Add directories to the library search path. Argument is a " 151 N_("Add directories to the library search path. Argument is a "
150 "colon-separated list of directories."), 152 "colon-separated list of directories."),
151 N_("list") }, 153 N_("arg: directory list") },
152 { "library-path-prefix", mu_cfg_callback, NULL, 0, cb_library_path_prefix, 154 { "library-path-prefix", mu_cfg_callback, NULL, 0, cb_library_path_prefix,
153 N_("Add directories to the beginning of the library search path. " 155 N_("Add directories to the beginning of the library search path. "
154 "Argument is a colon-separated list of directories."), 156 "Argument is a colon-separated list of directories."),
155 N_("list") }, 157 N_("arg: directory list") },
156 { "include-path", mu_cfg_callback, NULL, 0, cb_include_path, 158 { "include-path", mu_cfg_callback, NULL, 0, cb_include_path,
157 N_("Add directories to the include search path. Argument is a " 159 N_("Add directories to the include search path. Argument is a "
158 "colon-separated list of directories."), 160 "colon-separated list of directories."),
159 N_("list") }, 161 N_("arg: directory list") },
160 { NULL } 162 { NULL }
161 }; 163 };
162 164
......
...@@ -372,9 +372,12 @@ cb_script_pattern (void *data, mu_config_value_t *val) ...@@ -372,9 +372,12 @@ cb_script_pattern (void *data, mu_config_value_t *val)
372 372
373 struct mu_cfg_param filter_cfg_param[] = { 373 struct mu_cfg_param filter_cfg_param[] = {
374 { "language", mu_cfg_callback, NULL, 0, cb_script_language, 374 { "language", mu_cfg_callback, NULL, 0, cb_script_language,
375 N_("Set script language.") }, 375 N_("Set script language."),
376 /* TRANSLATORS: words to the right of : are keywords - do not translate */
377 N_("arg: python|guile") },
376 { "pattern", mu_cfg_callback, NULL, 0, cb_script_pattern, 378 { "pattern", mu_cfg_callback, NULL, 0, cb_script_pattern,
377 N_("Set script pattern.") }, 379 N_("Set script pattern."),
380 N_("arg: glob") },
378 { NULL } 381 { NULL }
379 }; 382 };
380 383
...@@ -419,7 +422,8 @@ cb_listen (void *data, mu_config_value_t *val) ...@@ -419,7 +422,8 @@ cb_listen (void *data, mu_config_value_t *val)
419 struct mu_cfg_param maidag_cfg_param[] = { 422 struct mu_cfg_param maidag_cfg_param[] = {
420 { "delivery-mode", mu_cfg_callback, NULL, 0, cb_delivery_mode, 423 { "delivery-mode", mu_cfg_callback, NULL, 0, cb_delivery_mode,
421 N_("Set delivery mode"), 424 N_("Set delivery mode"),
422 N_("mode: {mda | url | lmtp}") }, 425 /* TRANSLATORS: words to the right of : are keywords - do not translate */
426 N_("mode: mda|url|lmtp") },
423 { "exit-multiple-delivery-success", mu_c_bool, &multiple_delivery, 0, NULL, 427 { "exit-multiple-delivery-success", mu_c_bool, &multiple_delivery, 0, NULL,
424 N_("In case of multiple delivery, exit with code 0 if at least one " 428 N_("In case of multiple delivery, exit with code 0 if at least one "
425 "delivery succeeded.") }, 429 "delivery succeeded.") },
...@@ -447,9 +451,11 @@ struct mu_cfg_param maidag_cfg_param[] = { ...@@ -447,9 +451,11 @@ struct mu_cfg_param maidag_cfg_param[] = {
447 " g - guile stack traces\n" 451 " g - guile stack traces\n"
448 " t - sieve trace (MU_SIEVE_DEBUG_TRACE)\n" 452 " t - sieve trace (MU_SIEVE_DEBUG_TRACE)\n"
449 " i - sieve instructions trace (MU_SIEVE_DEBUG_INSTR)\n" 453 " i - sieve instructions trace (MU_SIEVE_DEBUG_INSTR)\n"
450 " l - sieve action logs\n") }, 454 " l - sieve action logs\n"),
455 N_("arg: string") },
451 { "stderr", mu_cfg_callback, NULL, 0, cb_stderr, 456 { "stderr", mu_cfg_callback, NULL, 0, cb_stderr,
452 N_("Log to stderr instead of syslog.") }, 457 N_("Log to stderr instead of syslog."),
458 N_("arg: bool") },
453 { "forward-file", mu_c_string, &forward_file, 0, NULL, 459 { "forward-file", mu_c_string, &forward_file, 0, NULL,
454 N_("Process forward file.") }, 460 N_("Process forward file.") },
455 { "forward-file-checks", mu_cfg_callback, NULL, 0, cb_forward_file_checks, 461 { "forward-file-checks", mu_cfg_callback, NULL, 0, cb_forward_file_checks,
...@@ -467,7 +473,7 @@ struct mu_cfg_param maidag_cfg_param[] = { ...@@ -467,7 +473,7 @@ struct mu_cfg_param maidag_cfg_param[] = {
467 "mandatory)\n" 473 "mandatory)\n"
468 " file://<socket-file-name>\n" 474 " file://<socket-file-name>\n"
469 "or socket://<socket-file-name>"), 475 "or socket://<socket-file-name>"),
470 N_("url") }, 476 N_("url: string") },
471 { "reuse-address", mu_c_bool, &reuse_lmtp_address, 0, NULL, 477 { "reuse-address", mu_c_bool, &reuse_lmtp_address, 0, NULL,
472 N_("Reuse existing address (LMTP mode). Default is \"yes\".") }, 478 N_("Reuse existing address (LMTP mode). Default is \"yes\".") },
473 { "filter", mu_cfg_section, NULL, 0, NULL, 479 { "filter", mu_cfg_section, NULL, 0, NULL,
......
...@@ -130,7 +130,7 @@ cb_debug (void *data, mu_config_value_t *val) ...@@ -130,7 +130,7 @@ cb_debug (void *data, mu_config_value_t *val)
130 struct mu_cfg_param mimeview_cfg_param[] = { 130 struct mu_cfg_param mimeview_cfg_param[] = {
131 { "debug", mu_cfg_callback, NULL, 0, cb_debug, 131 { "debug", mu_cfg_callback, NULL, 0, cb_debug,
132 N_("Set debug verbosity level."), 132 N_("Set debug verbosity level."),
133 N_("flags") }, 133 N_("flags: string") },
134 { "mimetypes", mu_c_string, &mimetypes_config, 0, NULL, 134 { "mimetypes", mu_c_string, &mimetypes_config, 0, NULL,
135 N_("Use this mime.types file."), 135 N_("Use this mime.types file."),
136 N_("file") }, 136 N_("file") },
......
...@@ -365,7 +365,8 @@ struct mu_cfg_param movemail_cfg_param[] = { ...@@ -365,7 +365,8 @@ struct mu_cfg_param movemail_cfg_param[] = {
365 " delete - delete this one and to the next message\n" 365 " delete - delete this one and to the next message\n"
366 " count - count this message as processed\n" 366 " count - count this message as processed\n"
367 "Each keyword can be prefixed with \"no\" to reverse its meaning\n" 367 "Each keyword can be prefixed with \"no\" to reverse its meaning\n"
368 "Setting onerror=abort reverts to the default behavior.") }, 368 "Setting onerror=abort reverts to the default behavior."),
369 N_("arg: list") },
369 { NULL } 370 { NULL }
370 }; 371 };
371 372
......
...@@ -234,7 +234,9 @@ static struct mu_cfg_param pop3d_srv_param[] = { ...@@ -234,7 +234,9 @@ static struct mu_cfg_param pop3d_srv_param[] = {
234 #ifdef WITH_TLS 234 #ifdef WITH_TLS
235 { "tls", mu_cfg_callback, 235 { "tls", mu_cfg_callback,
236 NULL, mu_offsetof (struct pop3d_srv_config, tls_mode), cb_tls, 236 NULL, mu_offsetof (struct pop3d_srv_config, tls_mode), cb_tls,
237 N_("Kind of TLS encryption to use for this server") }, 237 N_("Kind of TLS encryption to use for this server"),
238 /* TRANSLATORS: words to the right of : are keywords - do not translate */
239 N_("arg: false|true|ondemand|stls|requred|connection") },
238 #endif 240 #endif
239 { NULL } 241 { NULL }
240 }; 242 };
...@@ -252,7 +254,8 @@ static struct mu_cfg_param pop3d_cfg_param[] = { ...@@ -252,7 +254,8 @@ static struct mu_cfg_param pop3d_cfg_param[] = {
252 { "apop-database-file", mu_c_string, &apop_database_name, 0, NULL, 254 { "apop-database-file", mu_c_string, &apop_database_name, 0, NULL,
253 N_("set APOP database file name or URL") }, 255 N_("set APOP database file name or URL") },
254 { "apop-database-owner", mu_cfg_callback, NULL, 0, cb_apop_database_owner, 256 { "apop-database-owner", mu_cfg_callback, NULL, 0, cb_apop_database_owner,
255 N_("Name or UID of the APOP database owner") }, 257 N_("Name or UID of the APOP database owner"),
258 N_("arg: string") },
256 { "apop-database-safety", mu_cfg_callback, NULL, 0, cb_apop_safety_checks, 259 { "apop-database-safety", mu_cfg_callback, NULL, 0, cb_apop_safety_checks,
257 N_("Configure safety checks for APOP database files. Argument is a list or " 260 N_("Configure safety checks for APOP database files. Argument is a list or "
258 "sequence of check names optionally prefixed with '+' to enable or " 261 "sequence of check names optionally prefixed with '+' to enable or "
...@@ -271,10 +274,13 @@ static struct mu_cfg_param pop3d_cfg_param[] = { ...@@ -271,10 +274,13 @@ static struct mu_cfg_param pop3d_cfg_param[] = {
271 274
272 #ifdef WITH_TLS 275 #ifdef WITH_TLS
273 { "tls", mu_cfg_callback, &tls_mode, 0, cb_tls, 276 { "tls", mu_cfg_callback, &tls_mode, 0, cb_tls,
274 N_("Kind of TLS encryption to use") }, 277 N_("Kind of TLS encryption to use"),
278 /* TRANSLATORS: words to the right of : are keywords - do not translate */
279 N_("arg: false|true|ondemand|stls|requred|connection") },
275 { "tls-required", mu_cfg_callback, &tls_mode, 0, cb_tls_required, 280 { "tls-required", mu_cfg_callback, &tls_mode, 0, cb_tls_required,
276 N_("Always require STLS before entering authentication phase.\n" 281 N_("Always require STLS before entering authentication phase.\n"
277 "Deprecated, use \"tls required\" instead.") }, 282 "Deprecated, use \"tls required\" instead."),
283 N_("arg: bool") },
278 #endif 284 #endif
279 #ifdef ENABLE_LOGIN_DELAY 285 #ifdef ENABLE_LOGIN_DELAY
280 { "login-delay", mu_c_time, &login_delay, 0, NULL, 286 { "login-delay", mu_c_time, &login_delay, 0, NULL,
...@@ -284,11 +290,11 @@ static struct mu_cfg_param pop3d_cfg_param[] = { ...@@ -284,11 +290,11 @@ static struct mu_cfg_param pop3d_cfg_param[] = {
284 #endif 290 #endif
285 { "bulletin-source", mu_cfg_callback, NULL, 0, cb_bulletin_source, 291 { "bulletin-source", mu_cfg_callback, NULL, 0, cb_bulletin_source,
286 N_("Get bulletins from the specified mailbox."), 292 N_("Get bulletins from the specified mailbox."),
287 N_("url") }, 293 N_("url: string") },
288 #ifdef ENABLE_DBM 294 #ifdef ENABLE_DBM
289 { "bulletin-db", mu_cfg_callback, NULL, 0, cb_bulletin_db, 295 { "bulletin-db", mu_cfg_callback, NULL, 0, cb_bulletin_db,
290 N_("Set the bulletin database file name."), 296 N_("Set the bulletin database file name."),
291 N_("file") }, 297 N_("file: string") },
292 #endif 298 #endif
293 { "output-buffer-size", mu_c_size, &pop3d_output_bufsize, 0, NULL, 299 { "output-buffer-size", mu_c_size, &pop3d_output_bufsize, 0, NULL,
294 N_("Size of the output buffer.") }, 300 N_("Size of the output buffer.") },
......
...@@ -222,13 +222,15 @@ static struct mu_cfg_param sieve_cfg_param[] = { ...@@ -222,13 +222,15 @@ static struct mu_cfg_param sieve_cfg_param[] = {
222 " T - mailutils traces (sieve.trace9)\n" 222 " T - mailutils traces (sieve.trace9)\n"
223 " P - network protocols (sieve.prot)\n" 223 " P - network protocols (sieve.prot)\n"
224 " t - sieve trace (MU_SIEVE_DEBUG_TRACE)\n" 224 " t - sieve trace (MU_SIEVE_DEBUG_TRACE)\n"
225 " i - sieve instructions trace (MU_SIEVE_DEBUG_INSTR).") }, 225 " i - sieve instructions trace (MU_SIEVE_DEBUG_INSTR)."),
226 N_("arg: string") },
226 { "verbose", mu_c_bool, &verbose, 0, NULL, 227 { "verbose", mu_c_bool, &verbose, 0, NULL,
227 N_("Log all executed actions.") }, 228 N_("Log all executed actions.") },
228 { "line-info", mu_c_bool, &sieve_print_locus, 0, NULL, 229 { "line-info", mu_c_bool, &sieve_print_locus, 0, NULL,
229 N_("Print source locations along with action logs (default).") }, 230 N_("Print source locations along with action logs (default).") },
230 { "email", mu_cfg_callback, NULL, 0, cb_email, 231 { "email", mu_cfg_callback, NULL, 0, cb_email,
231 N_("Set user email address.") }, 232 N_("Set user email address."),
233 N_("arg: string") },
232 { NULL } 234 { NULL }
233 }; 235 };
234 236
......