def start
begin
@callback_server = XMLRPC::Server.new( @port, @ip, 4, @audit, false )
@audit.debug( "CallBackServer started")
rescue => e
msg = e.message + ": " + e.backtrace.join("\n")
@audit.error( "CallBackServer: Could not create XMLRPC Server: " + msg)
return false
end
@thread = Thread.new( @port, @callback_instance ) { | port, callback_instance |
Thread.current['name'] = "MOM-CallbackServer"
STDOUT.sync = true
if @callback_server then
@audit.debug( "MOM-CallBackServer: " + @callback_url )
@callback_server.add_handler("ping") do |name, *args|
@callback_instance.ping( *args )
end
@callback_server.add_handler("update") do |name, *args|
@callback_instance.update( *args )
end
@callback_server.set_default_handler do |name, *args|
raise XMLRPC::FaultException.new(-99, "MOM-CallBackServer: Method #{name} missing or wrong number of parameters!")
end
@audit.debug( "MOM-CallBackServer: XMLRPC Server serving." )
@callback_server.serve()
else
return false
end
}
return true
end