action should always be a dictionary, as checked in check_action: if type(action) != type({}): if argVerbose > 1: print "Got unparseable response:" print action print "if type(action) != type({})" sys.exit(-1) but in the main loop a check against an empty string is made, so rhn_check returns -1 instead of 0. --- /usr/sbin/rhn_check.old Thu Nov 2 12:21:48 2000 +++ /usr/sbin/rhn_check Thu Nov 2 12:21:05 2000 @@ -411,7 +410,7 @@ listed in the %s file or that the RHNS-CA-CERT file is invalid.""" % rhns_ca_cert sys.exit(-1) - if action == "": + if action == {}: break check_action(action) handle_action(action)
The check in the main loop is done before calling check_action. for compatbility reasons the correct check in the main loop will be if action in ["", {}] break Fixed in CVS.