def call_unauth_method(method,args={})
debug('%s(%s)', method, args.inspect)
tries = 3
args = args.dup
args['api_key'] = @api_key
api_sig=sign(args)
args['api_sig']=api_sig
begin
tries -= 1;
str = @async ? @client.call_async(method,args) :
@client.call(method,args)
debug('RETURN: %s',str)
return REXML::Document.new(str)
rescue Timeout::Error => te
$stderr.puts "Timed out, will try #{tries} more times."
if tries > 0
retry
else
raise te
end
rescue REXML::ParseException => pe
return REXML::Document.new('<rsp>'+str+'</rsp>').
elements['/rsp']
rescue XMLRPC::FaultException => fe
$stderr.puts "ERR: #{fe.faultString} (#{fe.faultCode})"
raise fe
end
end