[tarantool-patches] Re: [PATCH 4/6] swim: wrap sio_strfaddr()

Konstantin Osipov kostja at tarantool.org
Wed Apr 24 19:40:39 MSK 2019


* Vladislav Shpilevoy <v.shpilevoy at tarantool.org> [19/04/24 18:50]:
> SIO provides a function sio_strfaddr() to obtain string
> representation of arbitrary struct sockaddr. And it uses
> singleton buffer to store results, because some of them can't
> fit into tt_static_buf() according to POSIX name limits.

This is minor, but I would make sio_strfaddr() use the same set of
buffers as provided by tt_static_buf() instead, with a static
assert that the buffer size is large enough.

> SWIM uses only AF_INET addresses, they are short enough to fit
> into tt_static_buf(). Also SWIM is going to call sio_strfaddr()
> on more than 1 address in a row in subsequent patches, and
> singleton buffer does not work here - each call will overwrite
> result of the previous. Besides, SWIM never uses struct sockaddr
> type. All these reasons are sufficient to wrap sio_strfaddr()
> with encapsulated cast to struct sockaddr *, and copying on
> tt_static_buf().
> 

-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov




More information about the Tarantool-patches mailing list