Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TSTextLogObject logger;
- std::atomic_bool in_progress;
- void foo(void* data) {
- TSTextLogObjectWrite(logger, "begin thread");
- TSVConn ssl_vc = reinterpret_cast<TSVConn>(data);
- std::chrono::milliseconds dura( 500 );
- std::this_thread::sleep_for( dura );
- TSVConnTunnel(ssl_vc);
- in_progress = false;
- TSTextLogObjectWrite(logger, "end thread");
- }
- int CB_servername(TSCont contp, TSEvent event , void *edata) {
- TSVConn ssl_vc = reinterpret_cast<TSVConn>(edata);
- TSSslConnection sslobj = TSVConnSSLConnectionGet(ssl_vc);
- SSL *ssl = reinterpret_cast<SSL *>(sslobj);
- const char *servername = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name);
- TSTextLogObjectWrite(logger, "servername: %s, event %d", servername, event);
- if (in_progress) {
- TSTextLogObjectWrite(logger, "in progress");
- } else {
- TSTextLogObjectWrite(logger, "start thread");
- std::thread t(foo, ssl_vc);
- t.detach();
- in_progress = true;
- }
- return TS_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment