Plugins/MOTD won't run

Asked by Thomas Maerz

I described this issue in a preexisting ticket, Question #115636 but it's already set to answered, so no one is probably looking at it.

I'm having issues with getting the plugins to work in linux, and have tried FAQ #704 ass suggested in Question #115636. (using absolute paths and installing LUA from repo and other related instructions)

I have placed everything from /adchpp/build/release-default/bin/ into /usr/lib/adchpp/
I have the hub running in secure mode, but each time I launch it I have to specify the absolute path to the configuration file with

./adchppd -c /usr/lib/adchpp/config/

I changed the plugins path line to say:
<Plugins Path="/usr/lib/adchpp/scripts">

It runs fine in secure mode, but it doesn't find the plugins, so the hub not too useful yet. No +help, no MOTD.

Question information

Language:
English Edit question
Status:
Solved
For:
ADCH++ Edit question
Assignee:
No assignee Edit question
Solved by:
poy
Solved:
Last query:
Last reply:
Revision history for this message
Thomas Maerz (thomasmaerz) said :
#1

Also, here is my adchpp.xml configuration file:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ADCHubPlusPlus>
        <Settings>

<!-- Hub name and message of the day -->
                <!-- This is the name of the hub as it should be reported to the clients during
                         login and to the hub registration services. -->
                <HubName type="string">Queue42</HubName>
                <Description type="string">ADCH++ Test hub</Description>

<!-- Logging -->
                <!-- Enable/disable logging -->
                <Log type="int">1</Log>

                <!-- Logging, when enabled, is done to this file. The filename is first passed
                         through strftime with the current time (see any standard c library reference
                         to find out what works...). There's not much logging done at all btw, but
                         plugins can use the logs as well... -->
                <LogFile type="string">logs/adchpp%Y%m.log</LogFile>

<!-- Advanced connection settings (don't change unless you at least think you know what you're doing) -->
                <!-- Maximum send size, changes how much data is sent at most to a single user per
                         call to the socket api. Experiment with this, lower settings might be more fair
                         in the distribution of available bandwidth at the cost of network/cpu efficiency.
                         Don't set below 256, 0 = disable. Experiment with this, it has many strange effects! -->
                <MaxSendSize type="int">1400</MaxSendSize>

                <MaxBufferSize type="int">16384</MaxBufferSize>
                <BufferSize type="int">256</BufferSize>
                <MaxCommandSize type="int">16384</MaxCommandSize>
                <!-- Milliseconds before a user is disconnected when his/her outgoing buffer
                         becomes larger than MaxRecvSize (outgoing buffer overflow). -->
                <OverflowTimeout type="int">60000</OverflowTimeout>

                <!-- Try to keep slow users from overflowing by not sending searches to them
                         when they're in the overflow state -->
                <KeepSlowUsers type="int">1</KeepSlowUsers>

                <!-- Buffer size, this is the minimum buffer size that is initially assigned to
                         each user. Larger buffer = more memory usage / user, less = a little bit
                         slower performance if the user sends more than these many bytes at a time
                         (in a chat message for instance...). Don't set to lower than 256. -->
                <BufferSize type="int">512</BufferSize>

                <!-- Timeout (ms) before ADCH++ stops trying to empty its send buffer for a user
                         (to send a kick message for example), and disconnects him/her. -->
                <DisconnectTimeout>10000</DisconnectTimeout>
                <LoginTimeout>30</LoginTimeout>
        </Settings>

        <Servers>
                <!--
                One <Server> tag per listening connection.

                To create secure connections, set TLS="1" and define the following (preferably absolute)
                paths: Certificate, PrivateKey, TrustedPath, DHParams. An example secure server setting:
                <Server Port="2780" TLS="1" Certificate="certs/cacert.pem" PrivateKey="certs/privkey.pem" TrustedPath="certs/trusted/" DHParams="certs/dhparam.pem"/>

                Simple OpenSSL commands to generate files used for secure connections:
                openssl genrsa -out privkey.pem 2048
                openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
                openssl dhparam -outform PEM -out dhparam.pem 1024

                Alternatively, you can use the cert generator contributed on
                <http://launchpadlibrarian.net/31960965/Cert_Generator.7z>.

                -->
                <Server Port="2442" TLS="1" Certificate="/etc/certs/cacert.pem" PrivateKey="/etc/certs/privkey.pem" TrustedPath="/etc/certs/trusted/" DHParams="/etc/certs/dhparam.pem"/>
        </Servers>

        <!-- Instead of scripts, ADCH++ uses plugins. Plugins can do the same work
                 as scripts, are more difficult to write, but when it comes to performance,
                 the difference between the two is absurd. This way, it's also possible to
                 write a script plugin, enabling people to choose their own script language,
                 if someone's written a script plugin for it. You must specify the path to your
                 plugins in linux default place it looks for the plugin path is /home/<username>/adchpp/ -->

        <Plugins Path="/usr/lib/adchpp/scripts">

                <!-- This plugins provides the scripting support. -->
                <Plugin>Script</Plugin>
                <!-- Bloom filter plugin, helps save upload bandwidth at a slight expense of memory and download bandwidth -->
                <Plugin>Bloom</Plugin>
        </Plugins>
</ADCHubPlusPlus>

Revision history for this message
Thomas Maerz (thomasmaerz) said :
#2

Operating System: OpenSuSE i586, running on Dell Poweredge 1550 for the hub.

Revision history for this message
Best poy (poy) said :
#3

the plugin path doesn't point to where Lua scripts are, it points to where the plugin binaries are (like Bloom.so and Script.so).
yours should probably be:
<Plugins Path="/usr/lib/adchpp/">
then you should have a Script.xml file that contains the path to the Lua scripts:
<Engine language="lua" scriptPath="/usr/lib/adchpp/scripts">

Revision history for this message
Thomas Maerz (thomasmaerz) said :
#4

Thanks poy, that solved my question.