예제 #1
0
파일: xdb_copy.py 프로젝트: smokku/wpjabber
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)