Frage

Ich habe zwei Ejabberd -Server, einen lokalen One -fern online auf foobar.com.

Mit XMPP Pidgin -Konsole kann ich IQ Stanzas für Tests senden:

Lokaler Server Hostname ist EEPC

<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>

Fernserver

<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>

Ich verstehe nicht, warum ich eine bekomme, ich konnte keine bestimmten Optionen sehen, um dem Server Befehle von Remote zu akzeptieren?

War es hilfreich?

Lösung

Vielleicht mod_configure wird einfach nicht auf den entfernten Server geladen. Sie können über überprüfen lists:member(mod_configure, gen_mod:loaded_modules("foobar.com")). in einer Ejabberd -Administratorschale. Ich kann mir nicht vorstellen, dass es darum geht, ein Remote -Benutzer zu sein, da zwischen foobar.com und greg@foobar.com keine S2S -Verbindung benötigt wird.

Andere Tipps

Hereinschauen Der Quellcode mod_configure.erl Es scheint eine ACL -Überprüfung zu geben, um sicherzustellen, dass die Befehle konfigurieren ADHOC nur dann zulässig sind, wenn sich der Antragsteller auf einem Benutzerkonto befindet, das die priv für diesen virtuellen Host konfiguriert ist. Standardmäßig denke ich, dass sie es nicht tun.

acl:match_rule(LServer, configure, From)

Möglicherweise müssen Sie so etwas hinzufügen wie ...

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

... zu Ihrer ejabberd.cfg -Datei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top