Rev 71: added a magic header for wireshark and packet version info in http://samba.org/~tridge/ctdb

tridge at samba.org tridge at samba.org
Fri Apr 6 04:41:06 GMT 2007


------------------------------------------------------------
revno: 71
revision-id: tridge at samba.org-20070406044105-4dcf971d05626846
parent: tridge at samba.org-20070405234645-d4e331dc0077c3ed
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Fri 2007-04-06 14:41:05 +1000
message:
  added a magic header for wireshark and packet version info
modified:
  common/ctdb.c                  ctdb.c-20061127094323-t50f58d65iaao5of-2
  common/ctdb_call.c             ctdb_call.c-20061128065342-to93h6eejj5kon81-1
  common/ctdb_message.c          ctdb_message.c-20070208224107-9dnio7x7z33prrmt-1
  include/ctdb_private.h         ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13
=== modified file 'common/ctdb.c'
--- a/common/ctdb.c	2007-04-03 09:41:00 +0000
+++ b/common/ctdb.c	2007-04-06 04:41:05 +0000
@@ -205,6 +205,16 @@
 		return;
 	}
 
+	if (hdr->ctdb_magic != CTDB_MAGIC) {
+		ctdb_set_error(ctdb, "Non CTDB packet rejected\n");
+		return;
+	}
+
+	if (hdr->ctdb_version != CTDB_VERSION) {
+		ctdb_set_error(ctdb, "Bad CTDB version 0x%x rejected\n", hdr->ctdb_version);
+		return;
+	}
+
 	switch (hdr->operation) {
 	case CTDB_REQ_CALL:
 		ctdb_request_call(ctdb, hdr);

=== modified file 'common/ctdb_call.c'
--- a/common/ctdb_call.c	2007-04-05 03:18:31 +0000
+++ b/common/ctdb_call.c	2007-04-06 04:41:05 +0000
@@ -125,6 +125,8 @@
 	CTDB_NO_MEMORY_FATAL(ctdb, r);
 
 	r->hdr.length    = len + msglen;
+	r->hdr.ctdb_magic = CTDB_MAGIC;
+	r->hdr.ctdb_version = CTDB_VERSION;
 	r->hdr.operation = CTDB_REPLY_ERROR;
 	r->hdr.destnode  = hdr->srcnode;
 	r->hdr.srcnode   = ctdb->vnn;
@@ -153,6 +155,8 @@
 	r = ctdb->methods->allocate_pkt(ctdb, sizeof(*r));
 	CTDB_NO_MEMORY_FATAL(ctdb, r);
 	r->hdr.length = sizeof(*r);
+	r->hdr.ctdb_magic = CTDB_MAGIC;
+	r->hdr.ctdb_version = CTDB_VERSION;
 	r->hdr.operation = CTDB_REPLY_REDIRECT;
 	r->hdr.destnode  = c->hdr.srcnode;
 	r->hdr.srcnode   = ctdb->vnn;
@@ -184,6 +188,8 @@
 	r = ctdb->methods->allocate_pkt(ctdb, len);
 	CTDB_NO_MEMORY_FATAL(ctdb, r);
 	r->hdr.length    = len;
+	r->hdr.ctdb_magic = CTDB_MAGIC;
+	r->hdr.ctdb_version = CTDB_VERSION;
 	r->hdr.operation = CTDB_REQ_DMASTER;
 	r->hdr.destnode  = ctdb_lmaster(ctdb, key);
 	r->hdr.srcnode   = ctdb->vnn;
@@ -264,6 +270,8 @@
 	r = ctdb->methods->allocate_pkt(ctdb, len);
 	CTDB_NO_MEMORY_FATAL(ctdb, r);
 	r->hdr.length    = len;
+	r->hdr.ctdb_magic = CTDB_MAGIC;
+	r->hdr.ctdb_version = CTDB_VERSION;
 	r->hdr.operation = CTDB_REPLY_DMASTER;
 	r->hdr.destnode  = c->dmaster;
 	r->hdr.srcnode   = ctdb->vnn;
@@ -346,6 +354,8 @@
 	r = ctdb->methods->allocate_pkt(ctdb, len);
 	CTDB_NO_MEMORY_FATAL(ctdb, r);
 	r->hdr.length    = len;
+	r->hdr.ctdb_magic = CTDB_MAGIC;
+	r->hdr.ctdb_version = CTDB_VERSION;
 	r->hdr.operation = CTDB_REPLY_CALL;
 	r->hdr.destnode  = hdr->srcnode;
 	r->hdr.srcnode   = hdr->destnode;
@@ -576,6 +586,8 @@
 	CTDB_NO_MEMORY_NULL(ctdb, state->c);
 
 	state->c->hdr.length    = len;
+	state->c->hdr.ctdb_magic = CTDB_MAGIC;
+	state->c->hdr.ctdb_version = CTDB_VERSION;
 	state->c->hdr.operation = CTDB_REQ_CALL;
 	state->c->hdr.destnode  = header.dmaster;
 	state->c->hdr.srcnode   = ctdb->vnn;

=== modified file 'common/ctdb_message.c'
--- a/common/ctdb_message.c	2007-02-26 10:59:20 +0000
+++ b/common/ctdb_message.c	2007-04-06 04:41:05 +0000
@@ -65,6 +65,8 @@
 	CTDB_NO_MEMORY(ctdb, r);
 
 	r->hdr.length    = len;
+	r->hdr.ctdb_magic = CTDB_MAGIC;
+	r->hdr.ctdb_version = CTDB_VERSION;
 	r->hdr.operation = CTDB_REQ_MESSAGE;
 	r->hdr.destnode  = vnn;
 	r->hdr.srcnode   = ctdb->vnn;

=== modified file 'include/ctdb_private.h'
--- a/include/ctdb_private.h	2007-04-04 11:15:56 +0000
+++ b/include/ctdb_private.h	2007-04-06 04:41:05 +0000
@@ -155,11 +155,16 @@
 	CTDB_REQ_MESSAGE    = 6
 };
 
+#define CTDB_MAGIC 0x43544442 /* CTDB */
+#define CTDB_VERSION 1
+
 /*
   packet structures
 */
 struct ctdb_req_header {
 	uint32_t length;
+	uint32_t ctdb_magic;
+	uint32_t ctdb_version;
 	uint32_t operation;
 	uint32_t destnode;
 	uint32_t srcnode;



More information about the samba-cvs mailing list