Commit Graph

222 Commits

Author SHA1 Message Date
Toon Schoenmakers 83b9a28e4c Implemented a nick compare function
As suggested by the todos in IRCSock, added IsNick(CString) method
so the ugly Nick.GetNick().Equals(GetNick()) could be simplified.

Signed-off-by: Toon Schoenmakers <nighteyes1993@gmail.com>
2013-10-10 17:22:16 +02:00
KindOne 8c6b4b8d21 Correct two typos. 2013-09-18 00:26:37 +04:00
Kyle Fuller e7ff40f785 Fix a crash when you delete a user with more than one attached client
Fixes #403
2013-09-17 18:55:22 +02:00
Alexey Sokolov a09d644975 Fix error message for /znc addnetwork irc.network.net 2013-09-07 16:02:50 +04:00
Alexey Sokolov 894e0a2f18 Return old fakeonline module as modules_online
It was accidentally dropped in 0.207 because of the confusing name,
it looked too much like antiidle module.

Instead, this module tells broken clients like Colloquy that *status and
*module are "online". Otherwise those clients require user to always
prepend messages to *module with "/msg *module", even if the window of
*module's query is active.

Also fix the module to support network modules
2013-09-01 22:21:11 +04:00
Alexey Sokolov d5e03cb736 Fix support for /msg @#chan :hi
005 STATUSMSG defines list of characters prependable to channel name,
but we used simple modes instead.

See
https://tools.ietf.org/html/draft-brocklesby-irc-isupport-03#section-3.16

Fix #272

Thanks to grawity for the link to 005 docs draft, and to carrot for
testing the patch.
2013-08-29 22:31:25 +04:00
Martin Nowack eda4426085 Request secure cookie transmission for HTTPS
If cookies are not marked as secure, they can be sent
back by the client on unencrypted channels, disclosing
information. With this fix, clients are requested to
send cookies back on a secure channel in case HTTPS is
used.
2013-08-01 15:14:54 +02:00
Lunatrius 4368c189f7 Fixed double forward slashes and incorrect active module highlighting. 2013-07-01 17:30:32 +02:00
Alexey Sokolov d0a3fddd6e Fix "Error: Success" message in Csocket
When SSL remote closes socket without handshake.
Patch is submitted to upstream Csocket too.
2013-06-16 11:03:37 +04:00
Alexey Sokolov e10b9a1ef5 Don't make backup of znc.conf readable by everyone.
It doesn't really matter, since the whole ~/.znc/ is not readable, but
it's better to be safe.
2013-06-15 21:15:38 +04:00
Alexey Sokolov b2dcad5fd4 Change ZNC license to Apache 2.0
The following people agreed with the change, in alphabetical order:
(people who approved in several ways are listed only once)
By email:
- Adam (from Anope)
- Austin Morton
- Brian Campbell
- Christian Walde
- Daniel Holbert
- Daniel Wallace
- Falk Seidel
- Heiko Hund
- Ingmar Runge
- Jim Hull
- Kyle Fuller
- Lee Aylward
- Martin Martimeo
- Matt Harper
- Michael J Edgar
- Michael Ziegler
- Nick Bebout
- Paul Driver
- Perry Nguyen
- Philippe (cycomate)
- Reuben Morais
- Roland Hieber
- Sebastian Ramacher
- Stefan Rado
- Stéphan Kochen
- Thomas Ward
- Toon Schoenmakers
- Veit Wahlich
- Wulf C. Krueger

By IRC:
- CNU
- Jonas Gorski
- Joshua M. Clulow
- Prozac/SHiZNO
- SilverLeo
- Uli Schlachter

At https://github.com/znc/znc/issues/311 :
- Alexey Sokolov
- Elizabeth Myers
- flakes
- Jens-Andre Koch
- Jyzee
- KindOne/ineedalifetoday
- Lee Williams
- Mantas Mikulėnas
- md-5
- Reed Loden

At the last few pull requests' comments:
- Allan Odgaard
- Jacob Baines
- Lluís Batlle i Rossell
- ravomavain
- protomouse

The following commits' authors didn't respond:
Trivial changes:
- f70f1086fd
- 4ca8b50e45

The changes which are not presented in master anymore:
- 5512ed2ea0
- 960a4498f7
- 0f739de2c0
- 7f53cc810b

