Problem was not here but in swissbrowser; closes #25
This commit is contained in:
		| @@ -79,11 +79,7 @@ namespace openssl { | ||||
|       } | ||||
|       virtual ~Engine() { | ||||
|         OPENSSL_LOG("log"); | ||||
|         if (_e) { | ||||
|           OPENSSL_LOG("free the engine"); | ||||
|           OPENSSL_CHECK(ENGINE_free(_e)); | ||||
|           _e = 0; | ||||
|         } | ||||
|         OPENSSL_CHECK(ENGINE_free(_e)); | ||||
|       } | ||||
|       virtual const char* id() = 0; | ||||
|       virtual const char* name() = 0; | ||||
| @@ -149,8 +145,7 @@ namespace openssl { | ||||
|         _map[e->_e] = e; | ||||
|         OPENSSL_CHECK(ENGINE_set_id(e->_e, e->id())); | ||||
|         OPENSSL_CHECK(ENGINE_set_name(e->_e, e->name())); | ||||
|         OPENSSL_CHECK(ENGINE_set_destroy_function | ||||
|                       (e->_e, EngineMapper::destroy)); | ||||
|         OPENSSL_CHECK(ENGINE_set_destroy_function(e->_e, EngineMapper::destroy)); | ||||
|         OPENSSL_CHECK(ENGINE_set_init_function(e->_e, EngineMapper::init)); | ||||
|         OPENSSL_CHECK(ENGINE_set_finish_function(e->_e, EngineMapper::finish)); | ||||
|         OPENSSL_CHECK(ENGINE_set_ctrl_function(e->_e, EngineMapper::ctrl)); | ||||
| @@ -172,16 +167,10 @@ namespace openssl { | ||||
|       } | ||||
|  | ||||
|       static void remove(Engine *e) { | ||||
|         OPENSSL_LOG("log"); | ||||
|         if (e) { | ||||
|           OPENSSL_LOG("call remove: e->_e = "<<((void*)e->_e)); | ||||
|           OPENSSL_CHECK(ENGINE_remove(e->_e)); | ||||
|           OPENSSL_LOG("call finish"); | ||||
|           OPENSSL_CHECK(ENGINE_finish(e->_e)); | ||||
|           OPENSSL_LOG("erase from map"); | ||||
|           _map.erase(e->_e); | ||||
|           delete e; e=0; | ||||
|         } | ||||
|         OPENSSL_CHECK(ENGINE_remove(e->_e)); | ||||
|         OPENSSL_CHECK(ENGINE_finish(e->_e)); | ||||
|         _map.erase(e->_e); | ||||
|         delete e; | ||||
|       } | ||||
|        | ||||
|     private: | ||||
| @@ -198,7 +187,6 @@ namespace openssl { | ||||
|       static int finish(ENGINE* e) { | ||||
|         OPENSSL_LOG("log"); | ||||
|         Map::iterator it(_map.find(e)); | ||||
|         OPENSSL_LOG("finish: "<<(it!=_map.end()?"true":"false")); | ||||
|         return it!=_map.end()?it->second->finish():0; | ||||
|       } | ||||
|       static int ctrl(ENGINE* e, int cmd, long i, void* p, void(*f)()) { | ||||
| @@ -295,30 +283,24 @@ namespace openssl { | ||||
|   template <class ENGINE=Engine> class RegisterEngine { | ||||
|     public: | ||||
|       RegisterEngine(ENGINE* e = 0): _e(e) { | ||||
|         OPENSSL_LOG("log"); | ||||
|         if (_e) EngineMapper::add(_e); | ||||
|       } | ||||
|       ~RegisterEngine() { | ||||
|         OPENSSL_LOG("log"); | ||||
|         if (_e) EngineMapper::remove(_e); | ||||
|       } | ||||
|       RegisterEngine& operator=(ENGINE* e) { | ||||
|         OPENSSL_LOG("log"); | ||||
|         if (_e) EngineMapper::remove(_e); | ||||
|         _e = e; | ||||
|         if (_e) EngineMapper::add(_e); | ||||
|         return *this; | ||||
|       } | ||||
|       operator ENGINE*() { | ||||
|         OPENSSL_LOG("log"); | ||||
|         return _e; | ||||
|       } | ||||
|        ENGINE* operator->() { | ||||
|         OPENSSL_LOG("log"); | ||||
|         return _e; | ||||
|       } | ||||
|        ENGINE& operator*() { | ||||
|         OPENSSL_LOG("log"); | ||||
|         return *_e; | ||||
|       } | ||||
|     private: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user