Commit Graph

44 Commits

Author SHA1 Message Date
Uli Schlachter
962c10795d Disable some more warnings on mod{perl,python}
It seems to me like swig is trying to trigger every warning that exists...

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-10-30 13:37:11 +01:00
Alexey Sokolov
f4097e6fd5 Separate compilation and linking for modules.
To gain more benefits from distcc.
2011-10-30 02:15:26 +07:00
Alexey Sokolov
0f0591b648 Fscking perl... This fixes modperl's compilation. 2011-10-04 10:29:55 +07:00
Alexey Sokolov
e354c24ac1 Move ZNC headers into own directory.
Yes, this breaks backwards compatibility, so what?
It's already broken with network stuff anyway.
2011-09-23 03:31:58 +07:00
Kyle Fuller
0b1627c529 Make all the modules support networks 2011-08-24 19:07:32 +01:00
Kyle Fuller
f44f307b24 Add a config writer 2011-08-21 13:40:14 +01:00
Uli Schlachter
8f53d3fbb0 Fix modp{erl,ython} installation
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-06 10:43:39 +02:00
Alexey Sokolov
ea58912093 Hide every symbol except ZNCModInfo from modules.
This means that now it's possible to have the same class names in
different modules, which reduces chances of weird errors.

Thanks to mclc for noticing this.
2011-07-15 22:56:47 +07:00
Alexey Sokolov
79e78608b3 Support wiki pages names for perl modules. 2011-06-11 18:21:06 +07:00
Kyle Fuller
e83e14ab67 Do not include DCCSock in mod(perl|python) 2011-06-01 22:19:30 +01:00
Kyle Fuller
8f508cb4a5 Migrate dcc bouncing to its own module 2011-06-01 20:21:27 +01:00
Kyle Fuller
0b360c0102 Remove OnDCCUserSend module hook 2011-06-01 20:21:27 +01:00
Alexey Sokolov
e746438022 Parse new ExecSock.h and ZNCDebug.h with SWIG.
That functionality was accessible by perl and python modules before.
Now that stuff is in own headers, so let's parse them too,
to have them still be able to use this.
2011-04-03 19:13:47 +07: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
6db2ac8ac6 Fix modperl and modpython installations.
When modules' static data files were moved to own dir,
install_metadirs was removed from Makefile.
But modperl and modpython's makefiles still had dependance on it.
2011-03-30 01:21:05 +07: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
darthgandalf
6b396fca7f Fix for last commit.
Also remove perl magic from modperl/Makefile.inc which was used to suppress a warning.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2269 726aef4b-f618-498e-8847-2d620e286838
2011-01-15 21:04:25 +00:00
darthgandalf
f76f1e7a25 Modpython and modperl bindings should have proper dependencies on headers in makefiles.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2268 726aef4b-f618-498e-8847-2d620e286838
2011-01-15 20:28:25 +00: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
b6c8e10633 Include zncconfig.h before any system headers in modpython and modperl bindings.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2255 726aef4b-f618-498e-8847-2d620e286838
2011-01-07 18:01:26 +00:00
darthgandalf
dc8a39db53 Add vim modelines to some files.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2222 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 22:02:26 +00:00
darthgandalf
afa16df2bc Fix make clean for modperl and modpython
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2220 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 19:18:24 +00:00
darthgandalf
ece2c885da Moved generation of modperl/functions.cpp to Makefile.
This should fix some compilation issues.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2219 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 18:29:42 +00:00
darthgandalf
1d103351a9 Make modpython and modperl to work with new OnPart too.
Thanks, SilverLeo.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2216 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 12:00:52 +00:00
psychon
40632f46d0 Split up modules/Makefile.in
This splits the modpython, modperl and modtcl specific parts of
modules/Makefile.in into separate files. There shouldn't be any other changes
than this in here (hopefully).


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2209 726aef4b-f618-498e-8847-2d620e286838
2010-12-24 18:30:11 +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
600cbac913 Fix license header for modperl/CString.i
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2194 726aef4b-f618-498e-8847-2d620e286838
2010-12-22 14:51:24 +00:00
darthgandalf
12b1cf63b5 Add functions to Perl API for checking ZNC version.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2185 726aef4b-f618-498e-8847-2d620e286838
2010-12-07 14:04:44 +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
1baa019705 Modperl now does implicit conversion of arguments to CString when needed.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2180 726aef4b-f618-498e-8847-2d620e286838
2010-11-13 15:21:29 +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
fa8f758c7b Remove one more perl's pollution of global namespace which caused modperl loading error under some circumstances.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2142 726aef4b-f618-498e-8847-2d620e286838
2010-09-27 11:45:32 +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
1d6f11f71a Fix: modperl hooks didn't get bool arguments.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2136 726aef4b-f618-498e-8847-2d620e286838
2010-09-13 16:27:20 +00:00
darthgandalf
0b69ae8bd4 Add new hook OnEmbeddedWebRequest to modperl.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2133 726aef4b-f618-498e-8847-2d620e286838
2010-09-12 16:50:08 +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