[tarantool-patches] Re: [PATCH 4/5] swim: allow to omit host in URI

Konstantin Osipov kostja at tarantool.org
Wed May 1 08:20:26 MSK 2019


* Vladislav Shpilevoy <v.shpilevoy at tarantool.org> [19/05/01 08:07]:
> Before the patch swim.cfg() was returning an error on an attempt
> to use URI like 'port', without a host. But it would be useful,
> easy, and short to allow that, and use '127.0.0.1' host by
> default. Compare:
> 
>     swim:cfg({uri = 1234})
>             vs
>     swim:cfg({uri = '127.0.0.1:1234'})
> 
> It is remarkable that box.cfg{listen} also allows to omit host.
> 
> Note, that use '0.0.0.0' (INADDR_ANY) is forbidden. Otherwise
> 
>     1) Different instances interacting with this one via not the
>        same interfaces would see different source IP addresses.
>        It would mess member tables;
> 
>     2) This instance would not be able to encode its IP address
>        in the meta section, because it has no a fixed IP. At the
>        same time omission of it and usage of UDP header source
>        address is not possible as well, because UDP header is not
>        encrypted and therefore is not safe to look at.
> 

Thank you for an elaborate description. Please squash the patch
with the previous one. I believe at least some of this extensive
comment belongs to the source code. The patch is OK to push after
adding a comment.

> Part of #3234
> ---
>  src/lib/swim/swim.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/lib/swim/swim.c b/src/lib/swim/swim.c
> index 22dfc3d2a..b2b4901b1 100644
> --- a/src/lib/swim/swim.c
> +++ b/src/lib/swim/swim.c
> @@ -1696,7 +1696,9 @@ swim_uri_to_addr(const char *uri, struct sockaddr_in *addr,
>  		return -1;
>  	}
>  	*addr = *((struct sockaddr_in *) &storage);
> -	if (addr->sin_addr.s_addr == 0) {
> +	if (is_host_empty) {
> +		addr->sin_addr.s_addr = htonl(INADDR_LOOPBACK);
> +	} else if (addr->sin_addr.s_addr == 0) {
>  		diag_set(IllegalParams, "%s INADDR_ANY is not supported",
>  			 prefix);
>  		return -1;
> -- 
> 2.20.1 (Apple Git-117)
> 

-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32




More information about the Tarantool-patches mailing list