OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/corosync?expand=0&rev=31
This commit is contained in:
parent
8dd545ceaa
commit
e2a4aef80d
@ -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).
|
Loading…
Reference in New Issue
Block a user