This commit is contained in:
Manoj Ampalam 2016-01-03 00:33:23 -08:00
parent d47b935039
commit 3c4a0b19ac

View File

@ -3,7 +3,7 @@
struct w32fd_table { struct w32fd_table {
w32_fd_set occupied; w32_fd_set occupied;
struct w32fd* w32fds[MAX_FDS]; struct w32_io* w32_ios[MAX_FDS];
}; };
struct w32fd_table fd_table; struct w32fd_table fd_table;
@ -38,16 +38,15 @@ int fd_table_get_min_index() {
void fd_table_set(struct w32_io* pio, int index) { void fd_table_set(struct w32_io* pio, int index) {
fd_table.w32fds[index] = pio; fd_table.w32_ios[index] = pio;
pio->table_index = index; pio->table_index = index;
FD_SET(index, &(fd_table.occupied)); FD_SET(index, &(fd_table.occupied));
} }
void fd_table_clear(int index) void fd_table_clear(int index)
{ {
struct w32_pio* pio = fd_table.w32fds[index]; fd_table.w32_ios[index]->table_index = -1;
//pio->table_index = -1; fd_table.w32_ios[index] = NULL;
fd_table.w32fds[index] = NULL;
FD_SET(index, &(fd_table.occupied)); FD_SET(index, &(fd_table.occupied));
} }
@ -88,7 +87,7 @@ int w32_accept(int fd, struct sockaddr* addr, int* addrlen)
return -1; return -1;
} }
pio = socketio_accept(fd_table.w32fds[fd], addr, addrlen); pio = socketio_accept(fd_table.w32_ios[fd], addr, addrlen);
if (!pio) { if (!pio) {
return -1; return -1;
} }
@ -98,39 +97,39 @@ int w32_accept(int fd, struct sockaddr* addr, int* addrlen)
} }
int w32_setsockopt(int fd, int level, int optname, const char* optval, int optlen) { int w32_setsockopt(int fd, int level, int optname, const char* optval, int optlen) {
return socketio_setsockopt(fd_table.w32fds[fd], level, optname, optval, optlen); return socketio_setsockopt(fd_table.w32_ios[fd], level, optname, optval, optlen);
} }
int w32_getsockopt(int fd, int level, int optname, char* optval, int* optlen) { int w32_getsockopt(int fd, int level, int optname, char* optval, int* optlen) {
return socketio_getsockopt(fd_table.w32fds[fd], level, optname, optval, optlen); return socketio_getsockopt(fd_table.w32_ios[fd], level, optname, optval, optlen);
} }
int w32_getsockname(int fd, struct sockaddr* name, int* namelen) { int w32_getsockname(int fd, struct sockaddr* name, int* namelen) {
return socketio_getsockname(fd_table.w32fds[fd], name, namelen); return socketio_getsockname(fd_table.w32_ios[fd], name, namelen);
} }
int w32_getpeername(int fd, struct sockaddr* name, int* namelen) { int w32_getpeername(int fd, struct sockaddr* name, int* namelen) {
return socketio_getpeername(fd_table.w32fds[fd], name, namelen); return socketio_getpeername(fd_table.w32_ios[fd], name, namelen);
} }
int w32_listen(int fd, int backlog) { int w32_listen(int fd, int backlog) {
return socketio_listen(fd_table.w32fds[fd], backlog); return socketio_listen(fd_table.w32_ios[fd], backlog);
} }
int w32_bind(int fd, const struct sockaddr *name, int namelen) { int w32_bind(int fd, const struct sockaddr *name, int namelen) {
return socketio_bind(fd_table.w32fds[fd], name, namelen); return socketio_bind(fd_table.w32_ios[fd], name, namelen);
} }
int w32_connect(int fd, const struct sockaddr* name, int namelen) { int w32_connect(int fd, const struct sockaddr* name, int namelen) {
return socketio_connect(fd_table.w32fds[fd], name, namelen); return socketio_connect(fd_table.w32_ios[fd], name, namelen);
} }
int w32_shutdown(int fd, int how) { int w32_shutdown(int fd, int how) {
return socketio_shutdown(fd_table.w32fds[fd], how); return socketio_shutdown(fd_table.w32_ios[fd], how);
} }
int w32_close(int fd) { int w32_close(int fd) {
struct w32_io* pio = fd_table.w32fds[fd]; struct w32_io* pio = fd_table.w32_ios[fd];
fd_table_clear(pio->table_index); fd_table_clear(pio->table_index);
if ((pio->type == LISTEN_FD) || (pio->type == SOCK_FD)) { if ((pio->type == LISTEN_FD) || (pio->type == SOCK_FD)) {