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