Guest User

Untitled

a guest
Jan 5th, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. TSTextLogObject logger;
  2.  
  3. std::atomic_bool in_progress;
  4.  
  5. void foo(void* data) {
  6. TSTextLogObjectWrite(logger, "begin thread");
  7. TSVConn ssl_vc = reinterpret_cast<TSVConn>(data);
  8.  
  9. std::chrono::milliseconds dura( 500 );
  10. std::this_thread::sleep_for( dura );
  11.  
  12. TSVConnTunnel(ssl_vc);
  13.  
  14. in_progress = false;
  15.  
  16. TSTextLogObjectWrite(logger, "end thread");
  17. }
  18.  
  19.  
  20. int CB_servername(TSCont contp, TSEvent event , void *edata) {
  21. TSVConn ssl_vc = reinterpret_cast<TSVConn>(edata);
  22. TSSslConnection sslobj = TSVConnSSLConnectionGet(ssl_vc);
  23. SSL *ssl = reinterpret_cast<SSL *>(sslobj);
  24. const char *servername = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name);
  25. TSTextLogObjectWrite(logger, "servername: %s, event %d", servername, event);
  26.  
  27. if (in_progress) {
  28. TSTextLogObjectWrite(logger, "in progress");
  29. } else {
  30. TSTextLogObjectWrite(logger, "start thread");
  31. std::thread t(foo, ssl_vc);
  32. t.detach();
  33.  
  34. in_progress = true;
  35. }
  36.  
  37. return TS_SUCCESS;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment