[SCM] CTDB repository - branch master updated - ctdb-1.0.114-263-g6488651

Ronnie Sahlberg sahlberg at samba.org
Thu Aug 19 20:58:41 MDT 2010


The branch, master has been updated
       via  6488651aa7e105c57324f4a300760a010d098fbb (commit)
       via  96dd9f40f9464c3d9de98f1323568724a1e31dc9 (commit)
       via  5b985eb2cbbb92bf6ccfcacd633d793bcd4e3ec1 (commit)
       via  e41581347af5ef26d429d38ed48fa46244f0dbfc (commit)
      from  3afa5d945a56952a7f211af068d671945de960e5 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 client/ctdb_client.c |    5 +---
 tools/ctdb.c         |   56 +++++++++++++++++++++++++++++++++++++------------
 2 files changed, 43 insertions(+), 18 deletions(-)


Changeset truncated at 500 lines:

diff --git a/client/ctdb_client.c b/client/ctdb_client.c
index cf7779d..6215dc0 100644
--- a/client/ctdb_client.c
+++ b/client/ctdb_client.c
@@ -18,9 +18,6 @@
    along with this program; if not, see <http://www.gnu.org/licenses/>.
 */
 
-/* for talloc_append_string() */
-#define TALLOC_DEPRECATED 1
-
 #include "includes.h"
 #include "db_wrap.h"
 #include "lib/tdb/include/tdb.h"
