UpdateModule has been moved to CZNC because it doesn't really fit into
CUser. The new UpdateModule will reload the module for global modules,
user modules and network modules.
Fixes#69
This fixes a bug where the autoreply message wasn't being sent if you
were attached to another network
Also allow loading this module as a network module
The result of CIRCNetwork::IsUserOnline() will only show clients which
do not have the away state set. This value is not set from the IRC
command AWAY, but a future module could use this behaviour.
Some CIRCNetwork::IsUserAttached() checks are now moved into of
CIRCNetwork::IsUserOnline() checks.
This allows "away" clients to store buffer even if KeepBuffer is false.
This is done by setting the TZ variable prior to calling localtime() or ctime().
There are a few calls to ctime()/localtime() which doesn’t adjust for time zone offset. This patch affects the behavior of these since the TZ variable is global.
Presently unused but intended to supersede the current time zone offset.
The advantage of a string is that it can be set to something like Europe/Copenhagen and thereby adapt to daylight savings time.
I definitely fixed this problem already when I ported the macro, so I wonder why
the fix got lost...
config.log says:
conftest.cpp: In function 'void dummyfunc()':
conftest.cpp:13:15: error: no previous declaration for 'void dummyfunc()'
[-Werror=missing-declarations]
Signed-off-by: Uli Schlachter <psychon@znc.in>
This hook will be called when the user get's invited into a channel
because we don't have a CChan of this channel yet this won't be send
through the hook. Instead a CString with the name of the channel is send.
Signed-off-by: Toon Schoenmakers <nighteyes1993@gmail.com>
Downside of antiidle is that because it messages yourself internally
the irc server will send messages to you when you're marked as away.
This can end up being really annoying, so those messages are blocked
with these changes.
Signed-off-by: Toon Schoenmakers <nighteyes1993@gmail.com>
This includes a feature to ghost, which simply calls the ghost feature
of the actual nickserv. Same goes for group, recover and release.
These are called by simply doing /msg *nickserv ghost <nickname> etc.
The changes made actually explain themselves when doing something like
/msg *nickserv help. This is really just so we can be lazy and execute
nickserv commands that require a password without knowing the password
ourselves.
Signed-off-by: Toon Schoenmakers <nighteyes1993@gmail.com>
This kind of reverts/fixes f1cb09bd9c.
Robby found a bug with evil ChanServ which goes like this:
- You join an empty, but registered channel and the IRCd applies its default
modes (+nt), but ZNC didn't ask for MODE, so doesn't know this.
- ChanServ applies whatever channel modes it wants to apply. This causes ZNC to
see a mode change (e.g. +s).
The result of this is that ZNC thinks that the channel has mode +s and it will
tell every client that connects to it about this.
The fix is to send a MODE request when JOINing. To make sure that we don't
confuse clients, we block the reply.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This is required to make sure that zncconfig.h is the very first header that is
being included.
This problem was noticed by someone reporting some "macro redefined" warnings.
Signed-off-by: Uli Schlachter <psychon@znc.in>
That macro currently was broken. It added flags to $CFLAGS but then called the
C++ compiler. The result was that ZNC didn't compile with GCC 3, because it
tried to use -fvisibility=hidden which isn't supported in that GCC version.
A list of changes done to this macro is contained in a comment.
Signed-off-by: Uli Schlachter <psychon@znc.in>
ZNC is written in C++ and doesn't need a C compiler. This redefine let's us
catch code which accidentally uses the C compiler.
Currently this means that we break due to gl_VISIBILITY.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Now ZNC saves its version to znc.conf.
When ZNC tries to load znc.conf, it compares stored version with running
one. If the stored version is older, make a backup.
It pretty much always returned an empty string (or rather: whatever was in the
return variable before, which is an empty string in 99% of cases).
Signed-off-by: Uli Schlachter <psychon@znc.in>
These calls really should be network module calls, so this fixed
NETWORKMODULECALL() to again silently do nothing if the network is NULL.
Signed-off-by: Uli Schlachter <psychon@znc.in>