[prev in list] [next in list] [prev in thread] [next in thread] 

List:       trousers-cvs
Subject:    [Trousers-scm] [GIT] Trousers master branch updated.
From:       "Rajiv Andrade" <phreakz () users ! sourceforge ! net>
Date:       2011-07-01 14:50:08
Message-ID: E1Qcf2y-0004A7-M2 () sfs-ml-3 ! v29 ! ch3 ! sourceforge ! com
[Download RAW message or body]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Trousers".

The branch, master has been updated
       via  4c8ecb654be842fc9cefbab0696b5aee042fe9cf (commit)
      from  c30070f20e205c18e7a6e4d109b786e06917970d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://trousers.git.sourceforge.net/git/gitweb.cgi?p=trousers/trousers;a=commitdiff;h=4c8ecb654be842fc9cefbab0696b5aee042fe9cf


commit 4c8ecb654be842fc9cefbab0696b5aee042fe9cf
Author: Stefan Berger <stefanb@linux.vnet.ibm.com>
Date:   Tue Jun 21 20:17:39 2011 -0400

    support for -c <configfile> command line option
    
    This patch adds support for a -c|--config <configfile> command line
    option that allows one to start the tcsd with a configuration file other
    than the default configuration file.
    
    - TCSD_CONFIG_FILE was renamed to TCSD_DEFAULT_CONFIG_FILE
    - tcsd_config_file now holds the filename of the config file
    - all occurrences of TCSD_CONFIG_FILE were replaced with
    tcsd_config_file
    - a '-c|--config <configfile>' command line option was introduced and
    the optarg is stored in tcsd_config_file; if no such option is use,
    TCSD_DEFAULT_CONFIG_FILE is stored into tcsd_config_file
    
    There was a problem with the handling of the 'h' option which I fixed
    also -- it now again displays the usage.
    
    Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
    Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>

diff --git a/man/man8/tcsd.8.in b/man/man8/tcsd.8.in
index 3941f6e..721538e 100644
--- a/man/man8/tcsd.8.in
+++ b/man/man8/tcsd.8.in
@@ -28,6 +28,7 @@ tcsd \- daemon that manages Trusted Computing resources
 .hy 0
 .B tcsd
 .RB [ \-f ]
+.RB [ \-c\ <configfile>\ ]
 
 .SH "DESCRIPTION"
 .PP
@@ -46,6 +47,10 @@ resources and handles requests from TSP's both local and remote.
 \fB\-f\fR
 run the daemon in the foreground
 
+.TP
+\fB\-c <configfile>\fR
+use the provided configuration file rather than the default configuration file
+
 .SH "ACCESS CONTROL"
 .PP
 There are two types of access control for the \fBtcsd\fR, access to the
diff --git a/src/include/tcsd.h b/src/include/tcsd.h
index 1f72e05..e5a8852 100644
--- a/src/include/tcsd.h
+++ b/src/include/tcsd.h
@@ -48,7 +48,8 @@ struct tcsd_config
 							of this TCS System */
 };
 
-#define TCSD_CONFIG_FILE	ETC_PREFIX "/tcsd.conf"
+#define TCSD_DEFAULT_CONFIG_FILE	ETC_PREFIX "/tcsd.conf"
+extern char *tcsd_config_file;
 
 #define TSS_USER_NAME		"tss"
 #define TSS_GROUP_NAME		"tss"