Fix #311
Fix #218
2013-06-14 00:43:34 +04:00
Lluís Batlle i Rossell 0adf4876a4 makepem: create pem only rw for the user, on non-win32 2013-06-12 20:29:47 +00:00
Alexey Sokolov a06b6495e8 Revert "Rewrite the JOIN channel logic, dropping MaxJoins"
This reverts commit db7c47f97d.

Too many joined channels at once started to cause disconnect because of
"Max SendQ Exceeded", which is not much better than previous Flood.

Now MaxJoins is 0 by default, which preserves the current behavior of
joining all channels at once. If someone experiences those disconnects
due to SendQ, they can tune MaxJoins.

Fix #329

Conflicts:
	include/znc/User.h
	modules/controlpanel.cpp
	modules/webadmin.cpp
	src/User.cpp
2013-06-09 23:39:10 +04:00
Alexey Sokolov 99895c77df Rewrite printing timestamps in znc -D
Previous commit doing it was 0f739de2c0
2013-06-04 23:13:17 +04:00
Ravomavain 10a982b6d3 Add CString::StripControls to strip controls (Colors, C0) from strings 2013-05-20 12:23:32 +02:00
Alexey Sokolov 8f0605f402 Fix #323 bug about GMT±N timezones 2013-05-19 19:43:28 +04:00
Alexey Sokolov f96ea81899 Debug: escape also escape character 2013-05-18 09:30:54 +04:00
Alexey Sokolov 9d23158aab Merge commit 'refs/pull/356/head' of github.com:znc/znc 2013-05-18 09:10:28 +04:00
Alexey Sokolov c3f421ba25 Merge branch 'master' of github.com:znc/znc 2013-05-17 00:22:23 +04:00
Alexey Sokolov 3f98754c16 Fix #299 2013-05-17 00:18:58 +04:00
Uli Schlachter 999cc085d2 Revert "Add 381 to the buffer (You are now an IRC Operator)"
This reverts commit 11e5f7636d.

Having this in the raw buffer multiple times is obviously wrong, because you can
use /oper more than once and would get a new 381 numeric each time. So this
would need to use UpdateRawBuffer() instead of AddRawBuffer() (=replace old
entries with the same text).

However, this is still wrong. If you -o yourself, you no longer have oper
status. ZNC wouldn't notice this and still deliver the 381 numeric to new
clients.

Clients which use raw 381 to detect oper status will have to switch to user mode
+o.

