diff options
Diffstat (limited to 'src/tcp.c')
-rw-r--r-- | src/tcp.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -230,15 +230,15 @@ static int meth_bind(lua_State *L) | |||
230 | p_tcp tcp = (p_tcp) aux_checkclass(L, "tcp{master}", 1); | 230 | p_tcp tcp = (p_tcp) aux_checkclass(L, "tcp{master}", 1); |
231 | const char *address = luaL_checkstring(L, 2); | 231 | const char *address = luaL_checkstring(L, 2); |
232 | unsigned short port = (unsigned short) luaL_checknumber(L, 3); | 232 | unsigned short port = (unsigned short) luaL_checknumber(L, 3); |
233 | int backlog = (int) luaL_optnumber(L, 4, 0); | 233 | int backlog = (int) luaL_optnumber(L, 4, 1); |
234 | const char *err = inet_trybind(&tcp->sock, address, port, backlog); | 234 | const char *err = inet_trybind(&tcp->sock, address, port, backlog); |
235 | if (err) { | 235 | if (err) { |
236 | lua_pushnil(L); | 236 | lua_pushnil(L); |
237 | lua_pushstring(L, err); | 237 | lua_pushstring(L, err); |
238 | return 2; | 238 | return 2; |
239 | } | 239 | } |
240 | /* turn master object into a server object */ | 240 | /* turn master object into a server object if there was a listen */ |
241 | aux_setclass(L, "tcp{server}", 1); | 241 | if (backlog > 0) aux_setclass(L, "tcp{server}", 1); |
242 | lua_pushnumber(L, 1); | 242 | lua_pushnumber(L, 1); |
243 | return 1; | 243 | return 1; |
244 | } | 244 | } |