Question

J'ai deux serveurs ejabberd, une ligne locale une lointaine sur foobar.com.

Utilisation de la console pidgin XMPP je peux envoyer strophes iq pour les tests:

Serveur local nom d'hôte est CPEe

<iq to='eeepc' from='greg@eeepc' id='get-registred-users-num-1' type='set'>
    <command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>

</iq>

<iq from='eeepc' to='greg@eeepc/3493331071251540036345753' id='get-registred-users-num-1' type='result'>
    <command xmlns='http://jabber.org/protocol/commands' sessionid='2009-08-29T14:01:55.714639Z' node='http://jabber.org/protocol/admin#get-registered-users-num' status='completed'>
        <x xmlns='jabber:x:data'>
            <field type='hidden' var='FORM_TYPE'>
                <value>http://jabber.org/protocol/admin</value>
            </field>
            <field type='text-single' label='Number of registered users' var='registeredusersnum'>
                <value>7</value>
            </field>
        </x>
    </command>
</iq>

serveur distant

<iq to='foobar.com' from='greg@foobar.com' id='get-registred-users-num-1' type='set'>
    <command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>
</iq>

<iq from='foobar.com' to='greg@foobar.com/36523779951251567671615394' id='get-registred-users-num-1' type='error'>
    <command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>
    <error code='404' type='cancel'>
        <item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    </error>
</iq>

Je ne comprends pas pourquoi je reçois, je ne pouvais pas voir toutes les options particulières pour dire au serveur d'accepter des commandes de distance?

Était-ce utile?

La solution

Peut-être mod_configure est tout simplement pas chargé sur le serveur distant. Vous pouvez vérifier par lists:member(mod_configure, gen_mod:loaded_modules("foobar.com")). dans une coquille d'administration ejabberd. Je ne peux pas imaginer que ce soit d'être un utilisateur distant, car aucune connexion S2S est nécessaire entre foobar.com et greg@foobar.com.

Autres conseils

Recherche la source mod_configure.erl Code il semble y avoir un contrôle d'ACL pour vous assurer que les commandes adhoc de configuration ne sont autorisées que lorsque le demandeur est sur un compte d'utilisateur a configurer PRIV sur cet hôte virtuel. Par défaut, je pense qu'ils ne le font pas.

acl:match_rule(LServer, configure, From)

Vous devrez peut-être ajouter quelque chose comme ...

{access, configure, [{allow, greg@foobar.com}]}.

... à votre fichier ejabberd.cfg.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top