test if server connections succeed, if not drop the server from the list

This commit is contained in:
Ward Wouts 2002-05-18 17:39:32 +00:00
parent 6ca376c97c
commit 5c3f7de5c3

View file

@ -29,18 +29,31 @@ def initialize(nntpservers, groupname, newsrc="~/.newsrc")
@connections = {}
@serverlist.collect{|server|
@connections[server] = {}
begin
@connections[server]["nntp"] = Net::NNTP.new(server)
@connections[server]["skip_ids"] = Set::IntSpan.new()
@connections[server]["newsrc"] = News::Newsrc.new("#{newsrc}.#{server}")
set_skip_ids(server, @connections[server]["newsrc"].marked_articles(@group))
print "Connection type: #{@connections[server]["nntp"].type.to_s}\n"
rescue SocketError
print "Connection to #{server} failed, removing from server list...\n"
@connections.delete(server)
@serverlist.delete(server)
end
}
end
def reconnect(server)
print "Trying to reconnect to #{server}...\n"
begin
@connections[server]["nntp"] = Net::NNTP.new(server)
print "Connection type: #{@connections[server]["nntp"].type.to_s}\n"
rescue SocketError
print "Connection to #{server} failed, removing from server list...\n"
@connections.delete(server)
@serverlist.delete(server)
return false
end
print "Succesfully reconnected to #{server}\n"
return true
end
def add(messid, id, server, subject)
@ -118,6 +131,8 @@ def get_articles(cachedir=false)
end
end
rescue Net::NNTP::RuntimeError
print "Caught Net::NNTP::RuntimeError reading from server #{server}\n"
print "Error: #{$!}\n"
rescue Errno::EPIPE, Errno::ECONNRESET
print "Caught Errno::EPIPE reading from server #{server}\n"
print "Error: #{$!}\n"