The commit 9ea90be39e9d (sheep: use rbtree to manage struct sd_node) changes struct sd_node. So the master branch isn't compatible with v0.7.x because it affects the format of GET_NODE_LIST's returned buffer. Every dog command which has a flag CMD_NEED_NODELIST cannot work (users see nodes have IPv6 addresses). The affection is very serious so I propose either of the below two changes: 1. change protocol version and forbid communication between 0.7.x dog and the latest sheep 2. change struct sd_node and exclude struct rb_node rb; from the members I think 2 would be a better option. sd_node is a data structure which can be exchanged via network and such a data structure shouldn't have pointers as its members. Current sd_node is really ugly. I'd like to hear other developers' opinions. Thanks, Hitoshi |