# # # patch "ssh_agent.cc" # from [57257c462118c2c367ee8efcf4eea21a4b8dada0] # to [4f19a6635327144f22abf323c412491b964e4407] # # patch "ssh_agent.hh" # from [14b303b637b817e42114384e9b2b943efb21622b] # to [72cb4b38cd4e955640abe9ead4d9f51644fbe2f7] # ============================================================ --- ssh_agent.cc 57257c462118c2c367ee8efcf4eea21a4b8dada0 +++ ssh_agent.cc 4f19a6635327144f22abf323c412491b964e4407 @@ -15,6 +15,11 @@ ssh_agent::ssh_agent() connect(); } +ssh_agent::~ssh_agent() +{ + disconnect(); +} + bool ssh_agent::connect() { @@ -54,6 +59,14 @@ ssh_agent::connect() stream = shared_ptr(new Stream(sock)); } +void +ssh_agent::disconnect() +{ + if (connected()) { + stream->close(); + } +} + bool ssh_agent::connected() { ============================================================ --- ssh_agent.hh 14b303b637b817e42114384e9b2b943efb21622b +++ ssh_agent.hh 72cb4b38cd4e955640abe9ead4d9f51644fbe2f7 @@ -19,7 +19,9 @@ public: { public: ssh_agent(); + ~ssh_agent(); bool connect(); + void disconnect(); bool connected(); vector const get_keys(); void sign_data(RSA_PublicKey const & key, string const & data, string & out);