mirror of
				https://github.com/wangyu-/UDPspeeder.git
				synced 2025-11-04 11:55:37 +08:00 
			
		
		
		
	fix test, fix core
This commit is contained in:
		@@ -237,8 +237,11 @@ int conn_manager_t::exist(ip_port_t ip_port)
 | 
				
			|||||||
 int conn_manager_t::erase(unordered_map<u64_t,conn_info_t*>::iterator erase_it)
 | 
					 int conn_manager_t::erase(unordered_map<u64_t,conn_info_t*>::iterator erase_it)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
	 ////////todo  close and erase timer_fd ,check fd64 empty   ///dont need
 | 
						 ////////todo  close and erase timer_fd ,check fd64 empty   ///dont need
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		delete(erase_it->second);
 | 
							delete(erase_it->second);
 | 
				
			||||||
		mp.erase(erase_it->first);
 | 
							mp.erase(erase_it->first);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
int conn_manager_t::clear_inactive()
 | 
					int conn_manager_t::clear_inactive()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -112,7 +112,7 @@ struct conn_info_t     //stores info for a raw connection.for client ,there is o
 | 
				
			|||||||
	u64_t last_active_time;
 | 
						u64_t last_active_time;
 | 
				
			||||||
	stat_t stat;
 | 
						stat_t stat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ev_loop* loop;
 | 
						ev_loop* loop=0;
 | 
				
			||||||
	int local_listen_fd;
 | 
						int local_listen_fd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int remote_fd;  //only used for client
 | 
						int remote_fd;  //only used for client
 | 
				
			||||||
@@ -123,6 +123,12 @@ struct conn_info_t     //stores info for a raw connection.for client ,there is o
 | 
				
			|||||||
	conn_info_t()
 | 
						conn_info_t()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						~conn_info_t()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if(loop)
 | 
				
			||||||
 | 
								ev_timer_stop(loop,&timer);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	void update_active_time()
 | 
						void update_active_time()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		last_active_time=get_current_time();
 | 
							last_active_time=get_current_time();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -131,7 +131,7 @@ int blob_decode_t::output(int &n,char ** &s_arr,int *&len_arr)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
fec_encode_manager_t::~fec_encode_manager_t()
 | 
					fec_encode_manager_t::~fec_encode_manager_t()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	clear();
 | 
						clear_all();
 | 
				
			||||||
	//fd_manager.fd64_close(timer_fd64);
 | 
						//fd_manager.fd64_close(timer_fd64);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
@@ -168,8 +168,9 @@ int fec_encode_manager_t::reset_fec_parameter(int data_num,int redundant_num,int
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	assert(data_num+redundant_num<max_fec_packet_num);
 | 
						assert(data_num+redundant_num<max_fec_packet_num);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	clear();
 | 
						//clear();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						clear_data();
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
int fec_encode_manager_t::append(char *s,int len/*,int &is_first_packet*/)
 | 
					int fec_encode_manager_t::append(char *s,int len/*,int &is_first_packet*/)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -163,12 +163,23 @@ public:
 | 
				
			|||||||
		ev_init(&timer,cb);
 | 
							ev_init(&timer,cb);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int clear()
 | 
						int clear_data()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		counter=0;
 | 
							counter=0;
 | 
				
			||||||
		blob_encode.clear();
 | 
							blob_encode.clear();
 | 
				
			||||||
		ready_for_output=0;
 | 
							ready_for_output=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							seq=(u32_t)get_fake_random_number(); //TODO temp solution for a bug.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if(loop)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								ev_timer_stop(loop,&timer);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						int clear_all()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//itimerspec zero_its;
 | 
							//itimerspec zero_its;
 | 
				
			||||||
		//memset(&zero_its, 0, sizeof(zero_its));
 | 
							//memset(&zero_its, 0, sizeof(zero_its));
 | 
				
			||||||
		//timerfd_settime(timer_fd, TFD_TIMER_ABSTIME, &zero_its, 0);
 | 
							//timerfd_settime(timer_fd, TFD_TIMER_ABSTIME, &zero_its, 0);
 | 
				
			||||||
@@ -179,7 +190,8 @@ public:
 | 
				
			|||||||
			loop=0;
 | 
								loop=0;
 | 
				
			||||||
			cb=0;
 | 
								cb=0;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		seq=(u32_t)get_fake_random_number(); //TODO temp solution for a bug.
 | 
					
 | 
				
			||||||
 | 
							clear_data();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								misc.cpp
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								misc.cpp
									
									
									
									
									
								
							@@ -328,6 +328,10 @@ int handle_command(char *s)
 | 
				
			|||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void empty_cb(struct ev_loop *loop, struct ev_timer *watcher, int revents)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
int unit_test()
 | 
					int unit_test()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -435,6 +439,10 @@ int unit_test()
 | 
				
			|||||||
	static fec_encode_manager_t fec_encode_manager;
 | 
						static fec_encode_manager_t fec_encode_manager;
 | 
				
			||||||
	static fec_decode_manager_t fec_decode_manager;
 | 
						static fec_decode_manager_t fec_decode_manager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dynamic_update_fec=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fec_encode_manager.set_loop_and_cb(ev_default_loop(0),empty_cb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		string a = "11111";
 | 
							string a = "11111";
 | 
				
			||||||
@@ -510,6 +518,7 @@ int unit_test()
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						printf("ok here.\n");
 | 
				
			||||||
	for(int i=0;i<10;i++)
 | 
						for(int i=0;i<10;i++)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		string a = "aaaaaaaaaaaaaaaaaaaaaaa";
 | 
							string a = "aaaaaaaaaaaaaaaaaaaaaaa";
 | 
				
			||||||
@@ -528,6 +537,8 @@ int unit_test()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		fec_encode_manager.input((char *) a.c_str(), a.length());
 | 
							fec_encode_manager.input((char *) a.c_str(), a.length());
 | 
				
			||||||
		fec_encode_manager.output(n,s_arr,len);
 | 
							fec_encode_manager.output(n,s_arr,len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							printf("n=<%d>\n",n);
 | 
				
			||||||
		assert(n==1);
 | 
							assert(n==1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		fec_decode_manager.input(s_arr[0],len[0]);
 | 
							fec_decode_manager.input(s_arr[0],len[0]);
 | 
				
			||||||
@@ -575,7 +586,7 @@ int unit_test()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						myexit(0);
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -277,6 +277,8 @@ int tunnel_client_event_loop()
 | 
				
			|||||||
	struct ev_loop * loop= ev_default_loop(0);
 | 
						struct ev_loop * loop= ev_default_loop(0);
 | 
				
			||||||
	assert(loop != NULL);
 | 
						assert(loop != NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						conn_info.loop=loop;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//ev.events = EPOLLIN;
 | 
						//ev.events = EPOLLIN;
 | 
				
			||||||
	//ev.data.u64 = local_listen_fd;
 | 
						//ev.data.u64 = local_listen_fd;
 | 
				
			||||||
	//ret = epoll_ctl(epoll_fd, EPOLL_CTL_ADD, local_listen_fd, &ev);
 | 
						//ret = epoll_ctl(epoll_fd, EPOLL_CTL_ADD, local_listen_fd, &ev);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user