diff --git a/src/tcs/tcsi_evlog.c b/src/tcs/tcsi_evlog.c
index 355f30a..7d49600 100644
--- a/src/tcs/tcsi_evlog.c
+++ b/src/tcs/tcsi_evlog.c
@@ -85,7 +85,7 @@ TCS_GetExternalPcrEvent(UINT32 PcrIndex,		/* in */
 		} else {
 			LogError("No source for externel kernel events was compiled in, but "
 					"the tcsd is configured to use one! (see %s)",
-					TCSD_CONFIG_FILE);
+					tcsd_config_file);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		}
 	} else if (tcsd_options.firmware_pcrs & (1 << PcrIndex)) {
@@ -105,7 +105,7 @@ TCS_GetExternalPcrEvent(UINT32 PcrIndex,		/* in */
 		} else {
 			LogError("No source for externel firmware events was compiled in, but "
 					"the tcsd is configured to use one! (see %s)",
-					TCSD_CONFIG_FILE);
+					tcsd_config_file);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		}
 	} else {
@@ -200,7 +200,7 @@ TCS_GetExternalPcrEventsByPcr(UINT32 PcrIndex,		/* in */
 		} else {
 			LogError("No source for externel kernel events was compiled in, but "
 					"the tcsd is configured to use one! (see %s)",
-					TCSD_CONFIG_FILE);
+					tcsd_config_file);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		}
 	} else if (tcsd_options.firmware_pcrs & (1 << PcrIndex)) {
@@ -220,7 +220,7 @@ TCS_GetExternalPcrEventsByPcr(UINT32 PcrIndex,		/* in */
 		} else {
 			LogError("No source for externel firmware events was compiled in, but "
 					"the tcsd is configured to use one! (see %s)",
-					TCSD_CONFIG_FILE);
+					tcsd_config_file);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		}
 	} else {
diff --git a/src/tcsd/svrside.c b/src/tcsd/svrside.c
index 04cb9e5..441e730 100644
--- a/src/tcsd/svrside.c
+++ b/src/tcsd/svrside.c
@@ -44,6 +44,7 @@ struct tpm_properties tpm_metrics;
 static volatile int hup = 0, term = 0;
 extern char *optarg;
 int sd;
+char *tcsd_config_file;
 
 static void
 tcsd_shutdown(void)
@@ -189,10 +190,11 @@ tcsd_startup(void)
 void
 usage(void)
 {
-	fprintf(stderr, "\tusage: tcsd [-f] [-h]\n\n");
+	fprintf(stderr, "\tusage: tcsd [-f] [-e] [-c <config file> [-h]\n\n");
 	fprintf(stderr, "\t-f|--foreground\trun in the foreground. Logging goes to stderr "
 			"instead of syslog.\n");
-	fprintf(stderr, "\t-e| attempts to connect to software TPMs over TCP");
+	fprintf(stderr, "\t-e| attempts to connect to software TPMs over TCP\n");
+	fprintf(stderr, "\t-c|--config\tpath to configuration file\n");
 	fprintf(stderr, "\t-h|--help\tdisplay this help message\n");
 	fprintf(stderr, "\n");
 }
@@ -223,20 +225,24 @@ main(int argc, char **argv)
 	struct option long_options[] = {
 		{"help", 0, NULL, 'h'},
 		{"foreground", 0, NULL, 'f'},
+		{"config", 1, NULL, 'c'},
 		{0, 0, 0, 0}
 	};
 
 	unsetenv("TCSD_USE_TCP_DEVICE");
-	while ((c = getopt_long(argc, argv, "fhe", long_options, &option_index)) != -1) {
+	while ((c = getopt_long(argc, argv, "fhec:", long_options, &option_index)) != -1) {
 		switch (c) {
 			case 'f':
 				setenv("TCSD_FOREGROUND", "1", 1);
 				break;
-			case 'h':
-				/* fall through */
+			case 'c':
+				tcsd_config_file = optarg;
+				break;
 			case 'e':
 				setenv("TCSD_USE_TCP_DEVICE", "1", 1);
 				break;
+			case 'h':
+				/* fall through */
 			default:
 				usage();
 				return -1;
@@ -244,6 +250,9 @@ main(int argc, char **argv)
 		}
 	}
 
+	if (!tcsd_config_file)
+		tcsd_config_file = TCSD_DEFAULT_CONFIG_FILE;
+
 	if ((result = tcsd_startup()))
 		return (int)result;
 
diff --git a/src/tcsd/tcsd_conf.c b/src/tcsd/tcsd_conf.c
index fbb6d1a..afc1dcb 100644
--- a/src/tcsd/tcsd_conf.c
+++ b/src/tcsd/tcsd_conf.c
@@ -286,7 +286,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 		tmp_int = atoi(arg);
 		if (tmp_int < 0 || tmp_int > 65535) {
 			LogError("Config option \"port\" out of range. %s:%d: \"%d\"",
-					TCSD_CONFIG_FILE, line_num, tmp_int);
+					tcsd_config_file, line_num, tmp_int);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		} else {
 			conf->port = tmp_int;
@@ -297,7 +297,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 		tmp_int = atoi(arg);
 		if (tmp_int <= 0) {
 			LogError("Config option \"num_threads\" out of range. %s:%d: \"%d\"",
-					TCSD_CONFIG_FILE, line_num, tmp_int);
+					tcsd_config_file, line_num, tmp_int);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		} else {
 			conf->num_threads = tmp_int;
@@ -319,7 +319,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 					conf->firmware_pcrs |= (1 << tmp_int);
 				else
 					LogError("Config option \"firmware_pcrs\" is out of range."
-						 "%s:%d: \"%d\"", TCSD_CONFIG_FILE, line_num,
+						 "%s:%d: \"%d\"", tcsd_config_file, line_num,
 						 tmp_int);
 				break;
 			}
@@ -330,7 +330,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 				conf->firmware_pcrs |= (1 << tmp_int);
 			else
 				LogError("Config option \"firmware_pcrs\" is out of range. "
-					 "%s:%d: \"%d\"", TCSD_CONFIG_FILE, line_num, tmp_int);
+					 "%s:%d: \"%d\"", tcsd_config_file, line_num, tmp_int);
 		}
 		break;
 	case opt_kernel_pcrs:
