aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--src/buffer.c12
-rw-r--r--src/inet.c12
-rw-r--r--src/makefile11
-rw-r--r--src/mime.c8
-rw-r--r--src/select.c10
-rw-r--r--src/tcp.c2
-rw-r--r--src/udp.c4
-rw-r--r--src/wsocket.c7
9 files changed, 33 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index 0050a8a..2d37568 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
1*.o 1*.o
2*.so 2*.so
3*.so.* 3*.so.*
4mac 4macosx.cmd
5win32.cmd
6
diff --git a/src/buffer.c b/src/buffer.c
index d8facd2..4ef4e8e 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -51,8 +51,8 @@ void buffer_init(p_buffer buf, p_io io, p_timeout tm) {
51* object:getstats() interface 51* object:getstats() interface
52\*-------------------------------------------------------------------------*/ 52\*-------------------------------------------------------------------------*/
53int buffer_meth_getstats(lua_State *L, p_buffer buf) { 53int buffer_meth_getstats(lua_State *L, p_buffer buf) {
54 lua_pushnumber(L, buf->received); 54 lua_pushnumber(L, (lua_Number) buf->received);
55 lua_pushnumber(L, buf->sent); 55 lua_pushnumber(L, (lua_Number) buf->sent);
56 lua_pushnumber(L, timeout_gettime() - buf->birthday); 56 lua_pushnumber(L, timeout_gettime() - buf->birthday);
57 return 3; 57 return 3;
58} 58}
@@ -61,8 +61,8 @@ int buffer_meth_getstats(lua_State *L, p_buffer buf) {
61* object:setstats() interface 61* object:setstats() interface
62\*-------------------------------------------------------------------------*/ 62\*-------------------------------------------------------------------------*/
63int buffer_meth_setstats(lua_State *L, p_buffer buf) { 63int buffer_meth_setstats(lua_State *L, p_buffer buf) {
64 buf->received = (long) luaL_optnumber(L, 2, buf->received); 64 buf->received = (long) luaL_optnumber(L, 2, (lua_Number) buf->received);
65 buf->sent = (long) luaL_optnumber(L, 3, buf->sent); 65 buf->sent = (long) luaL_optnumber(L, 3, (lua_Number) buf->sent);
66 if (lua_isnumber(L, 4)) buf->birthday = timeout_gettime() - lua_tonumber(L, 4); 66 if (lua_isnumber(L, 4)) buf->birthday = timeout_gettime() - lua_tonumber(L, 4);
67 lua_pushnumber(L, 1); 67 lua_pushnumber(L, 1);
68 return 1; 68 return 1;
@@ -90,9 +90,9 @@ int buffer_meth_send(lua_State *L, p_buffer buf) {
90 if (err != IO_DONE) { 90 if (err != IO_DONE) {
91 lua_pushnil(L); 91 lua_pushnil(L);
92 lua_pushstring(L, buf->io->error(buf->io->ctx, err)); 92 lua_pushstring(L, buf->io->error(buf->io->ctx, err));
93 lua_pushnumber(L, sent+start-1); 93 lua_pushnumber(L, (lua_Number) (sent+start-1));
94 } else { 94 } else {
95 lua_pushnumber(L, sent+start-1); 95 lua_pushnumber(L, (lua_Number) (sent+start-1));
96 lua_pushnil(L); 96 lua_pushnil(L);
97 lua_pushnil(L); 97 lua_pushnil(L);
98 } 98 }
diff --git a/src/inet.c b/src/inet.c
index 52f7397..69d32e6 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -105,8 +105,8 @@ static int inet_global_getnameinfo(lua_State *L) {
105 105
106 lua_newtable(L); 106 lua_newtable(L);
107 for (i = 1, iter = resolved; iter; i++, iter = iter->ai_next) { 107 for (i = 1, iter = resolved; iter; i++, iter = iter->ai_next) {
108 getnameinfo(iter->ai_addr, iter->ai_addrlen, host, 108 getnameinfo(iter->ai_addr, (socklen_t) iter->ai_addrlen, host,
109 node ? sizeof(host) : 0, serv, service ? sizeof(serv) : 0, 0); 109 node ? (socklen_t) sizeof(host) : 0, serv, service ? (socklen_t) sizeof(serv) : 0, 0);
110 110
111 if (node) { 111 if (node) {
112 lua_pushnumber(L, i); 112 lua_pushnumber(L, i);
@@ -177,8 +177,8 @@ static int inet_global_getaddrinfo(lua_State *L)
177 lua_newtable(L); 177 lua_newtable(L);
178 for (iterator = resolved; iterator; iterator = iterator->ai_next) { 178 for (iterator = resolved; iterator; iterator = iterator->ai_next) {
179 char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV]; 179 char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];
180 getnameinfo(iterator->ai_addr, iterator->ai_addrlen, hbuf, 180 getnameinfo(iterator->ai_addr, (socklen_t) iterator->ai_addrlen, hbuf,
181 sizeof(hbuf), sbuf, 0, NI_NUMERICHOST); 181 (socklen_t) sizeof(hbuf), sbuf, 0, NI_NUMERICHOST);
182 lua_pushnumber(L, i); 182 lua_pushnumber(L, i);
183 lua_newtable(L); 183 lua_newtable(L);
184 switch (iterator->ai_family) { 184 switch (iterator->ai_family) {
@@ -413,7 +413,7 @@ const char *inet_tryconnect(p_socket ps, const char *address,
413 timeout_markstart(tm); 413 timeout_markstart(tm);
414 /* try connecting to remote address */ 414 /* try connecting to remote address */
415 err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr, 415 err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr,
416 iterator->ai_addrlen, tm)); 416 (socklen_t) iterator->ai_addrlen, tm));
417 /* if success, break out of loop */ 417 /* if success, break out of loop */
418 if (err == NULL) break; 418 if (err == NULL) break;
419 } 419 }
@@ -463,7 +463,7 @@ const char *inet_trybind(p_socket ps, const char *address, const char *serv,
463 /* try binding to local address */ 463 /* try binding to local address */
464 err = socket_strerror(socket_bind(&sock, 464 err = socket_strerror(socket_bind(&sock,
465 (SA *) iterator->ai_addr, 465 (SA *) iterator->ai_addr,
466 iterator->ai_addrlen)); 466 (socklen_t) iterator->ai_addrlen));
467 467
468 /* keep trying unless bind succeeded */ 468 /* keep trying unless bind succeeded */
469 if (err) { 469 if (err) {
diff --git a/src/makefile b/src/makefile
index 42b745e..a75d5a6 100644
--- a/src/makefile
+++ b/src/makefile
@@ -114,7 +114,7 @@ SOCKET_macosx=usocket.o
114SO_linux=so 114SO_linux=so
115O_linux=o 115O_linux=o
116CC_linux=gcc 116CC_linux=gcc
117DEF_linux=-DLUASOCKET_$(DEBUG) \ 117DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \
118 -DLUASOCKET_API='__attribute__((visibility("default")))' \ 118 -DLUASOCKET_API='__attribute__((visibility("default")))' \
119 -DMIME_API='__attribute__((visibility("default")))' 119 -DMIME_API='__attribute__((visibility("default")))'
120CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic \ 120CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic \
@@ -130,11 +130,12 @@ SO_win32=dll
130O_win32=obj 130O_win32=obj
131CC_win32=cl 131CC_win32=cl
132DEF_win32= /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" \ 132DEF_win32= /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" \
133 /D "LUASOCKET_API=__declspec(dllexport)" /D "LUASOCKET_$(DEBUG)" \ 133 /D "LUASOCKET_API=__declspec(dllexport)" /D "_CRT_SECURE_NO_WARNINGS" \
134 /D "_CRT_SECURE_NO_WARNINGS" /D "_WINDLL" 134 /D "_WINDLL" /D "LUA_COMPAT_MODULE" /D "MIME_API=__declspec(dllexport)" \
135CFLAGS_win32=/I$(LUAINC) $(DEF) /O2 /Ot /MD /W3 /nologo 135 /D "LUASOCKET_$(DEBUG)"
136CFLAGS_win32=/I "$(LUAINC)" $(DEF) /O2 /Ot /MD /W3 /nologo
136LDFLAGS_win32= /nologo /link /NOLOGO /DLL /INCREMENTAL:NO \ 137LDFLAGS_win32= /nologo /link /NOLOGO /DLL /INCREMENTAL:NO \
137 /LIBPATH:$(LUALIB) \ 138 /LIBPATH:"$(LUALIB)" \
138 /MANIFEST \ 139 /MANIFEST \
139 /MANIFESTFILE:"intermediate.manifest" \ 140 /MANIFESTFILE:"intermediate.manifest" \
140 /MANIFESTUAC:"level='asInvoker' uiAccess='false'" \ 141 /MANIFESTUAC:"level='asInvoker' uiAccess='false'" \
diff --git a/src/mime.c b/src/mime.c
index 06e5132..dddd3d6 100644
--- a/src/mime.c
+++ b/src/mime.c
@@ -504,7 +504,7 @@ static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) {
504 c = qpunbase[input[1]]; d = qpunbase[input[2]]; 504 c = qpunbase[input[1]]; d = qpunbase[input[2]];
505 /* if it is an invalid, do not decode */ 505 /* if it is an invalid, do not decode */
506 if (c > 15 || d > 15) luaL_addlstring(buffer, (char *)input, 3); 506 if (c > 15 || d > 15) luaL_addlstring(buffer, (char *)input, 3);
507 else luaL_addchar(buffer, (c << 4) + d); 507 else luaL_addchar(buffer, (char) ((c << 4) + d));
508 return 0; 508 return 0;
509 case '\r': 509 case '\r':
510 if (size < 2) return size; 510 if (size < 2) return size;
@@ -642,7 +642,7 @@ static int eolprocess(int c, int last, const char *marker,
642 return c; 642 return c;
643 } 643 }
644 } else { 644 } else {
645 luaL_addchar(buffer, c); 645 luaL_addchar(buffer, (char) c);
646 return 0; 646 return 0;
647 } 647 }
648} 648}
@@ -682,7 +682,7 @@ static int mime_global_eol(lua_State *L)
682\*-------------------------------------------------------------------------*/ 682\*-------------------------------------------------------------------------*/
683static size_t dot(int c, size_t state, luaL_Buffer *buffer) 683static size_t dot(int c, size_t state, luaL_Buffer *buffer)
684{ 684{
685 luaL_addchar(buffer, c); 685 luaL_addchar(buffer, (char) c);
686 switch (c) { 686 switch (c) {
687 case '\r': 687 case '\r':
688 return 1; 688 return 1;
@@ -717,7 +717,7 @@ static int mime_global_dot(lua_State *L)
717 while (input < last) 717 while (input < last)
718 state = dot(*input++, state, &buffer); 718 state = dot(*input++, state, &buffer);
719 luaL_pushresult(&buffer); 719 luaL_pushresult(&buffer);
720 lua_pushnumber(L, state); 720 lua_pushnumber(L, (lua_Number) state);
721 return 2; 721 return 2;
722} 722}
723 723
diff --git a/src/select.c b/src/select.c
index b870545..51fb198 100644
--- a/src/select.c
+++ b/src/select.c
@@ -122,7 +122,7 @@ static void collect_fd(lua_State *L, int tab, int itab,
122 if (lua_isnil(L, tab)) return; 122 if (lua_isnil(L, tab)) return;
123 /* otherwise we need it to be a table */ 123 /* otherwise we need it to be a table */
124 luaL_checktype(L, tab, LUA_TTABLE); 124 luaL_checktype(L, tab, LUA_TTABLE);
125 while (1) { 125 for ( ;; ) {
126 t_socket fd; 126 t_socket fd;
127 lua_pushnumber(L, i); 127 lua_pushnumber(L, i);
128 lua_gettable(L, tab); 128 lua_gettable(L, tab);
@@ -147,7 +147,7 @@ static void collect_fd(lua_State *L, int tab, int itab,
147 if (*max_fd == SOCKET_INVALID || *max_fd < fd) 147 if (*max_fd == SOCKET_INVALID || *max_fd < fd)
148 *max_fd = fd; 148 *max_fd = fd;
149 /* make sure we can map back from descriptor to the object */ 149 /* make sure we can map back from descriptor to the object */
150 lua_pushnumber(L, fd); 150 lua_pushnumber(L, (lua_Number) fd);
151 lua_pushvalue(L, -2); 151 lua_pushvalue(L, -2);
152 lua_settable(L, itab); 152 lua_settable(L, itab);
153 } 153 }
@@ -160,7 +160,7 @@ static int check_dirty(lua_State *L, int tab, int dtab, fd_set *set) {
160 int ndirty = 0, i = 1; 160 int ndirty = 0, i = 1;
161 if (lua_isnil(L, tab)) 161 if (lua_isnil(L, tab))
162 return 0; 162 return 0;
163 while (1) { 163 for ( ;; ) {
164 t_socket fd; 164 t_socket fd;
165 lua_pushnumber(L, i); 165 lua_pushnumber(L, i);
166 lua_gettable(L, tab); 166 lua_gettable(L, tab);
@@ -187,7 +187,7 @@ static void return_fd(lua_State *L, fd_set *set, t_socket max_fd,
187 for (fd = 0; fd < max_fd; fd++) { 187 for (fd = 0; fd < max_fd; fd++) {
188 if (FD_ISSET(fd, set)) { 188 if (FD_ISSET(fd, set)) {
189 lua_pushnumber(L, ++start); 189 lua_pushnumber(L, ++start);
190 lua_pushnumber(L, fd); 190 lua_pushnumber(L, (lua_Number) fd);
191 lua_gettable(L, itab); 191 lua_gettable(L, itab);
192 lua_settable(L, tab); 192 lua_settable(L, tab);
193 } 193 }
@@ -197,7 +197,7 @@ static void return_fd(lua_State *L, fd_set *set, t_socket max_fd,
197static void make_assoc(lua_State *L, int tab) { 197static void make_assoc(lua_State *L, int tab) {
198 int i = 1, atab; 198 int i = 1, atab;
199 lua_newtable(L); atab = lua_gettop(L); 199 lua_newtable(L); atab = lua_gettop(L);
200 while (1) { 200 for ( ;; ) {
201 lua_pushnumber(L, i); 201 lua_pushnumber(L, i);
202 lua_gettable(L, tab); 202 lua_gettable(L, tab);
203 if (!lua_isnil(L, -1)) { 203 if (!lua_isnil(L, -1)) {
diff --git a/src/tcp.c b/src/tcp.c
index ea97320..6734dc0 100644
--- a/src/tcp.c
+++ b/src/tcp.c
@@ -418,7 +418,7 @@ static const char *tryconnect6(const char *remoteaddr, const char *remoteserv,
418 /* finally try connecting to remote address */ 418 /* finally try connecting to remote address */
419 err = socket_strerror(socket_connect(&tcp->sock, 419 err = socket_strerror(socket_connect(&tcp->sock,
420 (SA *) iterator->ai_addr, 420 (SA *) iterator->ai_addr,
421 iterator->ai_addrlen, tm)); 421 (socklen_t) iterator->ai_addrlen, tm));
422 /* if success, break out of loop */ 422 /* if success, break out of loop */
423 if (err == NULL) break; 423 if (err == NULL) break;
424 } 424 }
diff --git a/src/udp.c b/src/udp.c
index 4cd9a41..8e14fac 100644
--- a/src/udp.c
+++ b/src/udp.c
@@ -139,7 +139,7 @@ static int meth_send(lua_State *L) {
139 lua_pushstring(L, udp_strerror(err)); 139 lua_pushstring(L, udp_strerror(err));
140 return 2; 140 return 2;
141 } 141 }
142 lua_pushnumber(L, sent); 142 lua_pushnumber(L, (lua_Number) sent);
143 return 1; 143 return 1;
144} 144}
145 145
@@ -189,7 +189,7 @@ static int meth_sendto(lua_State *L) {
189 lua_pushstring(L, udp_strerror(err)); 189 lua_pushstring(L, udp_strerror(err));
190 return 2; 190 return 2;
191 } 191 }
192 lua_pushnumber(L, sent); 192 lua_pushnumber(L, (lua_Number) sent);
193 return 1; 193 return 1;
194} 194}
195 195
diff --git a/src/wsocket.c b/src/wsocket.c
index 5b184cf..d6dd004 100644
--- a/src/wsocket.c
+++ b/src/wsocket.c
@@ -181,8 +181,6 @@ int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len,
181 /* call select to avoid busy wait */ 181 /* call select to avoid busy wait */
182 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; 182 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
183 } 183 }
184 /* can't reach here */
185 return IO_UNKNOWN;
186} 184}
187 185
188/*-------------------------------------------------------------------------*\ 186/*-------------------------------------------------------------------------*\
@@ -214,8 +212,6 @@ int socket_send(p_socket ps, const char *data, size_t count,
214 /* avoid busy wait */ 212 /* avoid busy wait */
215 if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err; 213 if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err;
216 } 214 }
217 /* can't reach here */
218 return IO_UNKNOWN;
219} 215}
220 216
221/*-------------------------------------------------------------------------*\ 217/*-------------------------------------------------------------------------*\
@@ -237,7 +233,6 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
237 if (err != WSAEWOULDBLOCK) return err; 233 if (err != WSAEWOULDBLOCK) return err;
238 if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err; 234 if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err;
239 } 235 }
240 return IO_UNKNOWN;
241} 236}
242 237
243/*-------------------------------------------------------------------------*\ 238/*-------------------------------------------------------------------------*\
@@ -258,7 +253,6 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm
258 if (err != WSAEWOULDBLOCK) return err; 253 if (err != WSAEWOULDBLOCK) return err;
259 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; 254 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
260 } 255 }
261 return IO_UNKNOWN;
262} 256}
263 257
264/*-------------------------------------------------------------------------*\ 258/*-------------------------------------------------------------------------*\
@@ -280,7 +274,6 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
280 if (err != WSAEWOULDBLOCK) return err; 274 if (err != WSAEWOULDBLOCK) return err;
281 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; 275 if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
282 } 276 }
283 return IO_UNKNOWN;
284} 277}
285 278
286/*-------------------------------------------------------------------------*\ 279/*-------------------------------------------------------------------------*\