mirror of
https://github.com/drk1wi/portspoof.git
synced 2024-06-30 18:51:39 +00:00
fix
This commit is contained in:
parent
d138f267d3
commit
aeb0033585
@ -43,6 +43,30 @@
|
||||
#include "connection.h"
|
||||
#include "Configuration.h"
|
||||
|
||||
/*
|
||||
ipstr has to be of length INET_ADDRSTRLEN
|
||||
or INET6_ADDRSTRLEN
|
||||
*/
|
||||
int get_ipstr(int fd, char *ipstr)
|
||||
{
|
||||
socklen_t len;
|
||||
struct sockaddr_storage addr;
|
||||
|
||||
len = sizeof(struct sockaddr_storage);
|
||||
getpeername(fd, (struct sockaddr *)&addr, &len);
|
||||
|
||||
if (addr.ss_family == AF_INET)
|
||||
{
|
||||
struct sockaddr_in *s = (struct sockaddr_in *)&addr;
|
||||
inet_ntop(AF_INET, &s->sin_addr, ipstr, INET_ADDRSTRLEN);
|
||||
}
|
||||
else
|
||||
{ // AF_INET6
|
||||
struct sockaddr_in6 *s = (struct sockaddr_in6 *)&addr;
|
||||
inet_ntop(AF_INET6, &s->sin6_addr, ipstr, INET6_ADDRSTRLEN);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void nonblock(int sockfd)
|
||||
{
|
||||
@ -64,7 +88,6 @@ void nonblock(int sockfd)
|
||||
void* process_connection(void *arg)
|
||||
{
|
||||
int tid = *((int*)(&arg));
|
||||
//int len;
|
||||
string str;
|
||||
char buffer[1000];//TODO: to be fixed
|
||||
int original_port=DEFAULT_PORT;
|
||||
@ -73,6 +96,8 @@ void* process_connection(void *arg)
|
||||
struct sockaddr_in peer_sockaddr;
|
||||
int peer_sockaddr_len=sizeof(struct sockaddr_in);
|
||||
char* msg;
|
||||
char ipstr[INET6_ADDRSTRLEN];
|
||||
memset(ipstr, '\0', INET6_ADDRSTRLEN);
|
||||
|
||||
while(1) {
|
||||
|
||||
@ -104,13 +129,14 @@ void* process_connection(void *arg)
|
||||
}
|
||||
else
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
get_ipstr(threads[tid].clients[i], ipstr);
|
||||
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",ipstr,original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
Utils::log_write(configuration,msg);
|
||||
free(msg);
|
||||
//
|
||||
@ -152,13 +178,14 @@ void* process_connection(void *arg)
|
||||
}
|
||||
else
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
get_ipstr(threads[tid].clients[i], ipstr);
|
||||
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
msg =(char*)malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,ipstr,original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
Utils::log_write(configuration,msg);
|
||||
free(msg);
|
||||
//
|
||||
@ -183,6 +210,8 @@ void* process_connection(void *arg)
|
||||
// Linux
|
||||
if ( getsockopt (threads[tid].clients[i], SOL_IP, SO_ORIGINAL_DST, (struct sockaddr*)&peer_sockaddr, (socklen_t*) &peer_sockaddr_len ))
|
||||
perror("Getsockopt failed");
|
||||
|
||||
get_ipstr(threads[tid].clients[i], ipstr);
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
//
|
||||
#endif
|
||||
@ -190,7 +219,7 @@ void* process_connection(void *arg)
|
||||
//LOG
|
||||
char* msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Service_probe # SIGNATURE_SEND # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Service_probe # SIGNATURE_SEND # source_ip:%s # dst_port:%d \n",(int)timestamp,ipstr,original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
Utils::log_write(configuration,msg);
|
||||
free(msg);
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user