@@ -348,7 +348,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 					conf->kernel_pcrs |= (1 << tmp_int);
 				else
 					LogError("Config option \"kernel_pcrs\" is out of range. "
-						 "%s:%d: \"%d\"", TCSD_CONFIG_FILE, line_num,
+						 "%s:%d: \"%d\"", tcsd_config_file, line_num,
 						 tmp_int);
 				break;
 			}
@@ -359,24 +359,24 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  conf->kernel_pcrs |= (1 << tmp_int);
 			else
 				LogError("Config option \"kernel_pcrs\" is out of range. "
-					 "%s:%d: \"%d\"", TCSD_CONFIG_FILE, line_num, tmp_int);
+					 "%s:%d: \"%d\"", tcsd_config_file, line_num, tmp_int);
 		}
 		break;
 	case opt_system_ps_file:
 		if (*arg != '/') {
 			LogError("Config option \"system_ps_dir\" must be an absolute path name. "
-				 "%s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+				 "%s:%d: \"%s\"", tcsd_config_file, line_num, arg);
 		} else {
 			char *dir_ptr;
 			int rc;
 
 			if ((rc = get_file_path(arg, &tmp_ptr)) < 0) {
 				LogError("Config option \"system_ps_file\" is invalid."
-					 " %s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+					 " %s:%d: \"%s\"", tcsd_config_file, line_num, arg);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			} else if (rc > 0) {
 				LogError("Config option \"system_ps_file\" is invalid. %s:%d:"
-					 " \"%s\"", TCSD_CONFIG_FILE, line_num, tmp_ptr);
+					 " \"%s\"", tcsd_config_file, line_num, tmp_ptr);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			}
 			if (tmp_ptr == NULL)
@@ -408,17 +408,17 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  case opt_kernel_log:
 		if (*arg != '/') {
 			LogError("Config option \"kernel_log\" must be an absolute path name."
-				 " %s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+				 " %s:%d: \"%s\"", tcsd_config_file, line_num, arg);
 		} else {
 			int rc;
 
 			if ((rc = get_file_path(arg, &tmp_ptr)) < 0) {
 				LogError("Config option \"kernel_log\" is invalid. %s:%d: \"%s\"",
-					 TCSD_CONFIG_FILE, line_num, arg);
+					 tcsd_config_file, line_num, arg);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			} else if (rc > 0) {
 				LogError("Config option \"kernel_log\" is invalid. %s:%d: \"%s\"",
-					 TCSD_CONFIG_FILE, line_num, tmp_ptr);
+					 tcsd_config_file, line_num, tmp_ptr);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			}
 			if (tmp_ptr == NULL)
@@ -434,17 +434,17 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  case opt_firmware_log:
 		if (*arg != '/') {
 			LogError("Config option \"firmware_log\" must be an absolute path name."
-				 " %s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+				 " %s:%d: \"%s\"", tcsd_config_file, line_num, arg);
 		} else {
 			int rc;
 
 			if ((rc = get_file_path(arg, &tmp_ptr)) < 0) {
 				LogError("Config option \"firmware_log\" is invalid. %s:%d: \"%s\"",
-					 TCSD_CONFIG_FILE, line_num, arg);
+					 tcsd_config_file, line_num, arg);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			} else if (rc > 0) {
 				LogError("Config option \"firmware_log\" is invalid. %s:%d: \"%s\"",
-					 TCSD_CONFIG_FILE, line_num, tmp_ptr);
+					 tcsd_config_file, line_num, tmp_ptr);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			}
 			if (tmp_ptr == NULL)
