aboutsummaryrefslogtreecommitdiff
path: root/src/tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tcp.c')
-rw-r--r--src/tcp.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/tcp.c b/src/tcp.c
index 512f11b..ef5a824 100644
--- a/src/tcp.c
+++ b/src/tcp.c
@@ -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;