|
|
@@ -15,6 +15,7 @@ int about_to_exit=0;
|
|
|
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;
|
|
|
+int force_socket_buf=0;
|
|
|
|
|
|
static int random_number_fd=-1;
|
|
|
string iptables_pattern="";
|
|
|
@@ -328,16 +329,32 @@ unsigned short csum(const unsigned short *ptr,int nbytes) {//works both for big
|
|
|
|
|
|
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 socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno));
|
|
|
- myexit(1);
|
|
|
- }
|
|
|
- if(setsockopt(fd, SOL_SOCKET, SO_RCVBUFFORCE, &socket_buf_size, sizeof(socket_buf_size))<0)
|
|
|
- {
|
|
|
- mylog(log_fatal,"SO_RCVBUFFORCE fail socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno));
|
|
|
- myexit(1);
|
|
|
- }
|
|
|
+ if(force_socket_buf)
|
|
|
+ {
|
|
|
+ if(setsockopt(fd, SOL_SOCKET, SO_SNDBUFFORCE, &socket_buf_size, sizeof(socket_buf_size))<0)
|
|
|
+ {
|
|
|
+ mylog(log_fatal,"SO_SNDBUFFORCE fail socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno));
|
|
|
+ myexit(1);
|
|
|
+ }
|
|
|
+ if(setsockopt(fd, SOL_SOCKET, SO_RCVBUFFORCE, &socket_buf_size, sizeof(socket_buf_size))<0)
|
|
|
+ {
|
|
|
+ mylog(log_fatal,"SO_RCVBUFFORCE fail socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno));
|
|
|
+ myexit(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &socket_buf_size, sizeof(socket_buf_size))<0)
|
|
|
+ {
|
|
|
+ mylog(log_fatal,"SO_SNDBUF fail socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno));
|
|
|
+ myexit(1);
|
|
|
+ }
|
|
|
+ if(setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &socket_buf_size, sizeof(socket_buf_size))<0)
|
|
|
+ {
|
|
|
+ mylog(log_fatal,"SO_RCVBUF fail socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno));
|
|
|
+ myexit(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
return 0;
|
|
|
}
|
|
|
|