[Patch 2/3] chunkd: End-to-end verbosity v3

Pete Zaitcev <[email protected]>
Newsgroups org.kernel.vger.hail-devel
Message-ID <[email protected]>
Signed-Off-By: Pete Zaitcev <[email protected]>

---
 pkg/chunkd.sysconf |    2 +-
 server/cldu.c      |    3 ++-
 server/server.c    |   22 ++++++++++++++++------
 3 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/pkg/chunkd.sysconf b/pkg/chunkd.sysconf
index 7272a0d..122b524 100644
--- a/pkg/chunkd.sysconf
+++ b/pkg/chunkd.sysconf
@@ -2,5 +2,5 @@
 #
 
 #example:
-#OPTS="--debug"
+#OPTS="--debug 1"
 
diff --git a/server/cldu.c b/server/cldu.c
index 51d01a3..b2d3388 100644
--- a/server/cldu.c
+++ b/server/cldu.c
@@ -319,7 +319,8 @@ static int cldu_set_cldc(struct cld_session *cs, int newactive)
 		       hp->host, hp->port);
 
 	cs->nsess = ncld_sess_open(hp->host, hp->port, &error,
-				   cldu_sess_event, cs, "tabled", "tabled");
+				   cldu_sess_event, cs, "tabled", "tabled",
+				   &cldu_hail_log);
 	if (cs->nsess == NULL) {
 		if (error < 1000) {
 			applog(LOG_ERR, "ncld_sess_open(%s,%u) error: %s",
diff --git a/server/server.c b/server/server.c
index 69f3973..f367676 100644
--- a/server/server.c
+++ b/server/server.c
@@ -66,8 +66,8 @@ enum {
 static struct argp_option options[] = {
 	{ "config", 'C', "FILE", 0,
 	  "Read master configuration from FILE" },
-	{ "debug", 'D', NULL, 0,
-	  "Enable debug output" },
+	{ "debug", 'D', "LEVEL", 0,
+	  "Set debug output to LEVEL (0 = off, 2 = max)" },
 	{ "stderr", 'E', NULL, 0,
 	  "Switch the log to standard error" },
 	{ "foreground", 'F', NULL, 0,
@@ -170,12 +170,24 @@ void applog(int prio, const char *fmt, ...)
 
 static error_t parse_opt (int key, char *arg, struct argp_state *state)
 {
+	int v;
+
 	switch(key) {
 	case 'C':
 		chunkd_srv.config = arg;
 		break;
 	case 'D':
-		debugging = 1;
+		v = atoi(arg);
+		if (v < 0 || v > 2) {
+			fprintf(stderr, "invalid debug level: '%s'\n", arg);
+			argp_usage(state);
+		}
+		if (v >= 1)
+			debugging = 1;
+		if (v >= 2) {
+			cldu_hail_log.debug = true;
+			cldu_hail_log.verbose = true;
+		}
 		break;
 	case 'E':
 		use_syslog = false;
@@ -1736,9 +1748,7 @@ int main (int argc, char *argv[])
 	if (use_syslog)
 		openlog(PROGRAM_NAME, LOG_PID, LOG_LOCAL3);
 	if (debugging)
-		applog(LOG_INFO, "Verbose debug output enabled");
-
-	cldu_hail_log.verbose = debugging;
+		applog(LOG_INFO, "Debug output enabled");
 
 	g_thread_init(NULL);
 	chunkd_srv.bigmutex = g_mutex_new();
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.