aboutsummaryrefslogtreecommitdiff
path: root/src/wsocket.c
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2005-11-20 07:20:26 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2005-11-20 07:20:26 +0000
commitf20f4889bfe5a02cd9b77868b90cc8042352176a (patch)
tree339e085e385190ea5f3a9246c3a790c45036c61c /src/wsocket.c
parent087b4f865d861162eb32a4081bb7c2087688919a (diff)
downloadluasocket-f20f4889bfe5a02cd9b77868b90cc8042352176a.tar.gz
luasocket-f20f4889bfe5a02cd9b77868b90cc8042352176a.tar.bz2
luasocket-f20f4889bfe5a02cd9b77868b90cc8042352176a.zip
Changed prefix of function names to match module names.
Removed some warnings and useless code.
Diffstat (limited to 'src/wsocket.c')
-rw-r--r--src/wsocket.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/wsocket.c b/src/wsocket.c
index a690dad..dce333b 100644
--- a/src/wsocket.c
+++ b/src/wsocket.c
@@ -46,16 +46,20 @@ int socket_close(void) {
46#define WAITFD_E 4 46#define WAITFD_E 4
47#define WAITFD_C (WAITFD_E|WAITFD_W) 47#define WAITFD_C (WAITFD_E|WAITFD_W)
48 48
49int socket_waitfd(p_socket ps, int sw, p_tm tm) { 49int socket_waitfd(p_socket ps, int sw, p_timeout tm) {
50 int ret; 50 int ret;
51 fd_set rfds, wfds, efds, *rp = NULL, *wp = NULL, *ep = NULL; 51 fd_set rfds, wfds, efds, *rp = NULL, *wp = NULL, *ep = NULL;
52 struct timeval tv, *tp = NULL; 52 struct timeval tv, *tp = NULL;
53 double t; 53 double t;
54 if (tm_iszero(tm)) return IO_TIMEOUT; /* optimize timeout == 0 case */ 54 if (timeout_iszero(tm)) return IO_TIMEOUT; /* optimize timeout == 0 case */
55 if (sw & WAITFD_R) { FD_ZERO(&rfds); FD_SET(*ps, &rfds); rp = &rfds; } 55 if (sw & WAITFD_R) {
56 FD_ZERO(&rfds);
57 FD_SET(*ps, &rfds);
58 rp = &rfds;
59 }
56 if (sw & WAITFD_W) { FD_ZERO(&wfds); FD_SET(*ps, &wfds); wp = &wfds; } 60 if (sw & WAITFD_W) { FD_ZERO(&wfds); FD_SET(*ps, &wfds); wp = &wfds; }
57 if (sw & WAITFD_C) { FD_ZERO(&efds); FD_SET(*ps, &efds); ep = &efds; } 61 if (sw & WAITFD_C) { FD_ZERO(&efds); FD_SET(*ps, &efds); ep = &efds; }
58 if ((t = tm_get(tm)) >= 0.0) { 62 if ((t = timeout_get(tm)) >= 0.0) {
59 tv.tv_sec = (int) t; 63 tv.tv_sec = (int) t;
60 tv.tv_usec = (int) ((t-tv.tv_sec)*1.0e6); 64 tv.tv_usec = (int) ((t-tv.tv_sec)*1.0e6);
61 tp = &tv; 65 tp = &tv;
@@ -70,9 +74,10 @@ int socket_waitfd(p_socket ps, int sw, p_tm tm) {
70/*-------------------------------------------------------------------------*\ 74/*-------------------------------------------------------------------------*\
71* Select with int timeout in ms 75* Select with int timeout in ms
72\*-------------------------------------------------------------------------*/ 76\*-------------------------------------------------------------------------*/
73int socket_select(int n, fd_set *rfds, fd_set *wfds, fd_set *efds, p_tm tm) { 77int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds,
78 p_timeout tm) {
74 struct timeval tv; 79 struct timeval tv;
75 double t = tm_get(tm); 80 double t = timeout_get(tm);
76 tv.tv_sec = (int) t; 81 tv.tv_sec = (int) t;
77 tv.tv_usec = (int) ((t - tv.tv_sec) * 1.0e6); 82 tv.tv_usec = (int) ((t - tv.tv_sec) * 1.0e6);
78 if (n <= 0) { 83 if (n <= 0) {
@@ -113,7 +118,7 @@ int socket_create(p_socket ps, int domain, int type, int protocol) {
113/*-------------------------------------------------------------------------*\ 118/*-------------------------------------------------------------------------*\
114* Connects or returns error message 119* Connects or returns error message
115\*-------------------------------------------------------------------------*/ 120\*-------------------------------------------------------------------------*/
116int socket_connect(p_socket ps, SA *addr, socklen_t len, p_tm tm) { 121int socket_connect(p_socket ps, SA *addr, socklen_t len, p_timeout tm) {
117 int err; 122 int err;
118 /* don't call on closed socket */ 123 /* don't call on closed socket */
119 if (*ps == SOCKET_INVALID) return IO_CLOSED; 124 if (*ps == SOCKET_INVALID) return IO_CLOSED;
@@ -123,7 +128,7 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_tm tm) {
123 err = WSAGetLastError(); 128 err = WSAGetLastError();
124 if (err != WSAEWOULDBLOCK && err != WSAEINPROGRESS) return err; 129 if (err != WSAEWOULDBLOCK && err != WSAEINPROGRESS) return err;
125 /* zero timeout case optimization */ 130 /* zero timeout case optimization */
126 if (tm_iszero(tm)) return IO_TIMEOUT; 131 if (timeout_iszero(tm)) return IO_TIMEOUT;
127 /* we wait until something happens */ 132 /* we wait until something happens */
128 err = socket_waitfd(ps, WAITFD_C, tm); 133 err = socket_waitfd(ps, WAITFD_C, tm);
129 if (err == IO_CLOSED) { 134 if (err == IO_CLOSED) {
@@ -131,7 +136,7 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_tm tm) {
131 /* give windows time to set the error (yes, disgusting) */ 136 /* give windows time to set the error (yes, disgusting) */
132 Sleep(10); 137 Sleep(10);
133 /* find out why we failed */ 138 /* find out why we failed */
134 getsockopt(*ps, SOL_SOCKETET, SO_ERROR, (char *)&err, &len); 139 getsockopt(*ps, SOL_SOCKET, SO_ERROR, (char *)&err, &len);
135 /* we KNOW there was an error. if 'why' is 0, we will return 140 /* we KNOW there was an error. if 'why' is 0, we will return
136 * "unknown error", but it's not really our fault */ 141 * "unknown error", but it's not really our fault */
137 return err > 0? err: IO_UNKNOWN; 142 return err > 0? err: IO_UNKNOWN;
@@ -164,7 +169,8 @@ int socket_listen(p_socket ps, int backlog) {
164/*-------------------------------------------------------------------------*\ 169/*-------------------------------------------------------------------------*\
165* Accept with timeout 170* Accept with timeout
166\*-------------------------------------------------------------------------*/ 171\*-------------------------------------------------------------------------*/
167int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, p_tm tm) { 172int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len,
173 p_timeout tm) {
168 SA daddr; 174 SA daddr;
169 socklen_t dlen = sizeof(daddr); 175 socklen_t dlen = sizeof(daddr);
170 if (*ps == SOCKET_INVALID) return IO_CLOSED; 176 if (*ps == SOCKET_INVALID) return IO_CLOSED;
@@ -192,7 +198,7 @@ int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, p_tm tm) {
192* Therefore, whoever calls this function should not pass a huge buffer. 198* Therefore, whoever calls this function should not pass a huge buffer.
193\*-------------------------------------------------------------------------*/ 199\*-------------------------------------------------------------------------*/
194int socket_send(p_socket ps, const char *data, size_t count, 200int socket_send(p_socket ps, const char *data, size_t count,
195 size_t *sent, p_tm tm) 201 size_t *sent, p_timeout tm)
196{ 202{
197 int err; 203 int err;
198 /* avoid making system calls on closed sockets */ 204 /* avoid making system calls on closed sockets */
@@ -222,7 +228,7 @@ int socket_send(p_socket ps, const char *data, size_t count,
222* Sendto with timeout 228* Sendto with timeout
223\*-------------------------------------------------------------------------*/ 229\*-------------------------------------------------------------------------*/
224int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent, 230int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
225 SA *addr, socklen_t len, p_tm tm) 231 SA *addr, socklen_t len, p_timeout tm)
226{ 232{
227 int err; 233 int err;
228 if (*ps == SOCKET_INVALID) return IO_CLOSED; 234 if (*ps == SOCKET_INVALID) return IO_CLOSED;
@@ -243,7 +249,7 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
243/*-------------------------------------------------------------------------*\ 249/*-------------------------------------------------------------------------*\
244* Receive with timeout 250* Receive with timeout
245\*-------------------------------------------------------------------------*/ 251\*-------------------------------------------------------------------------*/
246int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_tm tm) { 252int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm) {
247 int err; 253 int err;
248 if (*ps == SOCKET_INVALID) return IO_CLOSED; 254 if (*ps == SOCKET_INVALID) return IO_CLOSED;
249 *got = 0; 255 *got = 0;
@@ -265,7 +271,7 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_tm tm) {
265* Recvfrom with timeout 271* Recvfrom with timeout
266\*-------------------------------------------------------------------------*/ 272\*-------------------------------------------------------------------------*/
267int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, 273int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
268 SA *addr, socklen_t *len, p_tm tm) { 274 SA *addr, socklen_t *len, p_timeout tm) {
269 int err; 275 int err;
270 if (*ps == SOCKET_INVALID) return IO_CLOSED; 276 if (*ps == SOCKET_INVALID) return IO_CLOSED;
271 *got = 0; 277 *got = 0;