[PATCH] Remove duplicate protocol definitions

Amitay Isaacs amitay at gmail.com
Mon Nov 2 04:37:38 UTC 2015


Hi,

Recently I introduced a new protocol/ sub-directory in CTDB that abstracts
all the protocol structures and marshaling routines.  The new
protocol/protocol.h defines the existing CTDB protocol elements.  This is
essentially duplicates many of the structures defined in ctdb_protocol.h.

Here is a patch-set that gets rid of duplicate structure definitions.  In
order to do that, all the existing structures in ctdb_protocol.h are
renamed to their new counterpart in protocol/protocol.h.


https://git.samba.org/?p=amitay/samba.git;a=shortlog;h=refs/heads/ctdb-protocol

  (Patchset is large and therefore not attached.)

There are two cases where a structure from ctdb_protocol.h does not match
the corresponding new definition from protocol/protocol.h.

1. The top level protocol structures (e.g. ctdb_req_call) in
ctdb_protocol.h include the protocol header element.  Even though this
makes the code easier, it creates structures with overlapping protocol
elements.

2. Many of the control protocol structures include array elements.  The
corresponding structure definitions in ctdb_protocol.h represent this array
elements as they would appear on the wire.  This makes the coding
error-prone (requiring the use of offsetof() to correctly calculate
structure sizes).  The new definitions clearly mark those array elements as
such and do not force the wire format.

Both these types of structures are suffixed with "_old" to indicate
remnants of old protocol implementation.

Review/comments and push appreciated.

Amitay.


More information about the samba-technical mailing list