Skip to content

Commit 1822578

Browse files
author
Brent Cook
committed
cleanup HTTP and HTTPS listeners when sessions are closed
Rather than listening forever after a session shuts down, close the session if there are no other URI's registered on the listener. This allows reconfiguring the listener without restarting framework, but should be safe for situations where multiple modules share the same listener.
1 parent 3300845 commit 1822578

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ def shutdown_passive_dispatcher
8181
return if not self.passive_service
8282
self.passive_service.remove_resource("/" + self.conn_id + "/")
8383

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
88+
8489
self.alive = false
8590
self.send_queue = []
8691
self.recv_queue = []

0 commit comments

Comments
 (0)