dovecot-2.0-sslstream: Moved most of getopt() handling to lib-ma...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Feb 13 02:55:19 EET 2010
details: http://hg.dovecot.org/dovecot-2.0-sslstream/rev/1e63221f5c83
changeset: 10120:1e63221f5c83
user: Timo Sirainen <tss at iki.fi>
date: Tue Oct 20 20:07:45 2009 -0400
description:
Moved most of getopt() handling to lib-master.
diffstat:
20 files changed, 83 insertions(+), 139 deletions(-)
src/anvil/main.c | 13 +++----------
src/auth/main.c | 15 +++------------
src/config/doveconf.c | 13 ++++---------
src/config/main.c | 12 +++---------
src/dict/main.c | 12 +++---------
src/doveadm/doveadm.c | 12 ++++--------
src/dsync/dsync.c | 12 ++++--------
src/imap/main.c | 10 ++++------
src/lda/main.c | 16 +++++-----------
src/lib-master/master-service-private.h | 3 ++-
src/lib-master/master-service.c | 17 ++++++++++++++++-
src/lib-master/master-service.h | 5 ++++-
src/lmtp/main.c | 10 ++++------
src/log/main.c | 10 +++-------
src/login-common/main.c | 11 +++--------
src/master/main.c | 7 +++----
src/plugins/convert/convert-tool.c | 10 ++++------
src/plugins/expire/expire-tool.c | 13 ++++---------
src/pop3/main.c | 10 ++++------
src/ssl-params/main.c | 11 +++--------
diffs (truncated from 636 to 300 lines):
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/anvil/main.c
--- a/src/anvil/main.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/anvil/main.c Tue Oct 20 20:07:45 2009 -0400
@@ -7,9 +7,6 @@
#include "master-interface.h"
#include "connect-limit.h"
#include "anvil-connection.h"
-
-#include <stdlib.h>
-#include <unistd.h>
struct connect_limit *connect_limit;
@@ -22,13 +19,9 @@ static void client_connected(const struc
int main(int argc, char *argv[])
{
- int c;
-
- master_service = master_service_init("anvil", 0, argc, argv);
- while ((c = getopt(argc, argv, master_service_getopt_string())) > 0) {
- if (!master_service_parse_option(master_service, c, optarg))
- exit(FATAL_DEFAULT);
- }
+ master_service = master_service_init("anvil", 0, argc, argv, NULL);
+ if (master_getopt(master_service) > 0)
+ return FATAL_DEFAULT;
master_service_set_die_with_master(master_service, TRUE);
master_service_init_log(master_service, "anvil: ");
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/auth/main.c
--- a/src/auth/main.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/auth/main.c Tue Oct 20 20:07:45 2009 -0400
@@ -20,10 +20,6 @@
#include "auth-worker-client.h"
#include "auth-master-connection.h"
#include "auth-client-connection.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/un.h>
enum auth_socket_type {
AUTH_SOCKET_UNKNOWN = 0,
@@ -161,23 +157,18 @@ static void client_connected(const struc
int main(int argc, char *argv[])
{
- const char *getopt_str;
int c;
- master_service = master_service_init("auth", 0, argc, argv);
+ master_service = master_service_init("auth", 0, argc, argv, "w");
master_service_init_log(master_service, "auth: ");
- getopt_str = t_strconcat("w", master_service_getopt_string(), NULL);
- while ((c = getopt(argc, argv, getopt_str)) > 0) {
+ while ((c = master_getopt(master_service)) > 0) {
switch (c) {
case 'w':
worker = TRUE;
break;
default:
- if (!master_service_parse_option(master_service,
- c, optarg))
- exit(FATAL_DEFAULT);
- break;
+ return FATAL_DEFAULT;
}
}
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/config/doveconf.c
--- a/src/config/doveconf.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/config/doveconf.c Tue Oct 20 20:07:45 2009 -0400
@@ -13,7 +13,6 @@
#include "config-request.h"
#include <stdio.h>
-#include <stdlib.h>
#include <unistd.h>
struct config_request_get_string_ctx {
@@ -225,7 +224,7 @@ int main(int argc, char *argv[])
int main(int argc, char *argv[])
{
enum config_dump_scope scope = CONFIG_DUMP_SCOPE_ALL;
- const char *getopt_str, *config_path, *module = "";
+ const char *config_path, *module = "";
struct config_filter filter;
const char *error;
char **exec_args = NULL;
@@ -234,11 +233,9 @@ int main(int argc, char *argv[])
memset(&filter, 0, sizeof(filter));
master_service = master_service_init("config",
MASTER_SERVICE_FLAG_STANDALONE,
- argc, argv);
+ argc, argv, "af:m:nNe");
i_set_failure_prefix("doveconf: ");
- getopt_str = t_strconcat("af:m:nNe",
- master_service_getopt_string(), NULL);
- while ((c = getopt(argc, argv, getopt_str)) > 0) {
+ while ((c = master_getopt(master_service)) > 0) {
if (c == 'e')
break;
switch (c) {
@@ -257,9 +254,7 @@ int main(int argc, char *argv[])
scope = CONFIG_DUMP_SCOPE_SET;
break;
default:
- if (!master_service_parse_option(master_service,
- c, optarg))
- exit(FATAL_DEFAULT);
+ return FATAL_DEFAULT;
}
}
config_path = master_service_get_config_path(master_service);
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/config/main.c
--- a/src/config/main.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/config/main.c Tue Oct 20 20:07:45 2009 -0400
@@ -8,9 +8,6 @@
#include "config-parser.h"
#include "config-request.h"
-#include <stdlib.h>
-#include <unistd.h>
-
static void client_connected(const struct master_service_connection *conn)
{
config_connection_create(conn->fd);
@@ -19,13 +16,10 @@ int main(int argc, char *argv[])
int main(int argc, char *argv[])
{
const char *path, *error;
- int c;
- master_service = master_service_init("config", 0, argc, argv);
- while ((c = getopt(argc, argv, master_service_getopt_string())) > 0) {
- if (!master_service_parse_option(master_service, c, optarg))
- exit(FATAL_DEFAULT);
- }
+ master_service = master_service_init("config", 0, argc, argv, NULL);
+ if (master_getopt(master_service) > 0)
+ return FATAL_DEFAULT;
master_service_init_log(master_service, "config: ");
master_service_init_finish(master_service);
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/dict/main.c
--- a/src/dict/main.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/dict/main.c Tue Oct 20 20:07:45 2009 -0400
@@ -12,9 +12,6 @@
#include "dict-client.h"
#include "dict-connection.h"
#include "dict-settings.h"
-
-#include <stdlib.h>
-#include <unistd.h>
static struct module *modules;
@@ -77,13 +74,10 @@ int main(int argc, char *argv[])
NULL
};
const char *error;
- int c;
- master_service = master_service_init("dict", 0, argc, argv);
- while ((c = getopt(argc, argv, master_service_getopt_string())) > 0) {
- if (!master_service_parse_option(master_service, c, optarg))
- exit(FATAL_DEFAULT);
- }
+ master_service = master_service_init("dict", 0, argc, argv, NULL);
+ if (master_getopt(master_service) > 0)
+ return FATAL_DEFAULT;
if (master_service_settings_read_simple(master_service, set_roots,
&error) < 0)
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/doveadm/doveadm.c
--- a/src/doveadm/doveadm.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/doveadm/doveadm.c Tue Oct 20 20:07:45 2009 -0400
@@ -70,12 +70,11 @@ static bool doveadm_try_run(const char *
int main(int argc, char *argv[])
{
- const char *cmd_name, *getopt_str;
- int c;
+ const char *cmd_name;
master_service = master_service_init("doveadm",
MASTER_SERVICE_FLAG_STANDALONE,
- argc, argv);
+ argc, argv, "+");
i_array_init(&doveadm_cmds, 32);
doveadm_mail_init();
doveadm_register_cmd(&doveadm_cmd_help);
@@ -86,11 +85,8 @@ int main(int argc, char *argv[])
/* "+" is GNU extension to stop at the first non-option.
others just accept -+ option. */
- getopt_str = t_strconcat("+", master_service_getopt_string(), NULL);
- while ((c = getopt(argc, argv, getopt_str)) > 0) {
- if (!master_service_parse_option(master_service, c, optarg))
- usage();
- }
+ if (master_getopt(master_service) > 0)
+ usage();
if (optind == argc)
usage();
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/dsync/dsync.c
--- a/src/dsync/dsync.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/dsync/dsync.c Tue Oct 20 20:07:45 2009 -0400
@@ -72,19 +72,17 @@ int main(int argc, char *argv[])
struct mail_storage_service_input input;
struct mail_user *mail_user;
struct dsync_worker *worker1, *worker2;
- const char *getopt_str, *username, *mailbox = NULL, *cmd = NULL;
+ const char *username, *mailbox = NULL, *cmd = NULL;
bool dest = TRUE;
int c, ret, fd_in = STDIN_FILENO, fd_out = STDOUT_FILENO;
master_service = master_service_init("dsync",
MASTER_SERVICE_FLAG_STANDALONE |
MASTER_SERVICE_FLAG_STD_CLIENT,
- argc, argv);
+ argc, argv, "b:e:fu:v");
username = getenv("USER");
- getopt_str = t_strconcat("b:e:fu:v",
- master_service_getopt_string(), NULL);
- while ((c = getopt(argc, argv, getopt_str)) > 0) {
+ while ((c = master_getopt(master_service)) > 0) {
if (c == '-')
break;
switch (c) {
@@ -105,9 +103,7 @@ int main(int argc, char *argv[])
brain_flags |= DSYNC_BRAIN_FLAG_VERBOSE;
break;
default:
- if (!master_service_parse_option(master_service,
- c, optarg))
- usage();
+ usage();
}
}
if (optind != argc)
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/imap/main.c
--- a/src/imap/main.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/imap/main.c Tue Oct 20 20:07:45 2009 -0400
@@ -201,7 +201,6 @@ int main(int argc, char *argv[], char *e
int main(int argc, char *argv[], char *envp[])
{
enum master_service_flags service_flags = 0;
- int c;
if (IS_STANDALONE() && getuid() == 0 &&
net_getpeername(1, NULL, NULL) == 0) {
@@ -218,11 +217,10 @@ int main(int argc, char *argv[], char *e
MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT;
}
- master_service = master_service_init("imap", service_flags, argc, argv);
- while ((c = getopt(argc, argv, master_service_getopt_string())) > 0) {
- if (!master_service_parse_option(master_service, c, optarg))
- exit(FATAL_DEFAULT);
- }
+ master_service = master_service_init("imap", service_flags,
+ argc, argv, NULL);
+ if (master_getopt(master_service) > 0)
+ exit(FATAL_DEFAULT);
process_title_init(argv, envp);
master_service_init_finish(master_service);
diff -r 1ae1d47aaef8 -r 1e63221f5c83 src/lda/main.c
--- a/src/lda/main.c Tue Oct 20 19:44:57 2009 -0400
+++ b/src/lda/main.c Tue Oct 20 20:07:45 2009 -0400
@@ -244,7 +244,7 @@ int main(int argc, char *argv[])
};
struct mail_deliver_context ctx;
enum mail_storage_service_flags service_flags = 0;
- const char *user, *errstr, *path, *getopt_str;
+ const char *user, *errstr, *path;
struct mail_storage_service_input service_input;
struct mail_user *raw_mail_user;
struct mail_namespace *raw_ns;
@@ -287,7 +287,7 @@ int main(int argc, char *argv[])
master_service = master_service_init("lda",
MASTER_SERVICE_FLAG_STANDALONE |
MASTER_SERVICE_FLAG_DONT_LOG_TO_STDERR,
- argc, argv);
+ argc, argv, "a:d:p:ekm:nsf:");
memset(&ctx, 0, sizeof(ctx));
ctx.pool = pool_alloconly_create("mail deliver context", 256);
@@ -295,9 +295,7 @@ int main(int argc, char *argv[])
path = NULL;
user = getenv("USER");
- getopt_str = t_strconcat("a:d:p:ekm:nsf:",
- master_service_getopt_string(), NULL);
- while ((c = getopt(argc, argv, getopt_str)) > 0) {
More information about the dovecot-cvs
mailing list