Skip to content

Commit cf4631c

Browse files
authored
Preserve cert name through ssl vc migration (#6977)
1 parent cd7d9ff commit cf4631c

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

iocore/net/UnixNetVConnection.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,8 +1394,9 @@ UnixNetVConnection::migrateToCurrentThread(Continuation *cont, EThread *t)
13941394
hold_con.move(this->con);
13951395
SSLNetVConnection *sslvc = dynamic_cast<SSLNetVConnection *>(this);
13961396

1397-
SSL *save_ssl = (sslvc) ? sslvc->ssl : nullptr;
1398-
if (save_ssl) {
1397+
SSL *save_ssl = nullptr;
1398+
if (sslvc) {
1399+
save_ssl = sslvc->ssl;
13991400
SSLNetVCDetach(sslvc->ssl);
14001401
sslvc->ssl = nullptr;
14011402
}
@@ -1409,7 +1410,7 @@ UnixNetVConnection::migrateToCurrentThread(Continuation *cont, EThread *t)
14091410
// Create new VC:
14101411
UnixNetVConnection *netvc = nullptr;
14111412
if (save_ssl) {
1412-
SSLNetVConnection *sslvc = static_cast<SSLNetVConnection *>(sslNetProcessor.allocate_vc(t));
1413+
sslvc = static_cast<SSLNetVConnection *>(sslNetProcessor.allocate_vc(t));
14131414
if (sslvc->populate(hold_con, cont, save_ssl) != EVENT_DONE) {
14141415
sslvc->do_io_close();
14151416
sslvc = nullptr;
@@ -1427,6 +1428,9 @@ UnixNetVConnection::migrateToCurrentThread(Continuation *cont, EThread *t)
14271428
netvc->set_context(get_context());
14281429
}
14291430
}
1431+
if (netvc) {
1432+
netvc->options = this->options;
1433+
}
14301434
// Do not mark this closed until the end so it does not get freed by the other thread too soon
14311435
this->do_io_close();
14321436
return netvc;

0 commit comments

Comments
 (0)