From e2a4aef80d1deda5bbbfdd4e12a25c8de4a5955f3c10457aea8bcddd37951e18 Mon Sep 17 00:00:00 2001 From: xia li Date: Wed, 24 Jul 2013 02:55:03 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/corosync?expand=0&rev=31 --- fix-nodeid-conflicting.patch | 71 ------------------------------------ 1 file changed, 71 deletions(-) delete mode 100644 fix-nodeid-conflicting.patch diff --git a/fix-nodeid-conflicting.patch b/fix-nodeid-conflicting.patch deleted file mode 100644 index ccc2747..0000000 --- a/fix-nodeid-conflicting.patch +++ /dev/null @@ -1,71 +0,0 @@ -Index: corosync-1.4.5/conf/corosync.conf.example -=================================================================== ---- corosync-1.4.5.orig/conf/corosync.conf.example -+++ corosync-1.4.5/conf/corosync.conf.example -@@ -41,7 +41,10 @@ totem { - max_messages: 20 - - # Limit generated nodeids to 31-bits (positive signed integers) -- clear_node_high_bit: yes -+ # you would set it to 'yes', the new option 'new' means wiping -+ # off the highest bit in network order to avoid possible nodeid -+ # conflicting. -+ clear_node_high_bit: new - - # secauth: Enable mutual node authentication. If you choose to - # enable this ("on"), then do remember to create a shared -Index: corosync-1.4.5/exec/totemconfig.c -=================================================================== ---- corosync-1.4.5.orig/exec/totemconfig.c -+++ corosync-1.4.5/exec/totemconfig.c -@@ -338,6 +338,9 @@ printf ("couldn't find totem handle\n"); - if (strcmp (str, "yes") == 0) { - totem_config->clear_node_high_bit = 1; - } -+ if (strcmp (str, "new") == 0) { -+ totem_config->clear_node_high_bit = 2; -+ } - } - - objdb_get_int (objdb,object_totem_handle, "threads", &totem_config->threads); -Index: corosync-1.4.5/exec/totemip.c -=================================================================== ---- corosync-1.4.5.orig/exec/totemip.c -+++ corosync-1.4.5/exec/totemip.c -@@ -626,10 +626,20 @@ int totemip_iface_check(struct totem_ip_ - */ - if (ipaddr.family == AF_INET && ipaddr.nodeid == 0) { - unsigned int nodeid = 0; -+ unsigned int new_nodeid = 0; - memcpy (&nodeid, ipaddr.addr, sizeof (int)); -- if (mask_high_bit) { -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+ new_nodeid = swab32 (nodeid); -+#else -+ new_nodeid = nodeid; -+#endif -+ if (mask_high_bit == 1) { - nodeid &= 0x7FFFFFFF; - } -+ if (mask_high_bit == 2) { -+ new_nodeid &= 0x7FFFFFFF; -+ nodeid = new_nodeid; -+ } - ipaddr.nodeid = nodeid; - } - totemip_copy (boundto, &ipaddr); -Index: corosync-1.4.5/man/corosync.conf.5 -=================================================================== ---- corosync-1.4.5.orig/man/corosync.conf.5 -+++ corosync-1.4.5/man/corosync.conf.5 -@@ -175,7 +175,9 @@ This configuration option is optional an - specified. Some openais clients require a signed 32 bit nodeid that is greater - than zero however by default openais uses all 32 bits of the IPv4 address space - when generating a nodeid. Set this option to yes to force the high bit to be --zero and therefor ensure the nodeid is a positive signed 32 bit integer. -+zero and therefor ensure the nodeid is a positive signed 32 bit integer. Set -+this option to new to force the high bit in network order to be zero which -+intends to avoid possible nodeid conflicting. - - WARNING: The clusters behavior is undefined if this option is enabled on only - a subset of the cluster (for example during a rolling upgrade).