Thanks to Han` for reporting this problem.
2013-05-14 18:30:40 +02:00
Ravomavain 0c37fb1858 Add EDEBUG to CString::Escape function to escape debug output. 2013-05-12 12:22:26 +02:00
Alexey Sokolov 6569508522 Merge commit 'refs/pull/306/head' of github.com:znc/znc 2013-05-12 08:59:01 +04:00
Uli Schlachter 9b23ee60b8 Debug: Only print queued lines if they are really just queued
Previously, every line that was forwarded to the IRCd was printed twice in debug
mode. Once when it got added to the send queue and a second time when it was
actually sent. However, most of the time this queue is empty and thus the two
events happened at approximately the same time.

Thus, this patch now changes the debug output. Lines are only printed extra if
they really have to wait in the queue for a while before they can be sent out.

This has the positive effect of making the debug output more readable, because
it is shorter and less repetitive and it makes it more obvious when znc actively
throttles the traffic that is sent out.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-05-07 20:59:38 +02:00
Uli Schlachter 58a34fa5ad Improve the way that VERSION_EXTRA is calculated
Instead of doing magic with the result from version.sh so that we can add a
preprocessor macro, the script now just writes src/version.cpp with the expected
content. This should fix all the various issues that we have with quoting the
arguments and things that go wrong when not building znc from a git clone.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-03-31 19:32:44 +02:00
Alexey Sokolov 8fdb530ee3 Fix use-after-free which may happen during shutdown
If a module, e.g. keepnick, tries to remove a timer in
OnIRCDisconnected.

Thanks to KindOne for the report.
2013-03-31 23:40:19 +07:00
Uli Schlachter 53c579b296 CJob: Add a way to do stuff on the main thread
This just moves the pipe from the socket code to the thread pool. However, now
all CJobs can use this and there is a single place for them to get deleted.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-03-15 11:58:27 +01:00
Uli Schlachter 75f2e3fa41 Add a generic threads abstraction
This should make it easier to work with threads. It provides classes for mutexes
and condition variables. Additionally, there is a special CMutexGuard that
automatically unlocks the mutex on destruction and a CThreadPool class.

This thread pool is used to replace the thread pool in the sockets code.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-03-15 11:58:22 +01:00
Ingmar Runge b0101a6df1 Get rid of empty CHTTPSock::WriteFileGzipped method if there's no zlib. It's still in the header, but this does not have any negative side effects. 2013-03-10 00:28:19 +01:00
Ingmar Runge ea94795646 HTTPSock: Gzip compression for static files (text/* mime types + files
with .js extension) and dynamic HTML responses (if gzip is available and
the compression method is supported by the requesting HTTP client).
2013-03-08 09:49:45 +01:00
KindOne 2db7307ac3 Remove unneeded headers. 2013-03-08 01:47:57 +07:00
KindOne c9ac8f5e5e Explain that altering znc.conf by hand is a bad idea. Fixed a typo. 2013-03-08 01:46:44 +07:00
baines 82a708d6a1 Cleaned up more warnings. 2013-02-27 20:53:14 -05:00
baines c256116d81 Catch as references 2013-02-26 22:03:15 -05:00
Alexey Sokolov 538a41cbae Show password in --makepass in new format 2013-02-01 00:17:18 +07:00
Alexey Sokolov ad06b170d6 A bit more consistency bewteen Del* and Rem*
Thanks to Kult for reporting this
2013-01-29 20:52:20 +07:00
Alexey Sokolov 0491e55926 Fix one more case of dlerror(), if it returns NULL after error. 2013-01-27 01:48:27 +07:00
Alexey Sokolov 7312a36629 Don't lose dlerror() message.
Some weird systems seem to use dl functions while doing std::string
concatenation...

Thanks to Hoss for reporting it
2013-01-27 01:26:52 +07:00
Un1matr1x 3a34593359 The same procedure as last year, Miss sophie?
Same procedure as every year, James.
2012-12-31 12:44:31 +01:00
Alexey Sokolov 27eb957964 Don't disconnect networkless users without PINGing them first.
Thanks to Austin for reporting this issue.
2012-12-27 01:40:13 +07:00
Alexey Sokolov 390957723c Fix changing client nick when client connects.
If nicks are equal, it's not changed. The problem was that equality was
checked case-insensitively.

This makes some clients which compare nicks case-sensitively think that
JOINs which we send to them, are not related to the user, it's someone
else joining. So Konversation users which have lower case version of
their IRC nick configured in Konversation settings, didn't get their
channel opened when connecting to ZNC.

Thanks to Axanon for helping to investigate the issue.
2012-12-26 00:36:49 +07:00
Alexey Sokolov 02504626bc Merge branch 'master' of github.com:znc/znc 2012-12-25 00:29:25 +07:00
Alexey Sokolov 412bdb7869 Fix my fix which was supposed to fix #220
Thanks to KindOne for reporting the issue with that fix.

363 numeric was sent twice to the client for attached channels.
2012-12-25 00:28:10 +07:00
Kyle Fuller 6a55c3a0ee Make /znc detach case insensitive
Closes #213
2012-12-22 17:41:24 +00:00
Kyle Fuller 9e7110175a DETACH should support the same syntax as PART (except no message)
Closes #225, this isn't the same as #225, but `/msg *status detach` is
something different, since it supports wildcard matching.
2012-12-22 17:16:57 +00:00
Alexey Sokolov 369f93cbbe Merge branch 'detached-fix' 2012-12-20 22:13:04 +07:00
Alexey Sokolov ebf9aebf51 Fix detached 363 too 2012-12-20 22:12:21 +07:00
Alexey Sokolov c216c94696 Fix renaming away to awaystore for user modules.
When it was renamed, it already was a network module, and IRCNetwork got
a check for away module.
But users of 0.206 and earlier have this module loaded as user module,
they even can't have networks at all, so the renaming didn't go smooth
for them :(

It's broken in 1.0 already anyway, but users who skip 1.0 and upgrade
from older version to 1.2+ directly will be happier.

Thanks to Ammler (Marcel Gmür) for reporting it.
2012-12-20 21:41:24 +07:00
Alexey Sokolov deb38b060e Check detachedness of chans. Fix #220 2012-12-08 23:22:02 +07:00
Uli Schlachter 8ffab186b4 CModule::OnMode(): Fix a stupid NULL pointer dereference
When joining a channel, OnMode() (via SetModes()) was called with pOpNick ==
NULL. This bad pointer was turned into a reference and given to modules.

This bug exists since 2008 when the OnMode() module call was added. It wasn't
noticed before because apparently no module used this CNick argument before.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-12-06 17:28:05 +01:00