[Openais] [PATCH 1/3] Fix the ttl defaults and range
Russell Bryant
russell at russellbryant.net
Mon Mar 14 18:53:07 PDT 2011
On Mon, Mar 14, 2011 at 6:44 PM, Angus Salkeld <asalkeld at redhat.com> wrote:
> 1) both IPv4 and IPv6 mcast should default to ttl=1
> 2) the range should be 0..255
> 0 is valid meaning localhost only (cluster of one)
>
> Signed-off-by: Angus Salkeld <asalkeld at redhat.com>
> ---
> exec/totemconfig.c | 10 +++-------
> man/corosync.conf.5 | 2 +-
> 2 files changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/exec/totemconfig.c b/exec/totemconfig.c
> index 6bb4894..7039ba0 100644
> --- a/exec/totemconfig.c
> +++ b/exec/totemconfig.c
> @@ -394,11 +394,7 @@ printf ("couldn't find totem handle\n");
> /*
> * Get the TTL
> */
> - if (totem_config->interfaces[ringnumber].mcast_addr.family == AF_INET6) {
> - totem_config->interfaces[ringnumber].ttl = 255;
> - } else {
> - totem_config->interfaces[ringnumber].ttl = 1;
> - }
> + totem_config->interfaces[ringnumber].ttl = 1;
> if (!objdb_get_string (objdb, object_interface_handle, "ttl", &str)) {
> totem_config->interfaces[ringnumber].ttl = atoi (str);
> }
Not changed code, but another nice change would be to use sscanf()
here. Something like:
if (!objdb_get_string (objdb, object_interface_handle, "ttl", &str)) {
if (sscanf(str, "%hu",
&totem_config->interfaces[ringnumber].ttl) != 1) {
/* str not valid input for a ttl */
}
}
> @@ -477,8 +473,8 @@ int totem_config_validate (
> goto parse_error;
> }
>
> - if (totem_config->interfaces[i].ttl > 255 || totem_config->interfaces[i].ttl < 1) {
> - error_reason = "Invalid TTL (should be 1..255)";
> + if (totem_config->interfaces[i].ttl > 255 || totem_config->interfaces[i].ttl < 0) {
> + error_reason = "Invalid TTL (should be 0..255)";
> goto parse_error;
> }
>
It will never be < 0, since it's unsigned. It's also 16-bit. I guess
you could change it to unsigned 8 bit and make it so you don't need
this check at all (unless it's 16-bit for a valid reason elsewhere).
> diff --git a/man/corosync.conf.5 b/man/corosync.conf.5
> index d69cf89..eaf58c4 100644
> --- a/man/corosync.conf.5
> +++ b/man/corosync.conf.5
> @@ -131,7 +131,7 @@ please configure the mcastports with a gap.
> ttl
> This specifies the Time To Live (TTL). If you run your cluster on a routed
> network then the default of "1" will be too small. This option provides
> -a way to increase this up to 255.
> +a way to increase this up to 255. The valid range is 0..255.
>
> .TP
> member
> --
> 1.7.4.1
>
> _______________________________________________
> Openais mailing list
> Openais at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/openais
>
More information about the Openais
mailing list