- fix del_server
- better error messages - stub base64 decode
This commit is contained in:
parent
01a068ecaa
commit
c5b5e08461
1 changed files with 33 additions and 25 deletions
|
|
@ -77,23 +77,8 @@ 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)
|
||||||
|
|
@ -129,7 +114,7 @@ def get_articles(cachedir=false)
|
||||||
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")
|
||||||
rescue TempError
|
rescue TempError
|
||||||
print "Caught: #{$!} reading from #{server}\n"
|
print "Caught: #{$!} reading from #{server} (get_articles)\n"
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -174,7 +159,7 @@ def get_group_info(server)
|
||||||
print "Got error \"#{$!}\" from #{server}\n"
|
print "Got error \"#{$!}\" from #{server}\n"
|
||||||
raise PermError, "#{$!}"
|
raise PermError, "#{$!}"
|
||||||
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} (get_group_info)\n"
|
||||||
print "Error: #{$!}\n"
|
print "Error: #{$!}\n"
|
||||||
reconnect(server)
|
reconnect(server)
|
||||||
retry
|
retry
|
||||||
|
|
@ -183,7 +168,7 @@ def get_group_info(server)
|
||||||
rescue TimeoutError
|
rescue TimeoutError
|
||||||
timedout += 1
|
timedout += 1
|
||||||
raise PermError, "Too many timeouts! (get_group_info)" if timedout > 1
|
raise PermError, "Too many timeouts! (get_group_info)" if timedout > 1
|
||||||
print "Time out, reconnecting to server...\n"
|
print "Time out, reconnecting to server... (get_group_info)\n"
|
||||||
reconnect(server)
|
reconnect(server)
|
||||||
retry
|
retry
|
||||||
end
|
end
|
||||||
|
|
@ -207,10 +192,10 @@ def get_xhdr(server, range, header)
|
||||||
raise TempError
|
raise TempError
|
||||||
end
|
end
|
||||||
rescue Net::NNTP::RuntimeError
|
rescue Net::NNTP::RuntimeError
|
||||||
print "Caught Net::NNTP::RuntimeError reading from server #{server}\n"
|
print "Caught Net::NNTP::RuntimeError reading from server #{server} (get_xhdr)\n"
|
||||||
print "Error: #{$!}\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} (get_xhdr)\n"
|
||||||
print "Error: #{$!}\n"
|
print "Error: #{$!}\n"
|
||||||
reconnect(server)
|
reconnect(server)
|
||||||
get_group_info(server)
|
get_group_info(server)
|
||||||
|
|
@ -219,7 +204,7 @@ def get_xhdr(server, range, header)
|
||||||
end
|
end
|
||||||
return resp, lines
|
return resp, lines
|
||||||
rescue TimeoutError
|
rescue TimeoutError
|
||||||
print "Time out, reconnecting to server\n"
|
print "Time out, reconnecting to server (get_xhdr)\n"
|
||||||
timedout += 1
|
timedout += 1
|
||||||
raise PermError, "Too many timeouts! (get_xhrd)" if timedout > 1
|
raise PermError, "Too many timeouts! (get_xhrd)" if timedout > 1
|
||||||
reconnect(server)
|
reconnect(server)
|
||||||
|
|
@ -268,11 +253,15 @@ def get_body(server, message)
|
||||||
begin
|
begin
|
||||||
resp, id, messid, list = @connections[server]["nntp"].body(message)
|
resp, id, messid, list = @connections[server]["nntp"].body(message)
|
||||||
rescue Net::NNTPReplyError
|
rescue Net::NNTPReplyError
|
||||||
print "Caught Net::NNTPReplyError reading article #{message} from #{server}\n"
|
print "Caught Net::NNTPReplyError reading article #{message} from #{server} (get_body)\n"
|
||||||
|
print "Error: #{$!}\n"
|
||||||
|
return false
|
||||||
|
rescue EOFError
|
||||||
|
print "Caught EOFError reading article #{message} from #{server} (get_body)\n"
|
||||||
print "Error: #{$!}\n"
|
print "Error: #{$!}\n"
|
||||||
return false
|
return false
|
||||||
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} (get_body)\n"
|
||||||
print "Error: #{$!}\n"
|
print "Error: #{$!}\n"
|
||||||
reconnect(server)
|
reconnect(server)
|
||||||
get_group_info(server)
|
get_group_info(server)
|
||||||
|
|
@ -281,7 +270,7 @@ def get_body(server, message)
|
||||||
end
|
end
|
||||||
return resp, id, messid, list
|
return resp, id, messid, list
|
||||||
rescue TimeoutError
|
rescue TimeoutError
|
||||||
print "Time out, reconnecting to server\n"
|
print "Time out, reconnecting to server (get_body)\n"
|
||||||
timedout += 1
|
timedout += 1
|
||||||
raise PermError, "Too many timeouts! (get_body)" if timedout > 1
|
raise PermError, "Too many timeouts! (get_body)" if timedout > 1
|
||||||
reconnect(server)
|
reconnect(server)
|
||||||
|
|
@ -302,7 +291,11 @@ def get_group_body(subj)
|
||||||
print "id: #{@groups[subj]["ids"][i]}\n" if Debuglevel > 1
|
print "id: #{@groups[subj]["ids"][i]}\n" if Debuglevel > 1
|
||||||
print "server: #{@groups[subj]["servers"][i]}\n" if Debuglevel > 0
|
print "server: #{@groups[subj]["servers"][i]}\n" if Debuglevel > 0
|
||||||
begin
|
begin
|
||||||
resp, id, messid, list = get_body(@groups[subj]["servers"][i], @groups[subj]["messages"][i])
|
if @serverlist.include?(@groups[subj]["servers"][i])
|
||||||
|
resp, id, messid, list = get_body(@groups[subj]["servers"][i], @groups[subj]["messages"][i])
|
||||||
|
else
|
||||||
|
resp = false
|
||||||
|
end
|
||||||
if resp == false
|
if resp == false
|
||||||
print "mess-id i: #{@groups[subj]["messages"][i]}\n"
|
print "mess-id i: #{@groups[subj]["messages"][i]}\n"
|
||||||
print "mess-id i+1: #{@groups[subj]["messages"][i+1]}\n"
|
print "mess-id i+1: #{@groups[subj]["messages"][i+1]}\n"
|
||||||
|
|
@ -949,6 +942,21 @@ end
|
||||||
|
|
||||||
###############################################################
|
###############################################################
|
||||||
|
|
||||||
|
# a bas64 decoder...
|
||||||
|
def decode64(str)
|
||||||
|
string = ''
|
||||||
|
for line in str.split("\n")
|
||||||
|
line.delete!('^A-Za-z0-9+') # remove non-base64 chars
|
||||||
|
line.tr!('A-Za-z0-9+', ' -_') # convert to uuencoded format
|
||||||
|
len = ["#{32 + line.length * 3 / 4}"].pack("c")
|
||||||
|
# compute length byte
|
||||||
|
string += "#{len}#{line}".unpack("u") # uudecode and concatenate
|
||||||
|
end
|
||||||
|
return string
|
||||||
|
end
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
|
||||||
def group_subject_sort(subj)
|
def group_subject_sort(subj)
|
||||||
#print "Sorting articles\n"
|
#print "Sorting articles\n"
|
||||||
serverhash = {}
|
serverhash = {}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue