prepare work for auto add iptables rule

This commit is contained in:
wangyu
2017-08-04 11:51:39 +08:00
committed by wangyu
parent 1fba601d9c
commit 5cf4cc7cb2
4 changed files with 105 additions and 71 deletions

View File

@@ -13,7 +13,7 @@ raw_mode_t raw_mode=mode_faketcp;
unordered_map<int, const char*> raw_mode_tostring = {{mode_faketcp, "faketcp"}, {mode_udp, "udp"}, {mode_icmp, "icmp"}};
int socket_buf_size=1024*1024;
static int random_number_fd=-1;
char iptables_rule[200];
uint64_t get_current_time()
{
@@ -46,7 +46,15 @@ char * my_ntoa(uint32_t ip)
}
int add_iptables_rule(char *)
{
return 0;
}
int remove_iptables_rule(char *)
{
return 0;
}
void init_random_number_fd()
@@ -57,7 +65,7 @@ void init_random_number_fd()
if(random_number_fd==-1)
{
mylog(log_fatal,"error open /dev/urandom\n");
exit(-1);
myexit(-1);
}
setnonblocking(random_number_fd);
}
@@ -68,7 +76,7 @@ uint64_t get_true_random_number_64()
if(size!=sizeof(ret))
{
mylog(log_fatal,"get random number failed\n",size);
exit(-1);
myexit(-1);
}
return ret;
@@ -80,7 +88,7 @@ uint32_t get_true_random_number()
if(size!=sizeof(ret))
{
mylog(log_fatal,"get random number failed\n",size);
exit(-1);
myexit(-1);
}
return ret;
}
@@ -119,13 +127,13 @@ void setnonblocking(int sock) {
if (opts < 0) {
mylog(log_fatal,"fcntl(sock,GETFL)\n");
//perror("fcntl(sock,GETFL)");
exit(1);
myexit(1);
}
opts = opts | O_NONBLOCK;
if (fcntl(sock, F_SETFL, opts) < 0) {
mylog(log_fatal,"fcntl(sock,SETFL,opts)\n");
//perror("fcntl(sock,SETFL,opts)");
exit(1);
myexit(1);
}
}
@@ -161,21 +169,26 @@ int set_buf_size(int fd)
if(setsockopt(fd, SOL_SOCKET, SO_SNDBUFFORCE, &socket_buf_size, sizeof(socket_buf_size))<0)
{
mylog(log_fatal,"SO_SNDBUFFORCE fail\n");
exit(1);
myexit(1);
}
if(setsockopt(fd, SOL_SOCKET, SO_RCVBUFFORCE, &socket_buf_size, sizeof(socket_buf_size))<0)
{
mylog(log_fatal,"SO_RCVBUFFORCE fail\n");
exit(1);
myexit(1);
}
return 0;
}
void myexit(int a)
{
if(enable_log_color)
printf(RESET);
exit(a);
}
void INThandler(int sig)
{
if(enable_log_color)
printf(RESET);
exit(0);
myexit(0);
}
int numbers_to_char(id_t id1,id_t id2,id_t id3,char * &data,int &len)