diff options
Diffstat (limited to 'src/tcp.c')
-rw-r--r-- | src/tcp.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -160,22 +160,22 @@ static int meth_accept(lua_State *L) | |||
160 | p_tcp server = (p_tcp) aux_checkclass(L, "tcp{server}", 1); | 160 | p_tcp server = (p_tcp) aux_checkclass(L, "tcp{server}", 1); |
161 | p_tm tm = tm_markstart(&server->tm); | 161 | p_tm tm = tm_markstart(&server->tm); |
162 | t_sock sock; | 162 | t_sock sock; |
163 | const char *err = sock_accept(&server->sock, &sock, NULL, NULL, tm); | 163 | int err = sock_accept(&server->sock, &sock, NULL, NULL, tm); |
164 | /* if successful, push client socket */ | 164 | /* if successful, push client socket */ |
165 | if (!err) { | 165 | if (err == IO_DONE) { |
166 | p_tcp clnt = (p_tcp) lua_newuserdata(L, sizeof(t_tcp)); | 166 | p_tcp clnt = (p_tcp) lua_newuserdata(L, sizeof(t_tcp)); |
167 | aux_setclass(L, "tcp{client}", -1); | 167 | aux_setclass(L, "tcp{client}", -1); |
168 | /* initialize structure fields */ | 168 | /* initialize structure fields */ |
169 | sock_setnonblocking(&sock); | 169 | sock_setnonblocking(&sock); |
170 | clnt->sock = sock; | 170 | clnt->sock = sock; |
171 | io_init(&clnt->io, (p_send) sock_send, (p_recv) sock_recv, | 171 | io_init(&clnt->io, (p_send) sock_send, (p_recv) sock_recv, |
172 | (p_geterr) sock_geterr, &clnt->sock); | 172 | (p_error) sock_ioerror, &clnt->sock); |
173 | tm_init(&clnt->tm, -1, -1); | 173 | tm_init(&clnt->tm, -1, -1); |
174 | buf_init(&clnt->buf, &clnt->io, &clnt->tm); | 174 | buf_init(&clnt->buf, &clnt->io, &clnt->tm); |
175 | return 1; | 175 | return 1; |
176 | } else { | 176 | } else { |
177 | lua_pushnil(L); | 177 | lua_pushnil(L); |
178 | lua_pushstring(L, err); | 178 | lua_pushstring(L, sock_strerror(err)); |
179 | return 2; | 179 | return 2; |
180 | } | 180 | } |
181 | } | 181 | } |
@@ -236,10 +236,10 @@ static int meth_listen(lua_State *L) | |||
236 | { | 236 | { |
237 | p_tcp tcp = (p_tcp) aux_checkclass(L, "tcp{master}", 1); | 237 | p_tcp tcp = (p_tcp) aux_checkclass(L, "tcp{master}", 1); |
238 | int backlog = (int) luaL_optnumber(L, 2, 32); | 238 | int backlog = (int) luaL_optnumber(L, 2, 32); |
239 | const char *err = sock_listen(&tcp->sock, backlog); | 239 | int err = sock_listen(&tcp->sock, backlog); |
240 | if (err) { | 240 | if (err != IO_DONE) { |
241 | lua_pushnil(L); | 241 | lua_pushnil(L); |
242 | lua_pushstring(L, err); | 242 | lua_pushstring(L, sock_strerror(err)); |
243 | return 2; | 243 | return 2; |
244 | } | 244 | } |
245 | /* turn master object into a server object */ | 245 | /* turn master object into a server object */ |
@@ -320,7 +320,7 @@ static int global_create(lua_State *L) | |||
320 | sock_setnonblocking(&sock); | 320 | sock_setnonblocking(&sock); |
321 | tcp->sock = sock; | 321 | tcp->sock = sock; |
322 | io_init(&tcp->io, (p_send) sock_send, (p_recv) sock_recv, | 322 | io_init(&tcp->io, (p_send) sock_send, (p_recv) sock_recv, |
323 | (p_geterr) sock_geterr, &tcp->sock); | 323 | (p_error) sock_ioerror, &tcp->sock); |
324 | tm_init(&tcp->tm, -1, -1); | 324 | tm_init(&tcp->tm, -1, -1); |
325 | buf_init(&tcp->buf, &tcp->io, &tcp->tm); | 325 | buf_init(&tcp->buf, &tcp->io, &tcp->tm); |
326 | return 1; | 326 | return 1; |