@@ -460,17 +460,17 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  case opt_platform_cred:
 		if (*arg != '/') {
 			LogError("Config option \"platform_cred\" must be an absolute path name. "
-                                 "%s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+                                 "%s:%d: \"%s\"", tcsd_config_file, line_num, arg);
 		} else {
 			int rc;
 
 			if ((rc = get_file_path(arg, &tmp_ptr)) < 0) {
 				LogError("Config option \"platform_cred\" is invalid. %s:%d: "
-                                         "\"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+                                         "\"%s\"", tcsd_config_file, line_num, arg);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			} else if (rc > 0) {
 				LogError("Config option \"platform_cred\" is invalid. %s:%d: "
-                                         "\"%s\"", TCSD_CONFIG_FILE, line_num, \
tmp_ptr); +                                         "\"%s\"", tcsd_config_file, \
line_num, tmp_ptr);  return TCSERR(TSS_E_INTERNAL_ERROR);
 			}
 			if (tmp_ptr == NULL)
@@ -486,17 +486,17 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  case opt_conformance_cred:
 		if (*arg != '/') {
 			LogError("Config option \"conformance_cred\" must be an absolute path name."
-                                 " %s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+                                 " %s:%d: \"%s\"", tcsd_config_file, line_num, arg);
 		} else {
 			int rc;
 
 			if ((rc = get_file_path(arg, &tmp_ptr)) < 0) {
 				LogError("Config option \"conformance_cred\" is invalid. %s:%d: "
-                                         "\"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+                                         "\"%s\"", tcsd_config_file, line_num, arg);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			} else if (rc > 0) {
 				LogError("Config option \"conformance_cred\" is invalid. %s:%d: "
-                                         "\"%s\"", TCSD_CONFIG_FILE, line_num, \
tmp_ptr); +                                         "\"%s\"", tcsd_config_file, \
line_num, tmp_ptr);  return TCSERR(TSS_E_INTERNAL_ERROR);
 			}
 			if (tmp_ptr == NULL)
@@ -512,17 +512,17 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  case opt_endorsement_cred:
 		if (*arg != '/') {
 			LogError("Config option \"endorsement_cred\" must be an absolute path name."
-                                 " %s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+                                 " %s:%d: \"%s\"", tcsd_config_file, line_num, arg);
 		} else {
 			int rc;
 
 			if ((rc = get_file_path(arg, &tmp_ptr)) < 0) {
 				LogError("Config option \"endorsement_cred\" is invalid. %s:%d: "
-                                         "\"%s\"", TCSD_CONFIG_FILE, line_num, arg);
+                                         "\"%s\"", tcsd_config_file, line_num, arg);
 				return TCSERR(TSS_E_INTERNAL_ERROR);
 			} else if (rc > 0) {
 				LogError("Config option \"endorsement_cred\" is invalid. %s:%d: "
-                                         "\"%s\"", TCSD_CONFIG_FILE, line_num, \
tmp_ptr); +                                         "\"%s\"", tcsd_config_file, \
line_num, tmp_ptr);  return TCSERR(TSS_E_INTERNAL_ERROR);
 			}
 			if (tmp_ptr == NULL)
@@ -548,7 +548,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 				if (comma != NULL) {
 					if (tcsd_set_remote_op(conf, comma)) {
 						LogError("Config option \"remote_ops\" is invalid. "
-							 "%s:%d: \"%s\"", TCSD_CONFIG_FILE,
+							 "%s:%d: \"%s\"", tcsd_config_file,
 							 line_num, comma);
 					}
 				}
@@ -558,7 +558,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 			*comma++ = '\0';
 			if (tcsd_set_remote_op(conf, comma)) {
 				LogError("Config option \"remote_ops\" is invalid. "
-					 "%s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, comma);
+					 "%s:%d: \"%s\"", tcsd_config_file, line_num, comma);
 			}
 		}
 		break;