@@ -3837,7 +3834,7 @@ int switch_from_server_to_client(struct ctdb_context *ctdb, const char *fmt, ...
 
 	/* Add extra information so we can identify this in the logs */
 	va_start(ap, fmt);
-	debug_extra = talloc_append_string(NULL, talloc_vasprintf(NULL, fmt, ap), ":");
+	debug_extra = talloc_strdup_append(talloc_vasprintf(NULL, fmt, ap), ":");
 	va_end(ap);
 
 	/* shutdown the transport */
diff --git a/tools/ctdb.c b/tools/ctdb.c
index 20b09b9..5ed964c 100644
--- a/tools/ctdb.c
+++ b/tools/ctdb.c
@@ -44,6 +44,7 @@ static struct {
 	int timelimit;
 	uint32_t pnn;
 	int machinereadable;
+	int verbose;
 	int maxruntime;
 } options;
 
@@ -1062,11 +1063,16 @@ static int control_get_tickles(struct ctdb_context *ctdb, int argc, const char *
 	struct ctdb_control_tcp_tickle_list *list;
 	ctdb_sock_addr addr;
 	int i, ret;
+	unsigned port = 0;
 
 	if (argc < 1) {
 		usage();
 	}
 
+	if (argc == 2) {
+		port = atoi(argv[1]);
+	}
+
 	if (parse_ip(argv[0], NULL, 0, &addr) == 0) {
 		DEBUG(DEBUG_ERR,("Wrongly formed ip address '%s'\n", argv[0]));
 		return -1;
@@ -1081,6 +1087,9 @@ static int control_get_tickles(struct ctdb_context *ctdb, int argc, const char *
 	if (options.machinereadable){
 		printf(":source ip:port:destination ip:port:\n");
 		for (i=0;i<list->tickles.num;i++) {
+			if (port && port != ntohs(list->tickles.connections[i].dst_addr.ip.sin_port)) {
+				continue;
+			}
 			printf(":%s:%u", ctdb_addr_to_str(&list->tickles.connections[i].src_addr), ntohs(list->tickles.connections[i].src_addr.ip.sin_port));
 			printf(":%s:%u:\n", ctdb_addr_to_str(&list->tickles.connections[i].dst_addr), ntohs(list->tickles.connections[i].dst_addr.ip.sin_port));
 		}
@@ -1088,6 +1097,9 @@ static int control_get_tickles(struct ctdb_context *ctdb, int argc, const char *
 		printf("Tickles for ip:%s\n", ctdb_addr_to_str(&list->addr));
 		printf("Num tickles:%u\n", list->tickles.num);
 		for (i=0;i<list->tickles.num;i++) {
+			if (port && port != ntohs(list->tickles.connections[i].dst_addr.ip.sin_port)) {
+				continue;
+			}
 			printf("SRC: %s:%u   ", ctdb_addr_to_str(&list->tickles.connections[i].src_addr), ntohs(list->tickles.connections[i].src_addr.ip.sin_port));
 			printf("DST: %s:%u\n", ctdb_addr_to_str(&list->tickles.connections[i].dst_addr), ntohs(list->tickles.connections[i].dst_addr.ip.sin_port));
 		}
@@ -1809,7 +1821,11 @@ static int control_ip(struct ctdb_context *ctdb, int argc, const char **argv)
 	}
 
 	if (options.machinereadable){
-		printf(":Public IP:Node:ActiveInterface:AvailableInterfaces:ConfiguredInterfaces:\n");
+		printf(":Public IP:Node:");
+		if (options.verbose){
+			printf("ActiveInterface:AvailableInterfaces:ConfiguredInterfaces:");
+		}
+		printf("\n");
 	} else {
 		if (options.pnn == CTDB_BROADCAST_ALL) {
 			printf("Public IPs on ALL nodes\n");
@@ -1869,19 +1885,29 @@ static int control_ip(struct ctdb_context *ctdb, int argc, const char **argv)
 		}
 
 		if (options.machinereadable){
-			printf(":%s:%d:%s:%s:%s:\n",
-			       ctdb_addr_to_str(&ips->ips[ips->num-i].addr),
-			       ips->ips[ips->num-i].pnn,
-			       aciface?aciface:"",
-			       avifaces?avifaces:"",
-			       cifaces?cifaces:"");
+			printf(":%s:%d:",
+				ctdb_addr_to_str(&ips->ips[ips->num-i].addr),
+				ips->ips[ips->num-i].pnn);
+			if (options.verbose){
+				printf("%s:%s:%s:",
+					aciface?aciface:"",
+					avifaces?avifaces:"",
+					cifaces?cifaces:"");
+			}
+			printf("\n");
 		} else {
-			printf("%s node[%d] active[%s] available[%s] configured[%s]\n",
-			       ctdb_addr_to_str(&ips->ips[ips->num-i].addr),
-			       ips->ips[ips->num-i].pnn,
-			       aciface?aciface:"",
-			       avifaces?avifaces:"",
-			       cifaces?cifaces:"");
+			if (options.verbose) {
+				printf("%s node[%d] active[%s] available[%s] configured[%s]\n",
+					ctdb_addr_to_str(&ips->ips[ips->num-i].addr),
+					ips->ips[ips->num-i].pnn,
+					aciface?aciface:"",
+					avifaces?avifaces:"",
+					cifaces?cifaces:"");
+			} else {
+				printf("%s %d\n",
+					ctdb_addr_to_str(&ips->ips[ips->num-i].addr),
+					ips->ips[ips->num-i].pnn);
+			}
 		}
 		talloc_free(info);
 	}
@@ -4467,7 +4493,7 @@ static const struct {
 	{ "killtcp",         kill_tcp,                  false,	false, "kill a tcp connection.", "<srcip:port> <dstip:port>" },
 	{ "gratiousarp",     control_gratious_arp,      false,	false, "send a gratious arp", "<ip> <interface>" },
 	{ "tickle",          tickle_tcp,                false,	false, "send a tcp tickle ack", "<srcip:port> <dstip:port>" },
-	{ "gettickles",      control_get_tickles,       false,	false, "get the list of tickles registered for this ip", "<ip>" },
+	{ "gettickles",      control_get_tickles,       false,	false, "get the list of tickles registered for this ip", "<ip> [<port>]" },
 	{ "addtickle",       control_add_tickle,        false,	false, "add a tickle for this ip", "<ip>:<port> <ip>:<port>" },
 
 	{ "deltickle",       control_del_tickle,        false,	false, "delete a tickle from this ip", "<ip>:<port> <ip>:<port>" },
@@ -4518,6 +4544,7 @@ static void usage(void)
 "Options:\n" \
 "   -n <node>          choose node number, or 'all' (defaults to local node)\n"
 "   -Y                 generate machinereadable output\n"
+"   -v                 generate verbose output\n"
 "   -t <timelimit>     set timelimit for control in seconds (default %u)\n", options.timelimit);
 	printf("Controls:\n");
 	for (i=0;i<ARRAY_SIZE(ctdb_commands);i++) {
@@ -4549,6 +4576,7 @@ int main(int argc, const char *argv[])
 		{ "timelimit", 't', POPT_ARG_INT, &options.timelimit, 0, "timelimit", "integer" },
 		{ "node",      'n', POPT_ARG_STRING, &nodestring, 0, "node", "integer|all" },
 		{ "machinereadable", 'Y', POPT_ARG_NONE, &options.machinereadable, 0, "enable machinereadable output", NULL },
+		{ "verbose",    'v', POPT_ARG_NONE, &options.verbose, 0, "enable verbose output", NULL },
 		{ "maxruntime", 'T', POPT_ARG_INT, &options.maxruntime, 0, "die if runtime exceeds this limit (in seconds)", "integer" },
 		POPT_TABLEEND
 	};


-- 
CTDB repository


More information about the samba-cvs mailing list