mirror of
https://github.com/wangyu-/UDPspeeder.git
synced 2025-01-31 12:19:35 +08:00
fix test, fix core
This commit is contained in:
parent
d355031613
commit
8827c8469c
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user