From 178ec3cff2ba8f1a25eac7c6f8fa8f1a96d41b64 Mon Sep 17 00:00:00 2001
From: Oleg Tsarev <oleg@oleg.sh>
Date: Mon, 18 Aug 2014 15:09:46 +0400
Subject: [PATCH] bsdsocket.test: don't use ip constant

---
 src/lua/bsdsocket.lua       | 17 +++++++++++------
 src/lua/console.lua         |  6 ++++--
 test/box/bsdsocket.test.lua |  8 ++++----
 3 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/src/lua/bsdsocket.lua b/src/lua/bsdsocket.lua
index 63b4cd6f40..6b660b5a58 100644
--- a/src/lua/bsdsocket.lua
+++ b/src/lua/bsdsocket.lua
@@ -761,12 +761,17 @@ local function create_socket(domain, stype, proto)
         return nil
     end
 
-    local p = ffi.C.getprotobyname(proto)
-    if p == nil then
-        boxerrno(boxerrno.EINVAL)
-        return nil
+    local iproto
+    if type(proto) == 'string' then
+        local p = ffi.C.getprotobyname(proto)
+        if p == nil then
+            boxerrno(boxerrno.EINVAL)
+            return nil
+        end
+        iproto = p.p_proto
+    else
+        iproto = tonumber(proto)
     end
-    local iproto = p.p_proto
 
     local fh = ffi.C.socket(idomain, itype, iproto)
     if fh < 0 then
@@ -903,7 +908,7 @@ end
 
 local function tcp_connect(host, port, timeout)
     if host == 'unix/' then
-        return tcp_connect_remote({ host = host, port = port, protocol = 'ip',
+        return tcp_connect_remote({ host = host, port = port, protocol = 0,
             family = 'PF_UNIX', type = 'SOCK_STREAM' }, timeout)
     end
     local timeout = timeout or TIMEOUT_INFINITY
diff --git a/src/lua/console.lua b/src/lua/console.lua
index 106413aafd..f0fac9a60f 100644
--- a/src/lua/console.lua
+++ b/src/lua/console.lua
@@ -5,6 +5,7 @@ local formatter = require('yaml')
 local fiber = require('fiber')
 local socket = require('socket')
 local log = require('log')
+local errno = require('errno')
 
 local function format(status, ...)
     -- When storing a nil in a Lua table, there is no way to
@@ -268,14 +269,15 @@ local function listen(uri)
     if host == 'unix/' then
         port = port or '/tmp/tarantool-console.sock'
         os.remove(port)
-        server = socket('AF_UNIX', 'SOCK_STREAM', 'ip')
+        server = socket('AF_UNIX', 'SOCK_STREAM', 0)
     else
         host = host or '127.0.0.1'
         port = port or 3313
         server = socket('AF_INET', 'SOCK_STREAM', 'tcp')
     end
     if not server then
-        error('failed to create socket: ' .. server:error())
+	error(string.format('failed to create socket %s%s : %s',
+			    host, port, errno.strerror()))
     end
     server:setsockopt('SOL_SOCKET', 'SO_REUSEADDR', true)
 
diff --git a/test/box/bsdsocket.test.lua b/test/box/bsdsocket.test.lua
index 4e301dcaed..5bd72354b5 100644
--- a/test/box/bsdsocket.test.lua
+++ b/test/box/bsdsocket.test.lua
@@ -141,7 +141,7 @@ sa:read(100, 1)
 sa:close()
 sc:close()
 
-s = socket('PF_UNIX', 'SOCK_STREAM', 'ip')
+s = socket('PF_UNIX', 'SOCK_STREAM', 0)
 s:setsockopt('SOL_SOCKET', 'SO_REUSEADDR', true)
 s ~= nil
 s:nonblock()
@@ -152,7 +152,7 @@ s:bind('unix/', '/tmp/tarantool-test-socket')
 sc ~= nil
 s:listen(1234)
 
-sc = socket('PF_UNIX', 'SOCK_STREAM', 'ip')
+sc = socket('PF_UNIX', 'SOCK_STREAM', 0)
 sc:nonblock(true)
 sc:sysconnect('unix/', '/tmp/tarantool-test-socket')
 sc:error()
@@ -272,7 +272,7 @@ socket.tcp_connect('127.0.0.1', porrt), errno() == errno.ECONNREFUSED
 
 -- AF_UNIX
 path = '/tmp/tarantool-test-socket'
-s = socket('AF_UNIX', 'SOCK_STREAM', 'ip')
+s = socket('AF_UNIX', 'SOCK_STREAM', 0)
 s:bind('unix/', path)
 socket.tcp_connect('unix/', path), errno() == errno.ECONNREFUSED
 s:listen()
@@ -338,7 +338,7 @@ f = nil
 
 
 path = '/tmp/tarantool-test-socket'
-s = socket('PF_UNIX', 'SOCK_STREAM', 'ip')
+s = socket('PF_UNIX', 'SOCK_STREAM', 0)
 s:setsockopt('SOL_SOCKET', 'SO_REUSEADDR', true)
 s:error()
 s:bind('unix/', path)
-- 
GitLab