- killed a nasty bug where ripnews would try to get articles from
deleted servers - a bit clearer error messages
This commit is contained in:
parent
ad42b06329
commit
01a068ecaa
1 changed files with 23 additions and 7 deletions
|
|
@ -45,7 +45,7 @@ def initialize(nntpservers, groupname, newsrc="~/.newsrc")
|
||||||
@connections[server]["newsrc"] = News::Newsrc.new("#{newsrc}.#{server}")
|
@connections[server]["newsrc"] = News::Newsrc.new("#{newsrc}.#{server}")
|
||||||
set_skip_ids(server, @connections[server]["newsrc"].marked_articles(@group))
|
set_skip_ids(server, @connections[server]["newsrc"].marked_articles(@group))
|
||||||
rescue SocketError, Errno::EINVAL
|
rescue SocketError, Errno::EINVAL
|
||||||
print "Connection to #{server} failed\n"
|
print "Connection to #{server} failed: #{$!}\n"
|
||||||
del_server(server)
|
del_server(server)
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
@ -55,7 +55,7 @@ def reconnect(server)
|
||||||
begin
|
begin
|
||||||
@connections[server]["nntp"] = Net::NNTP.new(server)
|
@connections[server]["nntp"] = Net::NNTP.new(server)
|
||||||
rescue SocketError
|
rescue SocketError
|
||||||
print "Reconnect to #{server} failed\n"
|
print "Reconnect to #{server} failed: #{$!}\n"
|
||||||
del_server(server)
|
del_server(server)
|
||||||
raise PermError, "Couldn't connect to #{server}"
|
raise PermError, "Couldn't connect to #{server}"
|
||||||
end
|
end
|
||||||
|
|
@ -77,8 +77,23 @@ end
|
||||||
|
|
||||||
def del_server(server)
|
def del_server(server)
|
||||||
print "Removing server #{server} from list\n"
|
print "Removing server #{server} from list\n"
|
||||||
|
dellist = []
|
||||||
@connections.delete(server)
|
@connections.delete(server)
|
||||||
@serverlist.delete(server)
|
@serverlist.delete(server)
|
||||||
|
print "@servers.length #{@servers.length}\n"
|
||||||
|
for i in (0...@servers.length)
|
||||||
|
dellist.push(i)
|
||||||
|
end
|
||||||
|
for i in (dellist.reverse)
|
||||||
|
if @servers[i] == server
|
||||||
|
@messids.delete_at(i)
|
||||||
|
@ids.delete_at(i)
|
||||||
|
@servers.delete_at(i)
|
||||||
|
@subjects.delete_at(i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@sorted = false
|
||||||
|
@grouped = false
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_articles(cachedir=false)
|
def get_articles(cachedir=false)
|
||||||
|
|
@ -86,7 +101,7 @@ def get_articles(cachedir=false)
|
||||||
begin
|
begin
|
||||||
first, last = get_group_info(server)
|
first, last = get_group_info(server)
|
||||||
rescue PermError
|
rescue PermError
|
||||||
print "#{$!}\n"
|
print "Error: #{$!}\n"
|
||||||
del_server(server)
|
del_server(server)
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
@ -103,13 +118,13 @@ def get_articles(cachedir=false)
|
||||||
print " reading articles from server: #{server}\n"
|
print " reading articles from server: #{server}\n"
|
||||||
range = Set::IntSpan.new("#{@connections[server]["first"]}-#{@connections[server]["last"]}")
|
range = Set::IntSpan.new("#{@connections[server]["first"]}-#{@connections[server]["last"]}")
|
||||||
rangelist = rechunk_runlist(range.diff(@connections[server]["skip_ids"]).run_list)
|
rangelist = rechunk_runlist(range.diff(@connections[server]["skip_ids"]).run_list)
|
||||||
print "rangelist: #{rangelist}\n" if Debuglevel >1
|
print "rangelist: #{rangelist}\n" if Debuglevel > 2
|
||||||
print "rangelist: #{rangelist.type.to_s}\n" if Debuglevel >1
|
print "rangelist: #{rangelist.type.to_s}\n" if Debuglevel > 2
|
||||||
print "rangelist elements: #{range.diff(@connections[server]["skip_ids"]).elements}\n" if Debuglevel >1
|
print "rangelist elements: #{range.diff(@connections[server]["skip_ids"]).elements}\n" if Debuglevel >2
|
||||||
begin
|
begin
|
||||||
unless rangelist == nil or rangelist =~ /^$/
|
unless rangelist == nil or rangelist =~ /^$/
|
||||||
for i in rangelist.split(',')
|
for i in rangelist.split(',')
|
||||||
print "i: #{i}\n" if Debuglevel > 1
|
print "i: #{i}\n" if Debuglevel > 2
|
||||||
begin
|
begin
|
||||||
resp, subj_lines = get_xhdr(server, i, "subject")
|
resp, subj_lines = get_xhdr(server, i, "subject")
|
||||||
resp, messid_lines = get_xhdr(server, i, "message-id")
|
resp, messid_lines = get_xhdr(server, i, "message-id")
|
||||||
|
|
@ -138,6 +153,7 @@ def get_articles(cachedir=false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
rescue PermError
|
rescue PermError
|
||||||
|
print "Error: #{$!}\n"
|
||||||
del_server(server)
|
del_server(server)
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue