main.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "common.h"
  2. #include "log.h"
  3. #include "lib/rs.h"
  4. #include "packet.h"
  5. #include "connection.h"
  6. #include "fd_manager.h"
  7. #include "delay_manager.h"
  8. #include "fec_manager.h"
  9. #include "misc.h"
  10. #include "tunnel.h"
  11. #include "tun_dev.h"
  12. using namespace std;
  13. int main(int argc, char *argv[])
  14. {
  15. //working_mode=tunnel_mode;
  16. assert(sizeof(u64_t)==8);
  17. assert(sizeof(i64_t)==8);
  18. assert(sizeof(u32_t)==4);
  19. assert(sizeof(i32_t)==4);
  20. assert(sizeof(u16_t)==2);
  21. assert(sizeof(i16_t)==2);
  22. dup2(1, 2); //redirect stderr to stdout
  23. int i, j, k;
  24. process_arg(argc,argv);
  25. delay_manager.set_capacity(delay_capacity);
  26. local_ip_uint32=inet_addr(local_ip);
  27. remote_ip_uint32=inet_addr(remote_ip);
  28. sub_net_uint32=inet_addr(sub_net);
  29. if(strlen(tun_dev)==0)
  30. {
  31. sprintf(tun_dev,"tun%u",get_true_random_number()%1000);
  32. }
  33. if(working_mode==tunnel_mode)
  34. {
  35. if(client_or_server==client_mode)
  36. {
  37. tunnel_client_event_loop();
  38. }
  39. else
  40. {
  41. tunnel_server_event_loop();
  42. }
  43. }
  44. else
  45. {
  46. //disable_fec=1;
  47. if(client_or_server==client_mode)
  48. {
  49. tun_dev_client_event_loop();
  50. }
  51. else
  52. {
  53. tun_dev_server_event_loop();
  54. }
  55. }
  56. return 0;
  57. }