diff --git a/src/lua/bsdsocket.cc b/src/lua/bsdsocket.cc index a3c08b5f931e6b77fdeb8ae1656b2e274e089fd8..189719254e2df1f5efae2e526edd3a7a51d1abf9 100644 --- a/src/lua/bsdsocket.cc +++ b/src/lua/bsdsocket.cc @@ -507,6 +507,11 @@ lbox_bsdsocket_push_family(struct lua_State *L, int family) static int lbox_bsdsocket_push_protocol(struct lua_State *L, int protonumber) { + if (protonumber == 0) { + lua_pushinteger(L, 0); + return 1; + } + struct protoent *p = getprotobynumber(protonumber); if (p) { lua_pushstring(L, p->p_name); diff --git a/test/box/bsdsocket.result b/test/box/bsdsocket.result index 7437f619021e3cd8402dbe5192130b69649d620b..4e0e3fa6e54888169147b56e2f7a3d5b072e06d2 100644 --- a/test/box/bsdsocket.result +++ b/test/box/bsdsocket.result @@ -1452,7 +1452,7 @@ server:close() - true ... -- Test that socket is closed on GC -s = socket('AF_UNIX', 'SOCK_STREAM', 'ip') +s = socket('AF_UNIX', 'SOCK_STREAM', 0) --- ... s:bind('unix/', path) @@ -1484,7 +1484,7 @@ os.remove(path) - true ... -- Test serializers with sockets -s = socket('AF_UNIX', 'SOCK_STREAM', 'ip') +s = socket('AF_UNIX', 'SOCK_STREAM', 0) --- ... x = s:wait() diff --git a/test/box/bsdsocket.test.lua b/test/box/bsdsocket.test.lua index 83ad91056fe56b9f0c70dd2da1732d3f7213f8a9..e35748f619ff8034822e8f53a3990f5b4dcf4759 100644 --- a/test/box/bsdsocket.test.lua +++ b/test/box/bsdsocket.test.lua @@ -493,7 +493,7 @@ client:close() server:close() -- Test that socket is closed on GC -s = socket('AF_UNIX', 'SOCK_STREAM', 'ip') +s = socket('AF_UNIX', 'SOCK_STREAM', 0) s:bind('unix/', path) s:listen() s = nil @@ -503,7 +503,7 @@ socket.tcp_connect('unix/', path), errno() == errno.ECONNREFUSED os.remove(path) -- Test serializers with sockets -s = socket('AF_UNIX', 'SOCK_STREAM', 'ip') +s = socket('AF_UNIX', 'SOCK_STREAM', 0) x = s:wait() -- waiters is map s.waiters