test if server connections succeed, if not drop the server from the list
This commit is contained in:
parent
6ca376c97c
commit
5c3f7de5c3
1 changed files with 22 additions and 7 deletions
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue