Commit Graph

2232 Commits

Author SHA1 Message Date
psychon
4556cc7c9b WebMods: Verify a session belongs to the remote IP address
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2262 726aef4b-f618-498e-8847-2d620e286838
2011-01-14 20:22:23 +00:00
psychon
577a097e32 Keep a list of web sessions per IP address
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2261 726aef4b-f618-498e-8847-2d620e286838
2011-01-14 20:22:02 +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
psychon
5ff2fce9d9 Remove some code duplication in TCacheMap
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2259 726aef4b-f618-498e-8847-2d620e286838
2011-01-08 22:07:36 +00:00
psychon
142eebcf9b Protect ZNC against CTCP floods
Ingredients:
- A couple of bots (3 are plenty)
- Boredom
- A target you want to annoy

Recipe:
Connect your bots to the same IRC network that your target is on. Then let each
of your bot flood him with CTCP VERSION request. If the target is gentle enough
to reply to each of those request, he will be disconnected from the network due
to excess flood.

This commit makes ZNC only reply to 5 CTCPs within 5 seconds. If more are sent,
they aren't replied to. This does NOT protect clients that are connected to ZNC.
They will still get the chance to reply to the flood.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2258 726aef4b-f618-498e-8847-2d620e286838
2011-01-08 18:26:31 +00:00
psychon
5a6a7b7e93 Add some message to the end of autogen.sh
The last thing autogen.sh is calling automake which is supposed to fail.
Obviously, this doesn't look good to users so we should print some message that
says everything worked as expected.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2257 726aef4b-f618-498e-8847-2d620e286838
2011-01-08 11:33:06 +00:00
psychon
d9b4ba18f6 configure: Stop using AC_CHECK_FILE
We need the file we check for only to figure out some compiler flags, so
AC_CHECK_FILE's behavior of aborting cross compilation is just wrong.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2256 726aef4b-f618-498e-8847-2d620e286838
2011-01-08 11:32:50 +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
e2ce2cfed9 Removed configure. This is fix for the commit before the previous one.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2254 726aef4b-f618-498e-8847-2d620e286838
2011-01-07 18:00:58 +00:00
darthgandalf
9574d6c379 Change behaviour of autogen.sh
It doesn't run configure anymore.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2253 726aef4b-f618-498e-8847-2d620e286838
2011-01-07 18:00:33 +00:00
psychon
fde73c60fa Remove all generated/copied scripts from SVN
This commits removes all files which are generated by aclocal or autoconf or
copied from automake (yes, autoconf requires config.{guess,sub}, yet they are
part of automake!).

Instead, we now have a shell script autogen.sh which calls all the needed parts
in the right order (aclocal ; autoheader ; autoconf ; automake).

Additionally, configure.in is renamed to configure.ac because that seems to be
the more proper name for it. Let's see if anyone notices me sneaking this in. ;)


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2252 726aef4b-f618-498e-8847-2d620e286838
2011-01-07 16:34:13 +00:00
psychon
87037f4856 Fix a forgotten svn add (zncconfig.h.in)
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2251 726aef4b-f618-498e-8847-2d620e286838
2011-01-07 15:02:57 +00:00
psychon
3ecbf13390 Use autoheader
This commit adds a zncconfig.h to ZNC that is automatically generated by
configure. This is done because the -DPACKAGE_STRING=\"znc\ 0.097\" that
configure adds to CXXFLAGS breaks znc-buildmod.

This means that we have to include zncconfig.h as the very first header in every
C++ file that is compiled. This commit kinda cheats and instead adds this
include as the very first thing to all header files we have. This should
hopefully mean that modules don't have to include this.

Because Csocket includes defines.h too late, this commit causes znc to divert
from upstream Csocket once again. :(


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2250 726aef4b-f618-498e-8847-2d620e286838
2011-01-07 15:01:08 +00:00
psychon
40a1bbacdf Fix for autoheader
autoheader wants a description for all definitions, so we have to provide one.
Meh.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2249 726aef4b-f618-498e-8847-2d620e286838
2011-01-05 19:54:20 +00:00
psychon
f4927709f9 Use AC_DEFINE for -D-style definitions
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2248 726aef4b-f618-498e-8847-2d620e286838
2011-01-05 19:40:54 +00:00
psychon
aeeb1eb35b Move some -D flags to Makefile
Doing it like this is the only supported way with autoconf and works around
quite some messy mess.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2247 726aef4b-f618-498e-8847-2d620e286838
2011-01-05 19:08:07 +00:00
psychon
4e5f9e8602 HTTPSock: Send Last-Modified headers for static files
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2246 726aef4b-f618-498e-8847-2d620e286838
2011-01-03 15:21:30 +00:00
psychon
9ef41ae6ad Make CHTTPSock generate a properly formated "Date:" header
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2245 726aef4b-f618-498e-8847-2d620e286838
2011-01-03 15:21:09 +00:00
darthgandalf
9fec8f726d Make modpython compiler to fail make on fail of compilation of a python file.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2244 726aef4b-f618-498e-8847-2d620e286838
2011-01-03 05:09:42 +00:00
darthgandalf
452e3f1824 Modpython compiler should depend on Makefile.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2243 726aef4b-f618-498e-8847-2d620e286838
2011-01-03 05:09:18 +00:00
psychon
8a1c2a4711 Include @DEFS@ into our compiler call
On most systems, this should only result in some useless defines being added to
the compiler's command line:

-DPACKAGE_NAME=\"znc\" -DPACKAGE_TARNAME=\"znc\" -DPACKAGE_VERSION=\"0.097\"
-DPACKAGE_STRING=\"znc\ 0.097\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\"

However, on some weird arches like e.g. x86, this will make AC_SYS_LARGEFILE
actually work, because that macro adds "-D_FILE_OFFSET_BITS=64" to @DEPS@.

This was found by SilverLeo because modpython didn't compile for him, thanks. :)
(python has "#define _FILE_OFFSET_BITS 64" in pyconfig.h)

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2242 726aef4b-f618-498e-8847-2d620e286838
2011-01-02 17:15:21 +00:00
psychon
44d2816379 Remove some more pointless checks for sPageName.empty()
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2241 726aef4b-f618-498e-8847-2d620e286838
2011-01-02 16:33:42 +00:00
psychon
eb730d72d7 notes: Remove a pointless "if"
When you load /mods/notes/ in your browser, OnWebRequest will be called with
sPageName == "index". So that variable can never actually be empty.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2240 726aef4b-f618-498e-8847-2d620e286838
2011-01-02 10:46:46 +00:00
psychon
fa5b3acc8f webmods: Remove some more useless code
We don't actually have a "modlist" template, so this code would cause a 404.
Going through the "find module with empty name" codepath here has the same
result, so this can be safely removed.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2239 726aef4b-f618-498e-8847-2d620e286838
2011-01-01 22:59:41 +00:00
psychon
0ca689f2eb webmods: Fix
One of my recent commits made webmods only find user modules instead of global
modules. This worked before because m_sForcedUser was an empty string which made
the code look for global modules. This commit adds an explicit check for global
modules which hopefully fixes all problems.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2238 726aef4b-f618-498e-8847-2d620e286838
2011-01-01 22:57:54 +00:00
cflakes
8cadb672f0 Add some more infos to the recently introduced znc.conf warning header.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2237 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 16:45:29 +00:00
psychon
5050b93658 WebMods: Clean some stuff up
This removes two unused methods (ResolveModule() and FillErrorPage()) and marks
some other methods const/static/protected.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2236 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 16:15:53 +00:00
psychon
3f62466751 WebMods: Remove some dead code
Using some module as another user didn't actually work. For user modules, the
following code stops you:

 else if (!pModule->IsGlobal() && pModule->GetUser() != GetSession()->GetUser()) {
     PrintErrorPage(403, "Forbidden", "You must login as " + pModule->GetUser()->GetUserName() + " in order to view this page");

For global modules this didn't work either. Once a "forced" user name was
specified, OnPageRequestInternal() stopped looking at global modules:

 CModule* pModule = CZNC::Get().FindModule(m_sModName, m_sForceUser);
 if (!pModule && m_sForceUser.empty()) {
 [snip]
 if (!pModule) {
     return PAGE_NOTFOUND;

So, whatever m_sForceUser was supposed to do, it never did that.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2235 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 15:52:54 +00:00
cflakes
40d39f222b Don't use a readonly <input> in lastseen's WebadminUser stub template.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2234 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 15:22:47 +00:00
cflakes
7bb4ed34bd Some grammar and capitalization fixes.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2233 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 15:20:40 +00:00
cflakes
ba183e461f Perform module:
* Be more const.
* Be more correct: only accept requests to /mods/perform/, not to all URLs starting with that.
* Be more considerate: Use "IRC server" instead of "IRCd".



git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2232 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 15:09:07 +00:00
psychon
89edf703f6 Perform: Also parse stuff like "/msg foo bar" via webmods
Signed-off-by: Uli Schlachter <psychon@znc.in>

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2231 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 14:42:43 +00:00
psychon
c8910c4856 Perform: Provide a webinterface
Signed-off-by: Uli Schlachter <psychon@znc.in>

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2230 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 14:42:28 +00:00
psychon
1e0585c485 webadmin: Add all currently missing global settings
These were MaxBufferSize, ConnectDelay, ServerThrottle and AnonIPLimit.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2229 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 09:14:21 +00:00
psychon
0456e3f0f2 Add Getter/Setter for ConnectDelay, ServerThrottle and AnonIPLimit
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2228 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 09:14:03 +00:00
psychon
eb263869b0 webadmin: Add a "key" inputbox to channels
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2227 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 08:40:44 +00:00
psychon
570fab6e44 webadmin: Add DCCBindHost
Before this commit, editing some user in webadmin cleared their DCCBindHost.
That's definitely not what we want.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2226 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 08:32:58 +00:00
psychon
853ddc5c2a admin: Add TimestampFormat and StatusPrefix
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2225 726aef4b-f618-498e-8847-2d620e286838
2010-12-31 08:07:39 +00:00
darthgandalf
4c6d52c904 Change a way how .pyc are generated from .py
Now Makefile does the search of .py in the source.
Also change some dependencies between other modpython stuff.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2224 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 23:45:12 +00:00
darthgandalf
4be057200b Fix out-of-tree builds.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2223 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 22:40:24 +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
psychon
128af8e893 Improve debug output for ISpoof
We now generate a DEBUG() message for all errors during ISpoof. Also, the
message from *status "ISpoof could not be written" now includes the expanded
ISpoofFile that we tried writing to.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2221 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 21:11:40 +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
2472ea7a13 Add warning header to znc.conf
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2218 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 18:29:15 +00:00
darthgandalf
e4b48d50b3 Fix for previous commit.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2217 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 12:16:33 +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
darthgandalf
a0c0b73590 Add new parameter to OnPart module hook: part message.
Sorry for API change :)

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2215 726aef4b-f618-498e-8847-2d620e286838
2010-12-30 11:28:41 +00:00
darthgandalf
644632f915 Fix modpython to work with python 3.2
Thanks to nb for reporting and testing

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2214 726aef4b-f618-498e-8847-2d620e286838
2010-12-25 05:04:21 +00:00
psychon
50b57be5af listsockets: Ignore dereferenced sockets
When someone connects to ZNC, this connection is first handled by an instance of
CIncomingConnection. Once we determined if this is a HTTP or an IRC connection,
the connection is handed of to the appropriate class.

The CIncomingConnection instance that was used first will still linger around
for the next event loop iteration and then be destroyed. Since this socket isn't
a "real" connection anymore (another instance of Csock took over for this one),
listsockets should ignore all sockets in state CLT_DEREFERENCE.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2213 726aef4b-f618-498e-8847-2d620e286838
2010-12-24 22:06:13 +00:00