@@ -566,7 +566,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 		tmp_int = atoi(arg);
 		if (tmp_int < 0 || tmp_int > 1) {
 			LogError("Config option \"enforce_exclusive_transport\" out of range."
-				 " %s:%d: \"%d\"", TCSD_CONFIG_FILE, line_num, tmp_int);
+				 " %s:%d: \"%d\"", tcsd_config_file, line_num, tmp_int);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		} else {
 			conf->exclusive_transport = tmp_int;
@@ -583,14 +583,14 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  /* At least one comma: error - more than one host class defined */
 		if (comma != NULL) {
 			LogError("Config option \"host_platform_class\" error: more than one "
-				 "defined. %s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, comma);
+				 "defined. %s:%d: \"%s\"", tcsd_config_file, line_num, comma);
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		} else {
 			comma = arg;
 			/* Add the platform class on the list */
 			if ((result = platform_class_list_append(conf, comma, TRUE))){
 				LogError("Config option \"host_platform_class\" invalid. "
-					 "%s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, comma);
+					 "%s:%d: \"%s\"", tcsd_config_file, line_num, comma);
 				return result;
 			}
 		}
@@ -610,7 +610,7 @@ read_conf_line(char *buf, int line_num, struct tcsd_config *conf)
 					if ((result = platform_class_list_append(conf, comma,
 										 FALSE))) {
 						LogError("Config option \"all_platform_class\" "
-							 "invalid. %s:%d: \"%s\"", TCSD_CONFIG_FILE,
+							 "invalid. %s:%d: \"%s\"", tcsd_config_file,
 							 line_num, comma);
 						return result;
 					}
@@ -621,14 +621,14 @@ read_conf_line(char *buf, int line_num, struct tcsd_config \
*conf)  /* Add the platform class on the list */
 			if ((result = platform_class_list_append(conf, comma, FALSE))) {
 				LogError("Config option \"all_platform_class\" invalid. "
-					 "%s:%d: \"%s\"", TCSD_CONFIG_FILE, line_num, comma);
+					 "%s:%d: \"%s\"", tcsd_config_file, line_num, comma);
 				return result;
 			}
 		}
 		break;
 	default:
 		/* bail out on any unknown option */
-		LogError("Unknown config option %s:%d \"%s\"!", TCSD_CONFIG_FILE, line_num, arg);
+		LogError("Unknown config option %s:%d \"%s\"!", tcsd_config_file, line_num, arg);
 		return TCSERR(TSS_E_INTERNAL_ERROR);
 	}
 
@@ -724,14 +724,14 @@ conf_file_init(struct tcsd_config *conf)
 	*/
 #endif
 	/* look for a config file, create if it doesn't exist */
-	if (stat(TCSD_CONFIG_FILE, &stat_buf) == -1) {
+	if (stat(tcsd_config_file, &stat_buf) == -1) {
 		if (errno == ENOENT) {
 			/* no config file? use defaults */
 			config_set_defaults(conf);
-			LogInfo("Config file %s not found, using defaults.", TCSD_CONFIG_FILE);
+			LogInfo("Config file %s not found, using defaults.", tcsd_config_file);
 			return TSS_SUCCESS;
 		} else {
-			LogError("stat(%s): %s", TCSD_CONFIG_FILE, strerror(errno));
+			LogError("stat(%s): %s", tcsd_config_file, strerror(errno));
 			return TCSERR(TSS_E_INTERNAL_ERROR);
 		}
 	}
@@ -764,20 +764,20 @@ conf_file_init(struct tcsd_config *conf)
 
 	/* make sure user/group TSS owns the conf file */
 	if (pw->pw_uid != stat_buf.st_uid || grp->gr_gid != stat_buf.st_gid) {
-		LogError("TCSD config file (%s) must be user/group %s/%s", TCSD_CONFIG_FILE,
+		LogError("TCSD config file (%s) must be user/group %s/%s", tcsd_config_file,
 				TSS_USER_NAME, TSS_GROUP_NAME);
 		return TCSERR(TSS_E_INTERNAL_ERROR);
 	}
 
 	/* make sure only the tss user can manipulate the config file */
 	if (((stat_buf.st_mode & 0777) ^ mode) != 0) {
-		LogError("TCSD config file (%s) must be mode 0600", TCSD_CONFIG_FILE);
+		LogError("TCSD config file (%s) must be mode 0600", tcsd_config_file);
 		return TCSERR(TSS_E_INTERNAL_ERROR);
 	}
 #endif /* SOLARIS */
 
-	if ((f = fopen(TCSD_CONFIG_FILE, "r")) == NULL) {
-		LogError("fopen(%s): %s", TCSD_CONFIG_FILE, strerror(errno));
+	if ((f = fopen(tcsd_config_file, "r")) == NULL) {
+		LogError("fopen(%s): %s", tcsd_config_file, strerror(errno));
 		return TCSERR(TSS_E_INTERNAL_ERROR);
 	}
 

-----------------------------------------------------------------------

Summary of changes:
 man/man8/tcsd.8.in   |    5 +++
 src/include/tcsd.h   |    3 +-
 src/tcs/tcsi_evlog.c |    8 ++--
 src/tcsd/svrside.c   |   19 +++++++++---
 src/tcsd/tcsd_conf.c |   78 +++++++++++++++++++++++++-------------------------
 5 files changed, 64 insertions(+), 49 deletions(-)


hooks/post-receive
-- 
Trousers

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Trousers-cvs mailing list
Trousers-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/trousers-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic