Skip to content

Commit 85ba60b

Browse files
committed
Land rapid7#5138 : Cleanup http(s) sessions when all closed
2 parents bba0927 + 3107d99 commit 85ba60b

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

lib/msf/core/handler/reverse_http.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,9 @@ def setup_handler
165165
def stop_handler
166166
if self.service
167167
self.service.remove_resource("/")
168-
Rex::ServiceManager.stop_service(self.service) if self.sessions == 0
168+
if self.service.resources.empty? && self.sessions == 0
169+
Rex::ServiceManager.stop_service(self.service)
170+
end
169171
end
170172
end
171173

lib/rex/post/meterpreter/packet_dispatcher.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,12 @@ def initialize_passive_dispatcher
7979

8080
def shutdown_passive_dispatcher
8181
return if not self.passive_service
82-
self.passive_service.remove_resource("/" + self.conn_id + "/")
82+
self.passive_service.remove_resource(self.conn_id + "/")
83+
84+
# If there are no more resources registered on the service, stop it entirely
85+
if self.passive_service.resources.empty?
86+
Rex::ServiceManager.stop_service(self.passive_service)
87+
end
8388

8489
self.alive = false
8590
self.send_queue = []

0 commit comments

Comments
 (0)