Beispiel #1
0
    def __init__(self,
                 jidstr,
                 password,
                 jidresource=None,
                 host=None,
                 secure=jabber.client.SECURE_DEFAULT):

        zymb.sched.Agent.__init__(self)

        # Figure out the JID to use.
        self.jid = jabber.interface.JID(jidstr)
        if (jidresource):
            self.jid.setresource(jidresource)
        else:
            if (not self.jid.getresource()):
                self.jid.setresource('volity')
        self.password = password

        self.addhandler('start', self.startup)
        self.addhandler('end', self.finalize)
        self.addhandler('ready', self.startpresence)

        # Create the Jabber client agent.
        if (not secure):
            secure = jabber.client.SECURE_DEFAULT
        else:
            secure = secure.lower()
        self.conn = jabber.client.JabberAuthResource(self.jid,
                                                     self.password,
                                                     host=host,
                                                     secure=secure)

        # Set up handlers for ourself and the Jabber agent.
        self.conn.addhandler('authresource', self.authed)
        self.conn.addhandler('end', self.stop)

        # Set up the presence service.
        pres = jabber.presence.PresenceService()
        pres.addhook(self.cappresencehook)
        self.conn.addservice(pres)

        # Set up the disco services.

        disco = jabber.disco.DiscoService()
        self.conn.addservice(disco)

        discoc = jabber.disco.DiscoClience()
        self.conn.addservice(discoc)

        # Set up the RPC services.

        rpc = jabber.rpc.RPCService(notfoundhandler=self.rpcnotfound)
        ops = jabber.rpc.SeparatorOpset()
        if (not isinstance(self, actor.Actor)):
            ops = ClientRPCWrapperOpset(ops)
        rpc.setopset(ops)
        self.conn.addservice(rpc)

        rpcc = jabber.rpc.RPCClience()
        self.conn.addservice(rpcc)
Beispiel #2
0
    def __init__(self, jidstr, password, jidresource=None, host=None,
        secure=jabber.client.SECURE_DEFAULT):
        
        zymb.sched.Agent.__init__(self)

        # Figure out the JID to use.        
        self.jid = jabber.interface.JID(jidstr)
        if (jidresource):
            self.jid.setresource(jidresource)
        else:
            if (not self.jid.getresource()):
                self.jid.setresource('volity')
        self.password = password

        self.addhandler('start', self.startup)
        self.addhandler('end', self.finalize)
        self.addhandler('ready', self.startpresence)

        # Create the Jabber client agent.
        if (not secure):
            secure = jabber.client.SECURE_DEFAULT
        else:
            secure = secure.lower()
        self.conn = jabber.client.JabberAuthResource(self.jid,
            self.password, host=host, secure=secure)

        # Set up handlers for ourself and the Jabber agent.
        self.conn.addhandler('authresource', self.authed)
        self.conn.addhandler('end', self.stop)

        # Set up the presence service.
        pres = jabber.presence.PresenceService();
        pres.addhook(self.cappresencehook)
        self.conn.addservice(pres)

        # Set up the disco services.
        
        disco = jabber.disco.DiscoService()
        self.conn.addservice(disco)

        discoc = jabber.disco.DiscoClience()
        self.conn.addservice(discoc)

        # Set up the RPC services.
        
        rpc = jabber.rpc.RPCService(notfoundhandler=self.rpcnotfound)
        ops = jabber.rpc.SeparatorOpset()
        if (not isinstance(self, actor.Actor)):
            ops = ClientRPCWrapperOpset(ops)
        rpc.setopset(ops)
        self.conn.addservice(rpc)

        rpcc = jabber.rpc.RPCClience()
        self.conn.addservice(rpcc)
Beispiel #3
0
    items.additem(selfjid, 'Send a disco items query.', 'discit')
    items.additem(selfjid, 'Shut down this server.', 'exit')
    return items
disco.additems(None, itemfunc)

# Add a DiscoClience to our Jabber connection. This handles outgoing
# disco queries (and their incoming results). This will be used by the
# "disco" and "discit" RPC calls -- see above.
discoc = zymb.jabber.disco.DiscoClience()
cl.addservice(discoc)

# Add a RPCService to our Jabber connection. This handles incoming
# RPC calls.
rpc = zymb.jabber.rpc.RPCService()
# A MyMethodOpset instance handles the calls when they arrive.
rpc.setopset(MyMethodOpset())
cl.addservice(rpc)

# We do not need an RPCClience, because we do not plan to make any outgoing
# RPC calls.

# Tell the agent to begin work.
cl.start()

# The main doing-stuff loop.

while 1:
    try:
        res = zymb.sched.process(None)
        if (not res):
            break