From: Alexander Turenko <alexander.turenko@tarantool.org> To: Roman Khabibov <roman.habibov@tarantool.org> Cc: tarantool-patches@freelists.org, tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [server-dev] Re: [tarantool-patches] Re: [PATCH v2 1/2] lua: return getaddrinfo() errors Date: Fri, 1 Nov 2019 17:39:29 +0300 [thread overview] Message-ID: <20191101143929.7gv53nqgscwpbayv@tkn_work_nb> (raw) In-Reply-To: <B41EFCAB-E555-489B-B2E7-A11D65502D67@tarantool.org> > commit 9810ccd869183de068939cdce5a157ad35916d36 > Author: Roman Khabibov <roman.habibov@tarantool.org> > Date: Tue Jul 30 15:49:13 2019 +0300 > > lua: return getaddrinfo() errors > > Add getaddrinfo() errors into the several fuctions of socket. Now > getaddrinfo() can return a pair of values (nil and error message) > in case of error. > > Closes #4138 > > @TarantoolBot document > Title: socket_object:connect `socket_object:connect` is not valid Lua syntax. It is better to write it as socket_object:connect() or socket_object.connect. net.box API also was changed. > > Connect to a remote host using tcp_connect() within. If it is no > error, return a socket object. It is hard to understood w/o a context. Please, either describe API changes formally or give an example that will show the API change. > diff --git a/src/lua/socket.lua b/src/lua/socket.lua > index a334ad45b..e4815adbb 100644 > --- a/src/lua/socket.lua > +++ b/src/lua/socket.lua > @@ -1041,9 +1041,12 @@ local function tcp_connect(host, port, timeout) > end > local timeout = timeout or TIMEOUT_INFINITY > local stop = fiber.clock() + timeout > - local dns = getaddrinfo(host, port, timeout, { type = 'SOCK_STREAM', > + local dns, err = getaddrinfo(host, port, timeout, { type = 'SOCK_STREAM', > protocol = 'tcp' }) > - if dns == nil or #dns == 0 then > + if dns == nil then > + return nil, err > + end > + if #dns == 0 then > boxerrno(boxerrno.EINVAL) > return nil > end Cited to link from below. > @@ -1360,9 +1363,16 @@ local function lsocket_tcp_connect(self, host, port) > -- This function is broken by design > local ga_opts = { family = 'AF_INET', type = 'SOCK_STREAM' } > local timeout = deadline - fiber.clock() > - local dns = getaddrinfo(host, port, timeout, ga_opts) > + local dns, err = getaddrinfo(host, port, timeout, ga_opts) > if dns == nil or #dns == 0 then > - self._errno = boxerrno.EINVAL > + return nil, err > + end > + if dns == nil then > + boxerrno(self._errno) > + return nil, err > + end > + if #dns == 0 then > + boxerrno(self._errno) > return nil, socket_error(self) > end We'll never reach the last two if's bodies. However the similar fragment above in tcp_connect() was changed in the right way.
next prev parent reply other threads:[~2019-11-01 14:39 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-15 16:58 [tarantool-patches] [PATCH] " Roman Khabibov 2019-06-23 20:31 ` [tarantool-patches] " Alexander Turenko 2019-06-25 13:38 ` [tarantool-patches] Re: [PATCH v2 1/2] " Roman Khabibov 2019-07-09 8:04 ` Alexander Turenko 2019-07-10 2:16 ` Roman Khabibov 2019-07-23 12:39 ` Alexander Turenko 2019-07-26 13:48 ` Alexander Turenko 2019-08-05 13:36 ` Roman Khabibov 2019-08-29 0:45 ` Alexander Turenko [not found] ` <868EAF2C-A491-46C9-AD37-7512D6CAB213@tarantool.org> 2019-09-06 13:45 ` [tarantool-patches] Re: [server-dev] " Alexander Turenko 2019-09-10 12:54 ` Roman Khabibov 2019-11-01 14:39 ` Alexander Turenko [this message] 2019-11-21 17:27 ` [Tarantool-patches] [tarantool-patches] " Roman Khabibov 2019-12-08 19:48 ` Alexander Turenko 2019-12-10 16:25 ` Roman Khabibov 2019-12-18 14:58 ` Alexander Turenko 2019-12-21 17:50 ` Roman Khabibov 2019-12-23 13:36 ` Alexander Turenko 2019-12-26 17:29 ` Roman Khabibov 2020-02-18 13:55 ` [Tarantool-patches] Fwd: " Roman Khabibov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191101143929.7gv53nqgscwpbayv@tkn_work_nb \ --to=alexander.turenko@tarantool.org \ --cc=roman.habibov@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [Tarantool-patches] [server-dev] Re: [tarantool-patches] Re: [PATCH v2 1/2] lua: return getaddrinfo() errors' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox