Files
metasploit-gs/lib/rex/service.rb
T

50 lines
898 B
Ruby
Raw Normal View History

# -*- coding: binary -*-
2005-08-22 04:34:40 +00:00
require 'rex'
require 'rex/proto'
module Rex
###
#
# The service module is used to extend classes that are passed into the
# service manager start routine. It provides extra methods, such as reference
# counting, that are used to track the service instances more uniformly.
#
###
module Service
2013-08-30 16:28:33 -05:00
include Ref
2013-08-30 16:28:33 -05:00
require 'rex/services/local_relay'
2005-09-29 20:18:24 +00:00
2013-08-30 16:28:33 -05:00
#
# Returns the hardcore, as in porno, alias for this service. This is used
# by the service manager to manage singleton services.
#
def self.hardcore_alias(*args)
return "__#{args}"
end
2013-08-30 16:28:33 -05:00
def deref
rv = super
2013-08-30 16:28:33 -05:00
# If there's only one reference, then it's the service managers.
if @_references == 1
Rex::ServiceManager.stop_service(self)
end
2013-08-30 16:28:33 -05:00
rv
end
2013-08-30 16:28:33 -05:00
#
# Calls stop on the service once the ref count drops.
#
def cleanup
stop
end
2005-09-29 20:18:24 +00:00
2013-08-30 16:28:33 -05:00
attr_accessor :alias
2005-09-29 20:18:24 +00:00
2005-08-22 04:34:40 +00:00
end
2012-04-15 23:35:38 -05:00
end