def main(): global source global config global dest global users global shutdown config_file="xdb_copy.xml" user_file="xdb_copy.users" try: try: config=Config(config_file) except: print >>sys.stderr,"Couldn't load config file:",str(sys.exc_value) sys.exit(1) try: userfile=codecs.open(user_file, "r", "utf-8") except: print >>sys.stderr,"Couldn't load users file:",str(sys.exc_value) sys.exit(1) users=userfile.readlines() source=Component(jid=config.source.jid,server=config.source.host,port=config.source.port,secret=config.source.secret); source.authenticated=authenticated source.connect() dest=Component(jid=config.destination.jid,server=config.destination.host,port=config.destination.port,secret=config.destination.secret); dest.authenticated=auth_dest dest.connect() shutdown=None try: while (not shutdown and source.stream and not source.stream.eof and source.stream.socket is not None): try: source.stream.loop_iter(1) dest.stream.loop_iter(1) except (KeyboardInterrupt,SystemExit,FatalStreamError,StreamError): raise except: source.print_exception() finally: source.disconnect() source.debug("Exitting normally") except FatalError,e: print e print "Aborting." sys.exit(1)