nicer error message generation; another reconnect added

This commit is contained in:
Ward Wouts 2003-08-18 22:14:02 +00:00
parent 6fcfacfad9
commit ee6e367410

View file

@ -1,4 +1,4 @@
# $Dwarf: article.rb,v 1.74 2003/07/14 22:12:18 ward Exp $
# $Dwarf: article.rb,v 1.75 2003/07/20 20:32:01 ward Exp $
# $Source$
#
@ -141,7 +141,7 @@ def get_articles(cachedir=false)
resp, subj_lines = get_xhdr(server, i, "subject")
resp, messid_lines = get_xhdr(server, i, "message-id")
rescue TempError
print "Caught: #{$!} reading from #{server} (get_articles)\n"
printerr(server)
next
end
@ -188,11 +188,15 @@ def get_group_info(server)
begin
resp, count, first, last, name = @connections[server]["nntp"].group(@group)
rescue Net::NNTP::RuntimeError
print "Caught #{$!.type} from #{server}\n"
printerr(server)
if ( $!.to_s =~ /^503|^400/ )
reconnect(server)
retry
else
raise PermError, "#{$!}"
end
rescue Errno::EPIPE, Errno::ECONNRESET, EOFError
print "Caught #{$!.type} reading from server #{server} (get_group_info)\n"
print "Error: #{$!}\n"
printerr(server)
reconnect(server)
retry
end
@ -225,8 +229,7 @@ def get_xhdr(server, range, header)
raise TempError
end
rescue Net::NNTP::RuntimeError
print "Caught #{$!.type} reading from server #{server} (get_xhdr)\n"
print "Error: #{$!}\n"
printerr(server)
if ( $!.to_s =~ /^503|^400/ )
reconnect(server)
get_group_info(server)
@ -235,8 +238,7 @@ def get_xhdr(server, range, header)
print "Won't handle this... yet :(\n"
end
rescue Errno::EPIPE, Errno::ECONNRESET, EOFError
print "Caught #{$!.type} reading from server #{server} (get_xhdr)\n"
print "Error: #{$!}\n"
printerr(server)
reconnect(server)
get_group_info(server)
retry
@ -296,8 +298,7 @@ def get_body(server, message)
rescue Net::NNTPReplyError
a = ''
a += $!
print "Caught #{$!.type} reading article #{message} from #{server} (get_body)\n"
print "Error: #{$!}\n"
printerr(server)
if retries == 0 && (a =~ /^503/ || a =~ /^400/)
reconnect(server)
get_group_info(server)
@ -306,12 +307,10 @@ def get_body(server, message)
end
return false
rescue EOFError, NameError
print "Caught #{$!.type} reading article #{message} from #{server} (get_body)\n"
print "Error: #{$!}\n"
printerr(server)
return false
rescue Errno::EPIPE, Errno::ECONNRESET
print "Caught #{$!.type} reading from server #{server} (get_body)\n"
print "Error: #{$!}\n"
printerr(server)
reconnect(server)
get_group_info(server)
retry
@ -694,6 +693,11 @@ def rechunk_runlist(runlist)
return blup
end
def printerr(server)
print "Caught #{$!.type} reading from server #{server} (#{caller[0]})\n"
print "Error: #{$!}\n"
end
def quit
for server in @connections.keys
begin