Top posting warning.
The patch looks good to me. It doesn't break backward compatibility that
was the main blocker and gives enough flexibility for users.
+1
Fabio
On Wed, 1 Oct 2008, Andrew Beekhof wrote:
> And another that handles clear_node_high_bit as a yes/no value instead
> of an integer.
>
> --- whitetank-svn/exec/totem.h 2008-08-13 22:38:15.000000000 +0200
> +++ whitetank-dev/exec/totem.h 2008-10-01 10:35:18.000000000 +0200
> @@ -89,6 +89,7 @@ struct totem_config {
> struct totem_interface *interfaces;
> int interface_count;
> unsigned int node_id;
> + unsigned int clear_node_high_bit;
>
> /*
> * key information
> --- whitetank-svn/exec/totemconfig.c 2008-08-13 22:38:15.000000000 +0200
> +++ whitetank-dev/exec/totemconfig.c 2008-10-01 11:35:42.000000000 +0200
> @@ -174,6 +171,13 @@ extern int totem_config_read (
> */
> objdb_get_int (objdb, object_totem_handle, "nodeid",
> &totem_config->node_id);
>
> + totem_config->clear_node_high_bit = 0;
> + if (!objdb_get_string (objdb,object_service_handle,
> "clear_node_high_bit", &str)) {
> + if (strcmp (str, "yes") == 0) {
> + totem_config->clear_node_high_bit = 1;
> + }
> + }
> +
> objdb_get_int (objdb,object_totem_handle, "threads",
> &totem_config->threads);
>
>
> --- whitetank-svn/exec/totemnet.c 2008-08-13 22:38:15.000000000 +0200
> +++ whitetank-dev/exec/totemnet.c 2008-10-01 10:35:44.000000000 +0200
> @@ -1227,6 +1227,15 @@ int totemnet_initialize (
>
> instance->totemnet_poll_handle = poll_handle;
>
> + if(instance->totem_config->node_id == 0) {
> + int32_t nodeid = 0;
> + memcpy (&nodeid, instance->totem_interface->bindnet.addr,
> sizeof (int32_t));
> + if(nodeid < 0 && instance->totem_config->clear_node_high_bit) {
> + nodeid = 0 - nodeid;
> + }
> + instance->totem_config->node_id = nodeid;
> + }
> +
> instance->totem_interface->bindnet.nodeid =
> instance->totem_config->node_id;
>
> instance->context = context;
> --- whitetank-svn/man/openais.conf.5 2008-08-13 22:38:16.000000000 +0200
> +++ whitetank-dev/man/openais.conf.5 2008-10-01 11:08:53.000000000 +0200
> @@ -135,6 +135,17 @@ is bound with ring identifier of 0. The
> reserved and should not be used.
>
> .TP
> +clear_node_high_bit
> +This configuration option is optional and is only relevant when no nodeid is
> +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.
> +
> +WARNING: The clusters behavior is undefined if this option is enabled on only
> +a subset of the cluster (for example during a rolling upgrade).
> +
> +.TP
> secauth
> This specifies that HMAC/SHA1 authentication should be used to authenticate
> all messages. It further specifies that all data should be encrypted with the
> _______________________________________________
> Openais mailing list
> [email protected]
> https://lists.linux-foundation.org/mailman/listinfo/openais
>
--
I'm going to make him an offer he can't refuse.
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais