mirror of
https://github.com/drk1wi/portspoof.git
synced 2024-06-16 11:58:57 +00:00
fixed POSIX sockets
This commit is contained in:
parent
5d77885ca1
commit
70b6bf2ad9
@ -1,5 +1,6 @@
|
||||
1.3 - 26/06/2014 - Linux
|
||||
* Minor release.
|
||||
* Better support for POSIX sockets.
|
||||
* Fix some minor issues.
|
||||
|
||||
1.2 - 25/04/2014 - Linux
|
||||
|
@ -83,6 +83,7 @@ void nonblock(int sockfd)
|
||||
perror("fcntl(F_SETFL)\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void* process_connection(void *arg)
|
||||
@ -99,6 +100,11 @@ void* process_connection(void *arg)
|
||||
char* msg;
|
||||
char ipstr[INET6_ADDRSTRLEN];
|
||||
memset(ipstr, '\0', INET6_ADDRSTRLEN);
|
||||
fd_set read_mask;
|
||||
struct timeval tv;
|
||||
int select_return;
|
||||
tv.tv_sec = 1;
|
||||
tv.tv_usec = 0;
|
||||
|
||||
while(1) {
|
||||
|
||||
@ -114,11 +120,23 @@ void* process_connection(void *arg)
|
||||
if(configuration->getConfigValue(OPT_NOT_NMAP_SCANNER))
|
||||
n = 1; // just reply...
|
||||
else
|
||||
{
|
||||
nonblock(threads[tid].clients[i]);
|
||||
FD_ZERO(&read_mask);
|
||||
FD_SET(threads[tid].clients[i], &read_mask);
|
||||
|
||||
select_return = select(threads[tid].clients[i], &read_mask, (fd_set *)0, (fd_set *)0, &tv);
|
||||
|
||||
if(select_return <= 0) /* [timeout=0, -1= ERROR] is returned */
|
||||
{
|
||||
n=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer_size=configuration->mapPort2Buffer(original_port);
|
||||
n = recv(threads[tid].clients[i],buffer,buffer_size, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// deal with different recv buffer size
|
||||
if(n == 0){
|
||||
|
Loading…
Reference in New Issue
Block a user