This should stop all fights against ChanServ. Please note that nothing will
happen if we are the only one in the channel after 15 secs since this module
only checks if it needs to do something when someone leaves a channel.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Modern/decent networks have services anyway, and for registered channels
this module is useless. Also it tends to fight ChanServ in case if
ChanServ joins/parts the channel to remove ops.
Users of deprecated ne^W^Wnetworks without services can use it from extra.
This was broken since znc-0.098-17-g64e565c (563bce5987)
which introduced possibility of log module to specify wanted path as argument.
Thanks to turnor for reporting this.
This causes every piece of code which wants to use CFile or CDir to have to
include FileUtils.h. This causes quite some noise.
Signed-off-by: Uli Schlachter <psychon@znc.in>
As a result, Utils.h no longer has to include Socket.h and lots of stuff breaks.
Due to a severe case of lazyness, some of the code for CExecSock is still in
Utils.cpp. Feel free to fix if you really have to.
Signed-off-by: Uli Schlachter <psychon@znc.in>
shell didn't compile since 6bc36d1708 because it used the
three-argument-version of CModule::PutModule(). This commit replaced that with a
call to CModule::PutUser().
Signed-off-by: Uli Schlachter <psychon@znc.in>
If you did ./configure --enable-tcl, tcl wasn't actually enabled because
--enable-extra was missing, That's less than optimal.
Just moving modtcl out of modules/extra solves this problem.
Big thanks go to zynox/kylef for noticing this!
Signed-off-by: Uli Schlachter <psychon@znc.in>
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
Patch by kylef and submitted via git. Sorry that we are using subversion and
that subversion is bad at tracking this kind of authorship. :(
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2211 726aef4b-f618-498e-8847-2d620e286838
Saving a pointer in a map seems like a bad idea and means we have to delete all
the contained stuff by hand when the channel is destroyed. This requires us to
loop through the channel which is slow. A map is meant as a container, so use it
as one and directly save the stuff we want it to save in there.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2175 726aef4b-f618-498e-8847-2d620e286838
Since the user can't read detached channels, there is no point in clearing their
buffer. Let's leave them alone instead.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2151 726aef4b-f618-498e-8847-2d620e286838
"virtual host" seems to be confusing to users since they wonder why
i.am.superman doesn't work. Let's rename this to "bindhost" and perhaps it
becomes clearer what this setting does.
Thanks to SilverLeo!
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2113 726aef4b-f618-498e-8847-2d620e286838
This module clears all channel buffers whenever the user does something. This
means that channel buffers will only be cleared after we are 100% sure they were
read. Yay for no longer losing buffer playback when the client breaks.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2107 726aef4b-f618-498e-8847-2d620e286838
All of these require at least a valid login to znc to cause a std::out_of_range
exceptions, some might not even be exploitable!
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2095 726aef4b-f618-498e-8847-2d620e286838
- Added some comments
- Fixed some places where iconv_close may have been called two times on the same
handle which apparently crashed some implementations. Woops. Thanks to x-demon
for noticing.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1975 726aef4b-f618-498e-8847-2d620e286838
Tcl 8.6 no longer supports accessing the result field directly,
so we now use the public getter.
Thanks to flakes for finding this.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1970 726aef4b-f618-498e-8847-2d620e286838
the charset module from extra to do its thing. This has been
a pain in the ass and I'd like to thank psychon who made most
of the autofoo happen and BrianC for finding out that BSD sucks
and for testing! Yay!
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1947 726aef4b-f618-498e-8847-2d620e286838
so if your client sends e.g. ISO-8859-1, and users on your IRC server
want UTF-8, this module can help you.
Or, the other way around, if users on your IRC server send messages
with weird charsets that your client doesn't understand, this module
can convert them to UTF-8 or something for you (as long as you know
the names of the source charsets, at least).
More explanation will be added to the wiki shortly.
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1942 726aef4b-f618-498e-8847-2d620e286838