mirror of
https://github.com/PowerShell/Win32-OpenSSH.git
synced 2025-07-25 23:14:54 +02:00
1-3 C2
This commit is contained in:
parent
d47b935039
commit
3c4a0b19ac
@ -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)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user