mirror of
https://github.com/wangyu-/udp2raw.git
synced 2025-01-19 14:29:34 +08:00
fixed clear function bug
This commit is contained in:
parent
deb466fa83
commit
5568a7e7e2
44
main.cpp
44
main.cpp
@ -177,6 +177,7 @@ struct sockaddr_in udp_old_addr_in;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
char key_string[1000]= "secret key";
|
||||||
char key[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 0,0,0,0};
|
char key[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 0,0,0,0};
|
||||||
|
|
||||||
char key2[16];
|
char key2[16];
|
||||||
@ -273,6 +274,9 @@ struct anti_replay_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return 0; //for complier check
|
||||||
}
|
}
|
||||||
}anti_replay;
|
}anti_replay;
|
||||||
|
|
||||||
@ -307,10 +311,10 @@ struct conv_manager_t
|
|||||||
if(clear_function!=0)
|
if(clear_function!=0)
|
||||||
{
|
{
|
||||||
map<uint32_t,uint64_t>::iterator it;
|
map<uint32_t,uint64_t>::iterator it;
|
||||||
for(it=conv_last_active_time.begin();it!=conv_last_active_time.end();it++)
|
for(it=conv_to_u64.begin();it!=conv_to_u64.end();it++)
|
||||||
{
|
{
|
||||||
int fd=int((it->second<<32u)>>32u);
|
//int fd=int((it->second<<32u)>>32u);
|
||||||
clear_function(fd);
|
clear_function( it->second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
u64_to_conv.clear();
|
u64_to_conv.clear();
|
||||||
@ -732,7 +736,7 @@ long long get_current_time()
|
|||||||
return tmp_time.tv_sec*1000+tmp_time.tv_nsec/(1000*1000l);
|
return tmp_time.tv_sec*1000+tmp_time.tv_nsec/(1000*1000l);
|
||||||
}
|
}
|
||||||
|
|
||||||
void server_clear(uint64_t u64)
|
void server_clear_function(uint64_t u64)
|
||||||
{
|
{
|
||||||
int fd=int((u64<<32u)>>32u);
|
int fd=int((u64<<32u)>>32u);
|
||||||
epoll_event ev;
|
epoll_event ev;
|
||||||
@ -744,11 +748,14 @@ void server_clear(uint64_t u64)
|
|||||||
if (ret!=0)
|
if (ret!=0)
|
||||||
{
|
{
|
||||||
printf("fd:%d epoll delete failed!!!!\n",fd);
|
printf("fd:%d epoll delete failed!!!!\n",fd);
|
||||||
|
exit(-1); //this shouldnt happen
|
||||||
}
|
}
|
||||||
ret= close(fd);
|
ret= close(fd);
|
||||||
|
|
||||||
if (ret!=0)
|
if (ret!=0)
|
||||||
{
|
{
|
||||||
printf("close fd %d failed !!!!\n",fd);
|
printf("close fd %d failed !!!!\n",fd);
|
||||||
|
exit(-1); //this shouldnt happen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -760,6 +767,7 @@ void process_arg(int argc, char *argv[])
|
|||||||
/* These options set a flag. */
|
/* These options set a flag. */
|
||||||
{"source-ip", required_argument, 0, 1},
|
{"source-ip", required_argument, 0, 1},
|
||||||
{"source-port", required_argument, 0, 1},
|
{"source-port", required_argument, 0, 1},
|
||||||
|
{"key", required_argument, 0, 'k'},
|
||||||
};
|
};
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
printf("argc=%d ", argc);
|
printf("argc=%d ", argc);
|
||||||
@ -821,6 +829,11 @@ void process_arg(int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'k':
|
||||||
|
printf("parsing key option\n");
|
||||||
|
sscanf(optarg,"%s",key_string);
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if(strcmp(long_options[option_index].name,"source-ip")==0)
|
if(strcmp(long_options[option_index].name,"source-ip")==0)
|
||||||
{
|
{
|
||||||
@ -3093,7 +3106,7 @@ int server_event_loop()
|
|||||||
{
|
{
|
||||||
char buf[buf_len];
|
char buf[buf_len];
|
||||||
|
|
||||||
conv_manager.set_clear_function(server_clear);
|
conv_manager.set_clear_function(server_clear_function);
|
||||||
int i, j, k;int ret;
|
int i, j, k;int ret;
|
||||||
|
|
||||||
//g_packet_info_send.src_ip=inet_addr(local_address);
|
//g_packet_info_send.src_ip=inet_addr(local_address);
|
||||||
@ -3174,7 +3187,7 @@ int server_event_loop()
|
|||||||
if(!conv_manager.is_u64_used(events[n].data.u64))
|
if(!conv_manager.is_u64_used(events[n].data.u64))
|
||||||
{
|
{
|
||||||
printf("conv %x no longer exists\n",conv_id);
|
printf("conv %x no longer exists\n",conv_id);
|
||||||
//int recv_len=recv(fd,buf,buf_len,0); ///////////TODO ,delete this
|
int recv_len=recv(fd,buf,buf_len,0); ///////////TODO ,delete this
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3282,12 +3295,29 @@ int main(int argc, char *argv[])
|
|||||||
source_address_uint32=inet_addr(source_address);
|
source_address_uint32=inet_addr(source_address);
|
||||||
|
|
||||||
|
|
||||||
|
char tmp[1000]="";
|
||||||
|
|
||||||
|
strcat(tmp,key);
|
||||||
|
|
||||||
|
strcat(tmp,"key1");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
md5((uint8_t*)tmp,strlen(tmp),(uint8_t*)key);
|
||||||
|
|
||||||
|
tmp[0]=0;
|
||||||
|
|
||||||
|
strcat(tmp,key);
|
||||||
|
|
||||||
|
strcat(tmp,"key2");
|
||||||
|
|
||||||
|
md5((uint8_t*)tmp,strlen(tmp),(uint8_t*)key2);
|
||||||
|
|
||||||
|
/*
|
||||||
for(int i=0;i<16;i++)
|
for(int i=0;i<16;i++)
|
||||||
{
|
{
|
||||||
key2[i]=key[i]+1;
|
key2[i]=key[i]+1;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if(prog_mode==client_mode)
|
if(prog_mode==client_mode)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user