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 = {}
|
@connections = {}
|
||||||
@serverlist.collect{|server|
|
@serverlist.collect{|server|
|
||||||
@connections[server] = {}
|
@connections[server] = {}
|
||||||
@connections[server]["nntp"] = Net::NNTP.new(server)
|
begin
|
||||||
@connections[server]["skip_ids"] = Set::IntSpan.new()
|
@connections[server]["nntp"] = Net::NNTP.new(server)
|
||||||
@connections[server]["newsrc"] = News::Newsrc.new("#{newsrc}.#{server}")
|
@connections[server]["skip_ids"] = Set::IntSpan.new()
|
||||||
set_skip_ids(server, @connections[server]["newsrc"].marked_articles(@group))
|
@connections[server]["newsrc"] = News::Newsrc.new("#{newsrc}.#{server}")
|
||||||
print "Connection type: #{@connections[server]["nntp"].type.to_s}\n"
|
set_skip_ids(server, @connections[server]["newsrc"].marked_articles(@group))
|
||||||
|
rescue SocketError
|
||||||
|
print "Connection to #{server} failed, removing from server list...\n"
|
||||||
|
@connections.delete(server)
|
||||||
|
@serverlist.delete(server)
|
||||||
|
end
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def reconnect(server)
|
def reconnect(server)
|
||||||
print "Trying to reconnect to #{server}...\n"
|
print "Trying to reconnect to #{server}...\n"
|
||||||
@connections[server]["nntp"] = Net::NNTP.new(server)
|
begin
|
||||||
print "Connection type: #{@connections[server]["nntp"].type.to_s}\n"
|
@connections[server]["nntp"] = Net::NNTP.new(server)
|
||||||
|
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
|
end
|
||||||
|
|
||||||
def add(messid, id, server, subject)
|
def add(messid, id, server, subject)
|
||||||
|
|
@ -118,6 +131,8 @@ def get_articles(cachedir=false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
rescue Net::NNTP::RuntimeError
|
rescue Net::NNTP::RuntimeError
|
||||||
|
print "Caught Net::NNTP::RuntimeError reading from server #{server}\n"
|
||||||
|
print "Error: #{$!}\n"
|
||||||
rescue Errno::EPIPE, Errno::ECONNRESET
|
rescue Errno::EPIPE, Errno::ECONNRESET
|
||||||
print "Caught Errno::EPIPE reading from server #{server}\n"
|
print "Caught Errno::EPIPE reading from server #{server}\n"
|
||||||
print "Error: #{$!}\n"
|
print "Error: #{$!}\n"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue