Это должно быть:
$when(((tdata.Age == "" ) & (tdata.Survived == "0")), mean_age_0)
После того, как квитирование завершено, можно получить клиентский сертификат. В то время как клиентский сертификат также доступен в проверить обратном вызове (verify_cb), нет действительно никакой причины попытаться сделать, что-либо кроме проверяет сертификат в том обратном вызове. Установка специализированного отображения лучше сделана после того, как квитирование имеет полностью успешно. Так, рассмотрите использование экземпляра OpenSSL.SSL.Connection, возвращенного принять методом, чтобы получить сертификат (и оттуда, commonName) и связать его с объектом соединения в той точке. Например,
client, clientAddress = self.server.accept()
client.do_handshake()
commonNamesToConnections[client.get_peer_certificate().commonName] = client
Вы могли бы хотеть проверить отображение, чтобы удостовериться, что Вы не перезаписываете существующего соединения (возможно, использующий список соединений вместо того, чтобы просто отобразить каждое общее название на одно). И конечно необходимо удалить записи, когда соединения потеряны.
Вызов 'do_handshake' вынуждает квитирование на самом деле произойти. Без этого произойдет квитирование, когда данные приложения будут сначала переданы по соединению. Это прекрасно, но это установило бы настройку это немного более сложное отображение.