Commit Graph

18 Commits

Author SHA1 Message Date
Alexey Sokolov
79e78608b3 Support wiki pages names for perl modules. 2011-06-11 18:21:06 +07:00
Kyle Fuller
0b360c0102 Remove OnDCCUserSend module hook 2011-06-01 20:21:27 +01:00
Uli Schlachter
f0bf7134ec Improve the handling of module load messages
Instead of doing ugly stuff to shorten the "Loaded Module [foo]" message, we now
just always generate the shorter version of that message. The code paths which
didn't do this shortening now prepend that message themselves.

The result is that every message looks the same as it did before, but the code
for generating these is a little nicer.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-04-02 16:52:52 +02:00
Uli Schlachter
23fb4df67a Remove config-related module hooks
This removes the following module hooks:

OnConfigLine()
OnWriteConfig()
OnWriteUserConfig()
OnWriteChanConfig()

Modules could use these hooks for writing/reading their own stuff to/from
znc.conf. However, no module (ever?) did this and IMHO no module should ever do
this either. Modules can save stuff via SetNV(), module arguments (SetArgs())
and in their GetSavePath().

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-31 17:29:49 +02:00
Kyle Fuller
7162b01111 Add the OnIRCConnectionError(CIRCSock *pIRCSock) module hook 2011-03-30 19:15:42 +01:00
Alexey Sokolov
e62ec2dc82 Remove bogus "Unable to find module" from modperl.
When a module tries to being loaded, modperl looks for module.pm file.
If there's no such file, it said "unable to find", which is bad
in case when it's non-perl module.

Loader of C++ modules clears sRetMsg string, so the message wasn't seen before
(except debug and ZNC startup). But modpython does nothing with it
(if python module doesn't set it itself), so in result we get stuff like
"Loaded module [xxx] [Unable to find module [xxx]] [/home/user/.znc/modules/xxx.py]"
which is pretty confusing.

So now if perl version of the module isn't found, we just pass control to next
available module loader without any error messages.

Thanks to macmaN for reporting this.
2011-03-21 11:38:34 +06:00
psychon
b9b0fd4c87 Oh, shiny... NOT
(Yes, it's that time of the year again)

Signed-off-by: Uli Schlachter <psychon@znc.in>

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2260 726aef4b-f618-498e-8847-2d620e286838
2011-01-14 17:03:24 +00:00
darthgandalf
7237b9cb2a OOPish API for timers in modperl.
Existing API still works.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2202 726aef4b-f618-498e-8847-2d620e286838
2010-12-23 18:18:06 +00:00
darthgandalf
ce45917cc0 Unload perl modules when they are unloaded.
This should make /znc reloadmod and /znc updatemod to work as expected.
So developers don't need to restart znc each time when debugging perl modules anymore.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2184 726aef4b-f618-498e-8847-2d620e286838
2010-12-05 09:38:25 +00:00
darthgandalf
0bc606a928 Modperl uses some features of Perl 5.10, so let it depend on it.
Now we check version of perl in ./configure and on runtime when modperl is loaded.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2183 726aef4b-f618-498e-8847-2d620e286838
2010-12-05 06:27:09 +00:00
darthgandalf
5df13a3eda Fix modperl timers API.
It was pretty difficult to pass arbitrary argument. Needed to generate
new sub each time etc.
Now CreateTimer gets new named parameter: context. Its value will be
passed to given sub as named parameter context.
Also as it was hard to use variant of CreateTimer without named params
(there's no parameter 'context' there), that variant is gone.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2160 726aef4b-f618-498e-8847-2d620e286838
2010-10-17 09:27:15 +00:00
darthgandalf
9c2692f1f1 Remove sockets and timers from perl modules in their destructors.
This should decrease memory usage a bit, and decrease chance of crashing znc from bad perl module a bit.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2156 726aef4b-f618-498e-8847-2d620e286838
2010-10-10 09:59:15 +00:00
darthgandalf
14ffd7c769 Improve portability of modperl by trying several UUID generators.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2146 726aef4b-f618-498e-8847-2d620e286838
2010-09-27 14:29:40 +00:00
darthgandalf
a30a201338 Fix spaces in modperl.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2144 726aef4b-f618-498e-8847-2d620e286838
2010-09-27 13:30:54 +00:00
darthgandalf
9fe92c3725 Fix modperl. It didn't work.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2143 726aef4b-f618-498e-8847-2d620e286838
2010-09-27 13:08:07 +00:00
darthgandalf
6743674646 Fix bug introduced in r2133: modperl made znc crash when using web.
Adding new hooks to modules is the following procedure:
1. Add it to modperl/module.h
2. Add it to modperl/startup.pl
3. Add it to modperl/functions.in
4. Run ./codegen.pl

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2140 726aef4b-f618-498e-8847-2d620e286838
2010-09-23 04:41:35 +00:00
darthgandalf
4b54649506 Modperl's CreateTimer function now supports named arguments.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2138 726aef4b-f618-498e-8847-2d620e286838
2010-09-20 06:34:20 +00:00
darthgandalf
a44e6eaada Big update of modperl module.
Old modperl had several flaws and was very outdated.
New modperl makes the whole ZNC API accessible from inside perl.
Modperl API was changed, so old perl modules are not supported,
but they weren't used much anyway.

Modperl needs --enable-perl option to ./configure.

This introduces new dependence on SWIG, which is needed only while
compiling ZNC. So to use modperl, you need to install SWIG or
to download several files and use --disable-swig option of configure.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2120 726aef4b-f618-498e-8847-2d620e286838
2010-09-07 11:13:47 +00:00