سؤال

لدي خادمان Ejabberd ، واحد محلي بعيدة على الإنترنت على foobar.com.

باستخدام وحدة تحكم XMPP Pidgin يمكنني إرسال IQ stanzas للاختبارات:

الملقم المحلي اسم المضيف هو 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>

خادم بعيد

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

لا أفهم لماذا أحصل على A ، لم أستطع رؤية أي خيارات معينة لإخبار الخادم بقبول الأوامر من Remote؟

هل كانت مفيدة؟

المحلول

يمكن mod_configure لا يتم تحميله ببساطة على الخادم البعيد. يمكنك التحقق عبر lists:member(mod_configure, gen_mod:loaded_modules("foobar.com")). في قذيفة ejabberd المشرف. لا أستطيع أن أتخيل أن هذا يتعلق بكوني مستخدمًا عن بُعد ، لأنه لا يوجد أي اتصال S2S بين Foobar.com و greg@foobar.com.

نصائح أخرى

ينظر في رمز المصدر mod_configure.erl يبدو أن هناك فحص ACL للتأكد من أن أوامر التكوين ADHOC مسموح بها فقط عندما يكون الطالب على حساب المستخدم يكوين Priv على هذا المضيف الظاهري. بشكل افتراضي ، أعتقد أنهم لا يفعلون ذلك.

acl:match_rule(LServer, configure, From)

قد تحتاج إلى إضافة شيء مثل ...

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

... إلى ملف ejabberd.cfg الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top